Chombo + EB + MF
3.2
|
#include <ARK4DenseOutput.H>
Public Member Functions | |
ARK4DenseOutput () | |
void | define (const Soln &a_state, Real a_dt, bool a_denseOutput=false) |
void | advance (Real a_time, Soln &a_state) |
void | denseOutputCoefs (Vector< Rhs *> &a_interpCoefs) |
void | resetDt (Real a_dt) |
void | start0end1 (bool a_start0, bool a_end1) |
IMEXOp & | getImExOp () |
bool | isDefined () const |
bool | hasDenseOutput () const |
Static Public Attributes | |
static const int | s_nStages = 6 |
Runge-Kutta coefficients. More... | |
static const Real | s_aIdiag = 0.25 |
static const Real | s_c [s_nStages] = { 0.0, 0.5, 0.332, 0.62, 0.85, 1.0 } |
static const Real | s_aE [s_nStages][s_nStages] |
static const Real | s_aI [s_nStages][s_nStages] |
static const Real | s_b [s_nStages] |
static const int | s_nDenseCoefs = 3 |
static const Real | s_bstar [s_nDenseCoefs][s_nStages] |
Protected Attributes | |
bool | m_isDefined |
bool | m_denseOutput |
bool | m_hasDenseOutput |
Real | m_dt |
Real | m_time |
Soln | m_phi [s_nStages] |
Rhs | m_rhs |
Rhs | m_denseCoefs [s_nDenseCoefs] |
Rhs | m_kE |
Rhs | m_kI |
IMEXOp | m_opImEx |
This is a more flexible, reduced memory version 4th-order additive Runge-Kutta algorithm, that also includes dense output coefficients This templated class encapsulates the fourth-order additive Runge-Kutta method "ARK4(3)6L[2]SA" by Kennedy and Carpenter 2003 Appl. Numer. Math. 44: 139-181
See also section 3 of Zhang, Johansen, and Colella, SIAM J. Sci. Comput. 34, pp. B179-B201.
|
inline |
References ARK4DenseOutput< Soln, Rhs, IMEXOp >::advance(), ARK4DenseOutput< Soln, Rhs, IMEXOp >::define(), ARK4DenseOutput< Soln, Rhs, IMEXOp >::denseOutputCoefs(), ARK4DenseOutput< Soln, Rhs, IMEXOp >::getImExOp(), ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_isDefined, ARK4DenseOutput< Soln, Rhs, IMEXOp >::resetDt(), and ARK4DenseOutput< Soln, Rhs, IMEXOp >::start0end1().
void ARK4DenseOutput< Soln, Rhs, IMEXOp >::define | ( | const Soln & | a_state, |
Real | a_dt, | ||
bool | a_denseOutput = false |
||
) |
References CH_TIMERS, ARK4DenseOutput< Soln, Rhs, IMEXOp >::getImExOp(), ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_denseCoefs, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_denseOutput, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_dt, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_hasDenseOutput, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_isDefined, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_kE, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_kI, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_opImEx, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_phi, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_rhs, ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_aIdiag, ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_nDenseCoefs, and ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_nStages.
Referenced by ARK4DenseOutput< Soln, Rhs, IMEXOp >::ARK4DenseOutput().
void ARK4DenseOutput< Soln, Rhs, IMEXOp >::advance | ( | Real | a_time, |
Soln & | a_state | ||
) |
References CH_assert, CH_START, CH_STOP, CH_TIMER, CH_TIMERS, ARK4DenseOutput< Soln, Rhs, IMEXOp >::denseOutputCoefs(), ARK4DenseOutput< Soln, Rhs, IMEXOp >::isDefined(), ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_denseCoefs, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_denseOutput, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_dt, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_hasDenseOutput, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_kE, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_kI, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_opImEx, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_phi, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_rhs, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_time, ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_aE, ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_aI, ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_b, ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_bstar, ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_c, ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_nDenseCoefs, and ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_nStages.
Referenced by ARK4DenseOutput< Soln, Rhs, IMEXOp >::ARK4DenseOutput(), and ARK4DenseOutput< Soln, Rhs, IMEXOp >::start0end1().
void ARK4DenseOutput< Soln, Rhs, IMEXOp >::denseOutputCoefs | ( | Vector< Rhs *> & | a_interpCoefs | ) |
References CH_assert, CH_TIMERS, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_denseCoefs, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_hasDenseOutput, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_phi, ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_aE, ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_aI, ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_aIdiag, ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_b, ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_bstar, ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_c, ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_nDenseCoefs, and Vector< T >::size().
Referenced by ARK4DenseOutput< Soln, Rhs, IMEXOp >::advance(), and ARK4DenseOutput< Soln, Rhs, IMEXOp >::ARK4DenseOutput().
void ARK4DenseOutput< Soln, Rhs, IMEXOp >::resetDt | ( | Real | a_dt | ) |
References Abs(), CH_assert, ARK4DenseOutput< Soln, Rhs, IMEXOp >::isDefined(), ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_dt, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_hasDenseOutput, ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_opImEx, and ARK4DenseOutput< Soln, Rhs, IMEXOp >::start0end1().
Referenced by ARK4DenseOutput< Soln, Rhs, IMEXOp >::ARK4DenseOutput(), and ARK4DenseOutput< Soln, Rhs, IMEXOp >::getImExOp().
void ARK4DenseOutput< Soln, Rhs, IMEXOp >::start0end1 | ( | bool | a_start0, |
bool | a_end1 | ||
) |
References ARK4DenseOutput< Soln, Rhs, IMEXOp >::advance(), CH_assert, ARK4DenseOutput< Soln, Rhs, IMEXOp >::isDefined(), ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_opImEx, and ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_nStages.
Referenced by ARK4DenseOutput< Soln, Rhs, IMEXOp >::ARK4DenseOutput(), and ARK4DenseOutput< Soln, Rhs, IMEXOp >::resetDt().
IMEXOp & ARK4DenseOutput< Soln, Rhs, IMEXOp >::getImExOp | ( | ) |
|
inline |
|
inline |
|
static |
Runge-Kutta coefficients.
Referenced by ARK4DenseOutput< Soln, Rhs, IMEXOp >::advance(), ARK4DenseOutput< Soln, Rhs, IMEXOp >::define(), and ARK4DenseOutput< Soln, Rhs, IMEXOp >::start0end1().
|
static |
|
static |
|
static |
Referenced by ARK4DenseOutput< Soln, Rhs, IMEXOp >::advance(), and ARK4DenseOutput< Soln, Rhs, IMEXOp >::denseOutputCoefs().
|
static |
Referenced by ARK4DenseOutput< Soln, Rhs, IMEXOp >::advance(), and ARK4DenseOutput< Soln, Rhs, IMEXOp >::denseOutputCoefs().
|
static |
Referenced by ARK4DenseOutput< Soln, Rhs, IMEXOp >::advance(), and ARK4DenseOutput< Soln, Rhs, IMEXOp >::denseOutputCoefs().
|
static |
|
static |
Referenced by ARK4DenseOutput< Soln, Rhs, IMEXOp >::advance(), and ARK4DenseOutput< Soln, Rhs, IMEXOp >::denseOutputCoefs().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
Referenced by ARK4DenseOutput< Soln, Rhs, IMEXOp >::advance().
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |
|
protected |