Chombo + EB  3.2
Public Member Functions | Static Public Attributes | Protected Attributes | List of all members
RK4DenseOutput< Soln, Rhs, EXOP > Class Template Reference

#include <RK4DenseOutput.H>

Public Member Functions

 RK4DenseOutput ()
 
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)
 
EXOP & getEXOP ()
 
bool isDefined () const
 
bool hasDenseOutput () const
 

Static Public Attributes

static const int s_nStages = 4
 Runge-Kutta coefficients. More...
 
static const Real s_c [s_nStages] = { 0.0, 0.5, 0.5, 1.0 }
 
static const Real s_a [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
 
EXOP m_opEx
 

Detailed Description

template<class Soln, class Rhs, class EXOP>
class RK4DenseOutput< Soln, Rhs, EXOP >

This is a standard RK4 implementation that also includes dense output coefficients

Constructor & Destructor Documentation

◆ RK4DenseOutput()

template<class Soln , class Rhs , class EXOP >
RK4DenseOutput< Soln, Rhs, EXOP >::RK4DenseOutput ( )
inline

Member Function Documentation

◆ define()

template<class Soln , class Rhs , class EXOP >
void RK4DenseOutput< Soln, Rhs, EXOP >::define ( const Soln &  a_state,
Real  a_dt,
bool  a_denseOutput = false 
)

◆ advance()

template<class Soln , class Rhs , class EXOP >
void RK4DenseOutput< Soln, Rhs, EXOP >::advance ( Real  a_time,
Soln &  a_state 
)

◆ denseOutputCoefs()

template<class Soln , class Rhs , class EXOP >
void RK4DenseOutput< Soln, Rhs, EXOP >::denseOutputCoefs ( Vector< Rhs *> &  a_interpCoefs)

◆ resetDt()

template<class Soln , class Rhs , class EXOP >
void RK4DenseOutput< Soln, Rhs, EXOP >::resetDt ( Real  a_dt)

◆ start0end1()

template<class Soln , class Rhs , class EXOP >
void RK4DenseOutput< Soln, Rhs, EXOP >::start0end1 ( bool  a_start0,
bool  a_end1 
)

◆ getEXOP()

template<class Soln , class Rhs , class EXOP >
EXOP & RK4DenseOutput< Soln, Rhs, EXOP >::getEXOP ( )

◆ isDefined()

template<class Soln , class Rhs , class EXOP >
bool RK4DenseOutput< Soln, Rhs, EXOP >::isDefined ( ) const
inline

◆ hasDenseOutput()

template<class Soln , class Rhs , class EXOP >
bool RK4DenseOutput< Soln, Rhs, EXOP >::hasDenseOutput ( ) const
inline

Member Data Documentation

◆ s_nStages

template<class Soln , class Rhs , class EXOP >
const int RK4DenseOutput< Soln, Rhs, EXOP >::s_nStages = 4
static

◆ s_c

template<class Soln , class Rhs , class EXOP >
const Real RK4DenseOutput< Soln, Rhs, EXOP >::s_c = { 0.0, 0.5, 0.5, 1.0 }
static

◆ s_a

template<class Soln , class Rhs , class EXOP >
const Real RK4DenseOutput< Soln, Rhs, EXOP >::s_a
static
Initial value:
= {
{0., 0., 0., 0.},
{0.5, 0., 0., 0.},
{0., 0.5, 0., 0.},
{0., 0., 1.0, 0.},
}

Referenced by RK4DenseOutput< Soln, Rhs, EXOP >::advance(), and RK4DenseOutput< Soln, Rhs, EXOP >::denseOutputCoefs().

◆ s_b

template<class Soln , class Rhs , class EXOP >
const Real RK4DenseOutput< Soln, Rhs, EXOP >::s_b
static
Initial value:
=
{0.16666666666666667, 0.33333333333333333, 0.33333333333333333, 0.16666666666666667}

Referenced by RK4DenseOutput< Soln, Rhs, EXOP >::advance(), and RK4DenseOutput< Soln, Rhs, EXOP >::denseOutputCoefs().

◆ s_nDenseCoefs

template<class Soln , class Rhs , class EXOP >
const int RK4DenseOutput< Soln, Rhs, EXOP >::s_nDenseCoefs = 3
static

◆ s_bstar

template<class Soln , class Rhs , class EXOP >
const Real RK4DenseOutput< Soln, Rhs, EXOP >::s_bstar
static
Initial value:
= {
{1.0, 0., 0., 0.},
{-1.5, 1.0, 1.0, -0.5},
{0.66666666666666667, -0.66666666666666667, -0.66666666666666667, 0.66666666666666667}
}

Referenced by RK4DenseOutput< Soln, Rhs, EXOP >::advance(), and RK4DenseOutput< Soln, Rhs, EXOP >::denseOutputCoefs().

◆ m_isDefined

template<class Soln , class Rhs , class EXOP >
bool RK4DenseOutput< Soln, Rhs, EXOP >::m_isDefined
protected

◆ m_denseOutput

template<class Soln , class Rhs , class EXOP >
bool RK4DenseOutput< Soln, Rhs, EXOP >::m_denseOutput
protected

◆ m_hasDenseOutput

template<class Soln , class Rhs , class EXOP >
bool RK4DenseOutput< Soln, Rhs, EXOP >::m_hasDenseOutput
protected

◆ m_dt

template<class Soln , class Rhs , class EXOP >
Real RK4DenseOutput< Soln, Rhs, EXOP >::m_dt
protected

◆ m_time

template<class Soln , class Rhs , class EXOP >
Real RK4DenseOutput< Soln, Rhs, EXOP >::m_time
protected

◆ m_phi

template<class Soln , class Rhs , class EXOP >
Soln RK4DenseOutput< Soln, Rhs, EXOP >::m_phi[s_nStages]
protected

◆ m_rhs

template<class Soln , class Rhs , class EXOP >
Rhs RK4DenseOutput< Soln, Rhs, EXOP >::m_rhs
protected

◆ m_denseCoefs

template<class Soln , class Rhs , class EXOP >
Rhs RK4DenseOutput< Soln, Rhs, EXOP >::m_denseCoefs[s_nDenseCoefs]
protected

◆ m_kE

template<class Soln , class Rhs , class EXOP >
Rhs RK4DenseOutput< Soln, Rhs, EXOP >::m_kE
protected

◆ m_opEx

template<class Soln , class Rhs , class EXOP >
EXOP RK4DenseOutput< Soln, Rhs, EXOP >::m_opEx
protected

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