39#ifndef NEKTAR_LIB_UTILITIES_TIME_INTEGRATION_TIME_INTEGRATION_ALGORITHM_GLM 
   40#define NEKTAR_LIB_UTILITIES_TIME_INTEGRATION_TIME_INTEGRATION_ALGORITHM_GLM 
   42#define LUE LIB_UTILITIES_EXPORT 
  276    inline NekDouble A(
const size_t k, 
const size_t i, 
const size_t j)
 const 
  297    inline NekDouble B(
const size_t k, 
const size_t i, 
const size_t j)
 const 
  318    inline NekDouble U(
const size_t k, 
const size_t i, 
const size_t j)
 const 
  339    inline NekDouble V(
const size_t k, 
const size_t i, 
const size_t j)
 const 
  380        return y[0][0].size();
 
void CheckIfLastStageEqualsNewSolution()
 
size_t GetFirstDim(ConstTripleArray &y) const
 
TimeIntegrationSchemeType m_schemeType
 
NekDouble V(const size_t k, const size_t i, const size_t j) const
 
Array< TwoD, NekDouble > m_U
 
size_t GetNsteps(void) const
 
void VerifyIntegrationSchemeType()
 
TimeIntegrationSchemeOperators m_op
 
Array< OneD, std::complex< NekDouble > > m_L
 
TimeIntegrationAlgorithmGLM(const TimeIntegrationSchemeGLM *parent)
 
Array< OneD, Array< TwoD, NekDouble > > m_A_phi
 
NekDouble U(const size_t k, const size_t i, const size_t j) const
 
NekDouble A(const size_t k, const size_t i, const size_t j) const
 
size_t m_nvars
Last number of vars.
 
~TimeIntegrationAlgorithmGLM()
 
NekDouble B(const size_t k, const size_t i, const size_t j) const
 
std::vector< NekDouble > m_freeParams
 
Array< TwoD, NekDouble > m_V
 
NekDouble V(const size_t i, const size_t j) const
 
LUE friend std::ostream & operator<<(std::ostream &os, const TimeIntegrationScheme &rhs)
The size of inner data which is stored for reuse.
 
NekDouble m_lastNVars
Last delta T.
 
const TimeIntegrationSchemeGLM * m_parent
Parent scheme object.
 
TripleArray m_F
Explicit RHS of each stage equation.
 
void CheckIfFirstStageEqualsOldSolution()
Optimisation-flag.
 
Array< OneD, Array< TwoD, NekDouble > > m_B_phi
 
size_t m_numMultiStepExplicitDerivs
 
DoubleArray m_tmp
Array containing the stage values.
 
NekDouble A(const size_t i, const size_t j) const
 
size_t GetSecondDim(ConstTripleArray &y) const
 
NekDouble B_IMEX(const size_t i, const size_t j) const
 
size_t GetNmultiStepExplicitDerivs() const
 
Array< OneD, Array< TwoD, NekDouble > > m_B
 
size_t m_numMultiStepValues
 
bool CheckTimeIntegrateArguments(ConstTripleArray &y_old, ConstSingleArray &t_old, TripleArray &y_new, SingleArray &t_new) const
 
bool m_lastStageEqualsNewSolution
Optimisation-flag.
 
NekDouble A_IMEX(const size_t i, const size_t j) const
 
NekDouble B(const size_t i, const size_t j) const
 
Array< OneD, Array< TwoD, NekDouble > > m_A
 
size_t GetNmultiStepImplicitDerivs() const
 
Array< OneD, Array< TwoD, NekDouble > > m_V_phi
 
NekDouble U(const size_t i, const size_t j) const
 
NekDouble m_T
Used to store the Explicit stage derivative of IMEX schemes.
 
bool m_firstStageEqualsOldSolution
ime at the different stages
 
size_t GetNmultiStepValues() const
 
const Array< OneD, const size_t > & GetTimeLevelOffset() const
 
size_t m_npoints
The number of variables in integration scheme.
 
void InitializeScheme(const TimeIntegrationSchemeOperators &op)
 
LUE ConstDoubleArray & TimeIntegrate(const NekDouble deltaT, TimeIntegrationSolutionGLMSharedPtr &y)
Explicit integration of an ODE.
 
Array< OneD, size_t > m_timeLevelOffset
 
size_t m_numMultiStepImplicitDerivs
 
LUE TimeIntegrationSolutionGLMSharedPtr InitializeData(const NekDouble deltaT, ConstDoubleArray &y_0, const NekDouble time)
This function initialises the time integration scheme.
 
LUE void CheckAndVerify()
 
TimeIntegrationSchemeType GetIntegrationSchemeType() const
 
TripleArray m_F_IMEX
Array corresponding to the stage Derivatives.
 
size_t GetNstages(void) const
 
Array< OneD, Array< TwoD, NekDouble > > m_U_phi
 
Base class for GLM time integration schemes.
 
Base class for time integration schemes.
 
Binds a set of functions for use by time integration schemes.
 
std::shared_ptr< TimeIntegrationAlgorithmGLM > TimeIntegrationAlgorithmGLMSharedPtr
 
TimeIntegrationSchemeType
 
@ eExponential
Exponential scheme.
 
@ eNoTimeIntegrationSchemeType
 
std::shared_ptr< TimeIntegrationSolutionGLM > TimeIntegrationSolutionGLMSharedPtr
 
std::ostream & operator<<(std::ostream &os, const BasisKey &rhs)
 
std::shared_ptr< TimeIntegrationScheme > TimeIntegrationSchemeSharedPtr
 
The above copyright notice and this permission notice shall be included.