11 #ifndef _TIMEINTERPOLATORRK4_H_ 12 #define _TIMEINTERPOLATORRK4_H_ 18 #include "NamespaceHeader.H" 51 const int& a_refineCoarse,
53 const int& a_numStates,
89 const Real& a_timeInterpCoeff,
102 const Real& a_timeInterpCoeff,
179 #include "NamespaceFooter.H" int m_refineCoarse
Refinement ratio between this level and the next coarser.
Definition: TimeInterpolatorRK4.H:164
Real m_dt
coarse timestep
Definition: TimeInterpolatorRK4.H:137
int m_numCoeffs
number of coefficients in Taylor polynomial: this is 4
Definition: TimeInterpolatorRK4.H:131
bool m_gotDt
whether m_dt has been set
Definition: TimeInterpolatorRK4.H:149
bool m_gotFullTaylorPoly
whether we have the full Taylor polynomial
Definition: TimeInterpolatorRK4.H:155
A class to facilitate interaction with physical boundary conditions.
Definition: ProblemDomain.H:141
IntVect m_ghostVect
ghost vector around m_thisCoarsenedLayout for m_rhsCopy and m_taylorCoeffs
Definition: TimeInterpolatorRK4.H:134
void operator=(const TimeInterpolatorRK4 &)
void saveRHS(const LevelData< FArrayBox > &a_rhs)
Update Taylor polynomial coefficients with coarse right-hand side.
A strange but true thing to make copying from one boxlayoutdata to another fast.
Definition: Copier.H:145
Copier m_copier
For copying from rhs on m_coarseLayout to m_rhsCopy on m_thisCoarsenedLayout.
Definition: TimeInterpolatorRK4.H:125
void setDt(const Real &a_dt)
Set coarse timestep.
ProblemDomain m_coarseDomain
Problem domain - index space for next coarser level.
Definition: TimeInterpolatorRK4.H:161
LevelData< FArrayBox > m_rhsCopy
Copy of rhs on m_thisCoarsenedLayout, to be used within saveRHS.
Definition: TimeInterpolatorRK4.H:140
void saveInitialSoln(const LevelData< FArrayBox > &a_soln)
Update Taylor polynomial coefficients with the coarse solution.
void resetData()
Reset this object to use with new data.
Structure for passing component ranges in code.
Definition: Interval.H:23
void define(const DisjointBoxLayout &a_thisDisjointBoxLayout, const DisjointBoxLayout &a_coarserDisjointBoxLayout, const ProblemDomain &a_domain, const int &a_refineCoarse, const int &a_numStates, const int &a_ghosts)
Actual constructor.
LevelData< FArrayBox > m_taylorCoeffs
coefficients of the third-degree Taylor polynomial on m_thisCoarsenedLayout with ghost vector m_ghost...
Definition: TimeInterpolatorRK4.H:143
void interpolate(LevelData< FArrayBox > &a_U, const Real &a_timeInterpCoeff, const Interval &a_intvl)
Interpolate in time using the Taylor polynomial.
double Real
Definition: REAL.H:33
Vector< Vector< Real > > m_coeffs
Definition: TimeInterpolatorRK4.H:116
DisjointBoxLayout m_coarseLayout
layout for the coarse level
Definition: TimeInterpolatorRK4.H:122
A BoxLayout that has a concept of disjointedness.
Definition: DisjointBoxLayout.H:30
Time interpolator class using 4th-order Runge-Kutta.
Definition: TimeInterpolatorRK4.H:24
An integer Vector in SpaceDim-dimensional space.
Definition: CHArray.H:42
~TimeInterpolatorRK4()
Destructor.
TimeInterpolatorRK4()
Default constructor.
int m_numStates
Number of variables.
Definition: TimeInterpolatorRK4.H:167
DisjointBoxLayout m_thisCoarsenedLayout
layout for this level, coarsened by m_refToCoarse
Definition: TimeInterpolatorRK4.H:119
int m_ghosts
layers of ghost cells around m_thisCoarsenedLayout for m_rhsCopy and m_taylorCoeffs ...
Definition: TimeInterpolatorRK4.H:128
LevelData< FArrayBox > m_diff12
difference between f(U1) and f(U2), used for intermediate-value calculations, on m_thisCoarsenedLayou...
Definition: TimeInterpolatorRK4.H:146
bool m_gotInitialSoln
whether initial solution has been saved
Definition: TimeInterpolatorRK4.H:152
bool m_defined
define() has been called
Definition: TimeInterpolatorRK4.H:170
void intermediate(LevelData< FArrayBox > &a_U, const Real &a_timeInterpCoeff, const int &a_stage, const Interval &a_intvl) const
Set RK4 intermediate values in time using the Taylor polynomial.
int m_countRHS
number of times saveRHS function has been called
Definition: TimeInterpolatorRK4.H:158
void setVectorDt(Vector< Real > &a_vec, Real a_c0, Real a_c1, Real a_c2, Real a_c3)
Set a_vec = m_dt * (a_c0, a_c1, a_c2, a_c3).