Chombo + EB + MF
3.2
|
Go to the source code of this file.
Macros | |
#define | _LEVELRK4_V2_H__ |
Functions | |
template<typename TSoln , typename TRhs , typename TInterp , typename TExOp , typename... TOpArgs> | |
void | RK4LevelAdvance (TSoln &a_newSoln, TSoln &a_oldSoln, TInterp *a_timeInterpolator, Real a_time, Real a_dt, const bool a_initializeNewSoln, TExOp &a_op, TOpArgs &&... a_opArgs) |
Templated implementation of RK4 advance for a single AMRLevel, allowing interpolation in time. More... | |
#define _LEVELRK4_V2_H__ |
void RK4LevelAdvance | ( | TSoln & | a_newSoln, |
TSoln & | a_oldSoln, | ||
TInterp * | a_timeInterpolator, | ||
Real | a_time, | ||
Real | a_dt, | ||
const bool | a_initializeNewSoln, | ||
TExOp & | a_op, | ||
TOpArgs &&... | a_opArgs | ||
) |
Templated implementation of RK4 advance for a single AMRLevel, allowing interpolation in time.
The difference from LevelRK4.H is that this allows for any arguments to the evalRHS operator. The arguments are perfectly forwarded.
This implements fourth-order Runge-Kutta time advance of an ODE, and saves intermediate results for use in interpolation in time. ODE is d(Soln)/dt = RHS
Template types:
TInterp requirements: TInterp must have the following functions:
TOp requirements: TOp must have the following functions:
a_newSoln | the cell-centered solution at the new time (a_time + a_dt) |
a_oldSoln | the cell-centered solution at the old time (a_time) |
a_timeInterpolator | object that encapsulates time interpolation |
a_time | time centering of a_oldSoln |
a_dt | time step |
a_initializeNewSoln | whether a_newSoln is initialized with a_oldSoln (default true) |
a_op | object which encapsulates the ODE functionality (must meet the requirements detailed above) |