ARK4DenseOutput< Soln, Rhs, IMEXOp > Class Template Reference

#include <ARK4DenseOutput.H>

List of all members.


Detailed Description

template<class Soln, class Rhs, class IMEXOp>
class ARK4DenseOutput< Soln, Rhs, IMEXOp >

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.

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


Constructor & Destructor Documentation

template<class Soln, class Rhs, class IMEXOp>
ARK4DenseOutput< Soln, Rhs, IMEXOp >::ARK4DenseOutput (  )  [inline]


Member Function Documentation

template<class Soln, class Rhs, class IMEXOp>
void ARK4DenseOutput< Soln, Rhs, IMEXOp >::define ( const Soln &  a_state,
Real  a_dt,
bool  a_denseOutput = false 
) [inline]

template<class Soln, class Rhs, class IMEXOp>
void ARK4DenseOutput< Soln, Rhs, IMEXOp >::advance ( Real  a_time,
Soln &  a_state 
) [inline]

template<class Soln, class Rhs, class IMEXOp>
void ARK4DenseOutput< Soln, Rhs, IMEXOp >::denseOutputCoefs ( Vector< Rhs * > &  a_interpCoefs  )  [inline]

template<class Soln, class Rhs, class IMEXOp>
void ARK4DenseOutput< Soln, Rhs, IMEXOp >::resetDt ( Real  a_dt  )  [inline]

template<class Soln, class Rhs, class IMEXOp>
void ARK4DenseOutput< Soln, Rhs, IMEXOp >::start0end1 ( bool  a_start0,
bool  a_end1 
) [inline]

template<class Soln, class Rhs, class IMEXOp>
IMEXOp & ARK4DenseOutput< Soln, Rhs, IMEXOp >::getImExOp (  )  [inline]

template<class Soln, class Rhs, class IMEXOp>
bool ARK4DenseOutput< Soln, Rhs, IMEXOp >::isDefined (  )  const [inline]

template<class Soln, class Rhs, class IMEXOp>
bool ARK4DenseOutput< Soln, Rhs, IMEXOp >::hasDenseOutput (  )  const [inline]


Member Data Documentation

template<class Soln, class Rhs, class IMEXOp>
const int ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_nStages = 6 [static]

template<class Soln, class Rhs, class IMEXOp>
const Real ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_aIdiag = 0.25 [inline, static]

template<class Soln, class Rhs, class IMEXOp>
const Real ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_c = { 0.0, 0.5, 0.332, 0.62, 0.85, 1.0 } [inline, static]

template<class Soln, class Rhs, class IMEXOp>
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().

template<class Soln, class Rhs, class IMEXOp>
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().

template<class Soln, class Rhs, class IMEXOp>
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().

template<class Soln, class Rhs, class IMEXOp>
const int ARK4DenseOutput< Soln, Rhs, IMEXOp >::s_nDenseCoefs = 3 [static]

template<class Soln, class Rhs, class IMEXOp>
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().

template<class Soln, class Rhs, class IMEXOp>
bool ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_isDefined [protected]

template<class Soln, class Rhs, class IMEXOp>
bool ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_denseOutput [protected]

template<class Soln, class Rhs, class IMEXOp>
bool ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_hasDenseOutput [protected]

template<class Soln, class Rhs, class IMEXOp>
Real ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_dt [protected]

template<class Soln, class Rhs, class IMEXOp>
Real ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_time [protected]

template<class Soln, class Rhs, class IMEXOp>
Soln ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_phi[s_nStages] [protected]

template<class Soln, class Rhs, class IMEXOp>
Rhs ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_rhs [protected]

template<class Soln, class Rhs, class IMEXOp>
Rhs ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_denseCoefs[s_nDenseCoefs] [protected]

template<class Soln, class Rhs, class IMEXOp>
Rhs ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_kE [protected]

template<class Soln, class Rhs, class IMEXOp>
Rhs ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_kI [protected]

template<class Soln, class Rhs, class IMEXOp>
IMEXOp ARK4DenseOutput< Soln, Rhs, IMEXOp >::m_opImEx [protected]


The documentation for this class was generated from the following file:

Generated on Fri Apr 5 04:24:53 2019 for Chombo + EB by  doxygen 1.5.5