#include <ARK4DenseOutput.H>
See also section 3 of Zhang, Johansen, and Colella, SIAM J. Sci. Comput. 34, pp. B179-B201.
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. | |
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 |
ARK4DenseOutput< Soln, Rhs, IMEXOp >::ARK4DenseOutput | ( | ) | [inline] |
void ARK4DenseOutput< Soln, Rhs, IMEXOp >::define | ( | const Soln & | a_state, | |
Real | a_dt, | |||
bool | a_denseOutput = false | |||
) | [inline] |
References CH_TIMERS, 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.
void ARK4DenseOutput< Soln, Rhs, IMEXOp >::advance | ( | Real | a_time, | |
Soln & | a_state | |||
) | [inline] |
References CH_assert, CH_START, CH_STOP, CH_TIMER, CH_TIMERS, 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.
void ARK4DenseOutput< Soln, Rhs, IMEXOp >::denseOutputCoefs | ( | Vector< Rhs * > & | a_interpCoefs | ) | [inline] |
void ARK4DenseOutput< Soln, Rhs, IMEXOp >::resetDt | ( | Real | a_dt | ) | [inline] |
void ARK4DenseOutput< Soln, Rhs, IMEXOp >::start0end1 | ( | bool | a_start0, | |
bool | a_end1 | |||
) | [inline] |
IMEXOp & ARK4DenseOutput< Soln, Rhs, IMEXOp >::getImExOp | ( | ) | [inline] |
References ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_opImEx.
bool ARK4DenseOutput< Soln, Rhs, IMEXOp >::isDefined | ( | ) | const [inline] |
bool ARK4DenseOutput< Soln, Rhs, IMEXOp >::hasDenseOutput | ( | ) | const [inline] |
const int ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_nStages = 6 [static] |
Runge-Kutta coefficients.
Referenced by ARK4DenseOutput< Soln, Rhs, IMEXOp >::advance(), ARK4DenseOutput< Soln, Rhs, IMEXOp >::define(), and ARK4DenseOutput< Soln, Rhs, IMEXOp >::start0end1().
const Real ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_aIdiag = 0.25 [inline, static] |
Referenced by ARK4DenseOutput< Soln, Rhs, IMEXOp >::define().
const Real ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_c = { 0.0, 0.5, 0.332, 0.62, 0.85, 1.0 } [inline, static] |
Referenced by ARK4DenseOutput< Soln, Rhs, IMEXOp >::advance().
const Real ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_aE [inline, static] |
Initial value:
{ {0., 0., 0., 0., 0., 0.}, {0.5, 0., 0., 0., 0., 0.}, {0.221776, 0.110224, 0., 0., 0., 0.}, {-0.04884659515311857, -0.17772065232640102, 0.8465672474795197, 0., 0., 0.}, {-0.15541685842491548, -0.3567050098221991, 1.0587258798684427, 0.30339598837867193, 0., 0.}, { 0.2014243506726763, 0.008742057842904185, 0.15993995707168115, 0.4038290605220775, 0.22606457389066084, 0.} }
Referenced by ARK4DenseOutput< Soln, Rhs, IMEXOp >::advance().
const Real ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_aI [inline, static] |
Initial value:
{ {0., 0., 0., 0., 0., 0.}, {0.25, 0.25, 0., 0., 0., 0.}, {0.137776, -0.055776, 0.25, 0., 0., 0.}, {0.14463686602698217, -0.22393190761334475, 0.4492950415863626, 0.25, 0., 0.}, {0.09825878328356477, -0.5915442428196704, 0.8101210538282996, 0.283164405707806, 0.25, 0.}, {0.15791629516167136, 0., 0.18675894052400077, 0.6805652953093346, -0.27524053099500667, 0.25} }
Referenced by ARK4DenseOutput< Soln, Rhs, IMEXOp >::advance().
const Real ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_b [inline, static] |
Initial value:
{0.15791629516167136, 0., 0.18675894052400077, 0.6805652953093346, -0.27524053099500667, 0.25}
Referenced by ARK4DenseOutput< Soln, Rhs, IMEXOp >::advance().
const int ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_nDenseCoefs = 3 [static] |
const Real ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_bstar [inline, static] |
Initial value:
{ {0.961753400252887, 0., 0.787405595186356, -2.74544192086633, 3.70351728061223, -1.70723435518514}, {-1.76418754019038, 0., -0.774504669155511, 9.64023584441292, -12.544886411271, 5.44334277620397}, {0.960350435099165, 0., 0.173858014493155, -6.21422862823726, 8.56612859966376, -3.48610842101883} }
Referenced by ARK4DenseOutput< Soln, Rhs, IMEXOp >::advance().
bool ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_isDefined [protected] |
bool ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_denseOutput [protected] |
bool ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_hasDenseOutput [protected] |
Real ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_dt [protected] |
Real ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_time [protected] |
Referenced by ARK4DenseOutput< Soln, Rhs, IMEXOp >::advance().
Soln ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_phi[s_nStages] [protected] |
Rhs ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_rhs [protected] |
Rhs ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_denseCoefs[s_nDenseCoefs] [protected] |
Rhs ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_kE [protected] |
Rhs ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_kI [protected] |
IMEXOp ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_opImEx [protected] |