Nektar++
|
Class for spectral deferred correction integration. More...
#include <TimeIntegrationSchemeGEM.h>
Public Member Functions | |
TimeIntegrationSchemeGEM (std::string variant, size_t order, std::vector< NekDouble > freeParams) | |
~TimeIntegrationSchemeGEM () override | |
Destructor. More... | |
Public Member Functions inherited from Nektar::LibUtilities::TimeIntegrationScheme | |
LUE std::string | GetFullName () const |
LUE std::string | GetName () const |
LUE std::string | GetVariant () const |
LUE size_t | GetOrder () const |
LUE std::vector< NekDouble > | GetFreeParams () |
LUE TimeIntegrationSchemeType | GetIntegrationSchemeType () |
LUE NekDouble | GetTimeStability () const |
LUE size_t | GetNumIntegrationPhases () |
LUE const TripleArray & | GetSolutionVector () const |
Gets the solution vector of the ODE. More... | |
LUE TripleArray & | UpdateSolutionVector () |
LUE void | SetSolutionVector (const size_t Offset, const DoubleArray &y) |
Sets the solution vector of the ODE. More... | |
LUE void | InitializeScheme (const NekDouble deltaT, ConstDoubleArray &y_0, const NekDouble time, const TimeIntegrationSchemeOperators &op) |
Explicit integration of an ODE. More... | |
LUE ConstDoubleArray & | TimeIntegrate (const size_t timestep, const NekDouble delta_t) |
LUE void | print (std::ostream &os) const |
LUE void | printFull (std::ostream &os) const |
Static Public Member Functions | |
static TimeIntegrationSchemeSharedPtr | create (std::string variant, size_t order, std::vector< NekDouble > freeParams) |
Static Public Attributes | |
static std::string | className |
Protected Member Functions | |
LUE std::string | v_GetName () const override |
LUE std::string | v_GetVariant () const override |
LUE size_t | v_GetOrder () const override |
LUE std::vector< NekDouble > | v_GetFreeParams () const override |
LUE TimeIntegrationSchemeType | v_GetIntegrationSchemeType () const override |
LUE NekDouble | v_GetTimeStability () const override |
LUE size_t | v_GetNumIntegrationPhases () const override |
LUE const TripleArray & | v_GetSolutionVector () const override |
LUE TripleArray & | v_UpdateSolutionVector () override |
LUE void | v_SetSolutionVector (const size_t Offset, const DoubleArray &y) override |
LUE void | v_InitializeScheme (const NekDouble deltaT, ConstDoubleArray &y_0, const NekDouble time, const TimeIntegrationSchemeOperators &op) override |
Worker method to initialize the integration scheme. More... | |
LUE ConstDoubleArray & | v_TimeIntegrate (const size_t timestep, const NekDouble delta_t) override |
Worker method that performs the time integration. More... | |
LUE void | v_print (std::ostream &os) const override |
Worker method to print details on the integration scheme. More... | |
LUE void | v_printFull (std::ostream &os) const override |
Protected Member Functions inherited from Nektar::LibUtilities::TimeIntegrationScheme | |
virtual LUE std::string | v_GetFullName () const |
virtual LUE std::string | v_GetName () const =0 |
virtual LUE std::string | v_GetVariant () const =0 |
virtual LUE size_t | v_GetOrder () const =0 |
virtual LUE std::vector< NekDouble > | v_GetFreeParams () const =0 |
virtual LUE TimeIntegrationSchemeType | v_GetIntegrationSchemeType () const =0 |
virtual LUE NekDouble | v_GetTimeStability () const =0 |
virtual LUE size_t | v_GetNumIntegrationPhases () const =0 |
virtual LUE const TripleArray & | v_GetSolutionVector () const =0 |
virtual LUE TripleArray & | v_UpdateSolutionVector ()=0 |
virtual LUE void | v_SetSolutionVector (const size_t Offset, const DoubleArray &y)=0 |
virtual LUE void | v_InitializeScheme (const NekDouble deltaT, ConstDoubleArray &y_0, const NekDouble time, const TimeIntegrationSchemeOperators &op)=0 |
virtual LUE ConstDoubleArray & | v_TimeIntegrate (const size_t timestep, const NekDouble delta_t)=0 |
virtual LUE void | v_print (std::ostream &os) const =0 |
virtual LUE void | v_printFull (std::ostream &os) const =0 |
LUE | TimeIntegrationScheme (std::string variant, size_t order, std::vector< NekDouble > freeParams) |
LUE | TimeIntegrationScheme (const TimeIntegrationScheme &in)=delete |
virtual | ~TimeIntegrationScheme ()=default |
Protected Attributes | |
NekDouble | m_time |
std::string | m_name |
std::string | m_variant |
std::vector< NekDouble > | m_freeParams |
TimeIntegrationSchemeType | m_schemeType {eNoTimeIntegrationSchemeType} |
TimeIntegrationSchemeOperators | m_op |
TripleArray | m_Y |
TripleArray | m_T |
Array containing the stage values. More... | |
TripleArray | m_T0 |
Array containing the solution values. More... | |
DoubleArray | m_F |
Array containing the solution values. More... | |
DoubleArray | m_F0 |
Array corresponding to the stage Derivatives. More... | |
size_t | m_order {0} |
Array corresponding to the stage Derivatives. More... | |
size_t | m_nvars {0} |
size_t | m_npoints {0} |
bool | m_initialized {false} |
Class for spectral deferred correction integration.
Definition at line 50 of file TimeIntegrationSchemeGEM.h.
|
inline |
Definition at line 53 of file TimeIntegrationSchemeGEM.h.
References ASSERTL0, Nektar::LibUtilities::eExplicit, Nektar::LibUtilities::eIMEX, Nektar::LibUtilities::eImplicit, m_freeParams, m_order, m_schemeType, and m_variant.
|
inlineoverride |
|
inlinestatic |
Definition at line 115 of file TimeIntegrationSchemeGEM.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), and CellMLToNektar.cellml_metadata::p.
|
overrideprotectedvirtual |
Implements Nektar::LibUtilities::TimeIntegrationScheme.
Definition at line 55 of file TimeIntegrationSchemeGEM.cpp.
References m_freeParams.
|
overrideprotectedvirtual |
Implements Nektar::LibUtilities::TimeIntegrationScheme.
Definition at line 60 of file TimeIntegrationSchemeGEM.cpp.
References m_schemeType.
|
overrideprotectedvirtual |
Implements Nektar::LibUtilities::TimeIntegrationScheme.
Definition at line 40 of file TimeIntegrationSchemeGEM.cpp.
References m_name.
|
overrideprotectedvirtual |
Implements Nektar::LibUtilities::TimeIntegrationScheme.
Definition at line 71 of file TimeIntegrationSchemeGEM.cpp.
|
overrideprotectedvirtual |
Implements Nektar::LibUtilities::TimeIntegrationScheme.
Definition at line 50 of file TimeIntegrationSchemeGEM.cpp.
References m_order.
|
overrideprotectedvirtual |
Implements Nektar::LibUtilities::TimeIntegrationScheme.
Definition at line 76 of file TimeIntegrationSchemeGEM.cpp.
References m_Y.
|
overrideprotectedvirtual |
Implements Nektar::LibUtilities::TimeIntegrationScheme.
Definition at line 66 of file TimeIntegrationSchemeGEM.cpp.
|
overrideprotectedvirtual |
Implements Nektar::LibUtilities::TimeIntegrationScheme.
Definition at line 45 of file TimeIntegrationSchemeGEM.cpp.
References m_variant.
|
overrideprotectedvirtual |
Worker method to initialize the integration scheme.
Implements Nektar::LibUtilities::TimeIntegrationScheme.
Definition at line 95 of file TimeIntegrationSchemeGEM.cpp.
References Nektar::LibUtilities::TimeIntegrationSchemeOperators::DoProjection(), m_F, m_F0, m_initialized, m_npoints, m_nvars, m_op, m_order, m_T, m_T0, m_time, m_variant, m_Y, and Vmath::Vcopy().
|
overrideprotectedvirtual |
Worker method to print details on the integration scheme.
Implements Nektar::LibUtilities::TimeIntegrationScheme.
Definition at line 417 of file TimeIntegrationSchemeGEM.cpp.
References Nektar::LibUtilities::TimeIntegrationScheme::GetFullName().
|
overrideprotectedvirtual |
Implements Nektar::LibUtilities::TimeIntegrationScheme.
Definition at line 422 of file TimeIntegrationSchemeGEM.cpp.
References Nektar::LibUtilities::TimeIntegrationScheme::GetFullName().
|
overrideprotectedvirtual |
Implements Nektar::LibUtilities::TimeIntegrationScheme.
Definition at line 86 of file TimeIntegrationSchemeGEM.cpp.
References m_Y.
|
overrideprotectedvirtual |
Worker method that performs the time integration.
Implements Nektar::LibUtilities::TimeIntegrationScheme.
Definition at line 179 of file TimeIntegrationSchemeGEM.cpp.
References Nektar::LibUtilities::TimeIntegrationSchemeOperators::DoImplicitSolve(), Nektar::LibUtilities::TimeIntegrationSchemeOperators::DoOdeRhs(), Nektar::LibUtilities::TimeIntegrationSchemeOperators::DoProjection(), m_F, m_F0, m_npoints, m_nvars, m_op, m_order, m_T, m_T0, m_time, m_variant, m_Y, Vmath::Svtsvtp(), Vmath::Svtvp(), Vmath::Vcopy(), and Vmath::Vsub().
|
overrideprotectedvirtual |
Implements Nektar::LibUtilities::TimeIntegrationScheme.
Definition at line 81 of file TimeIntegrationSchemeGEM.cpp.
References m_Y.
|
static |
Definition at line 125 of file TimeIntegrationSchemeGEM.h.
|
protected |
Array containing the solution values.
Definition at line 159 of file TimeIntegrationSchemeGEM.h.
Referenced by v_InitializeScheme(), and v_TimeIntegrate().
|
protected |
Array corresponding to the stage Derivatives.
Definition at line 160 of file TimeIntegrationSchemeGEM.h.
Referenced by v_InitializeScheme(), and v_TimeIntegrate().
|
protected |
Definition at line 151 of file TimeIntegrationSchemeGEM.h.
Referenced by TimeIntegrationSchemeGEM(), and v_GetFreeParams().
|
protected |
Definition at line 166 of file TimeIntegrationSchemeGEM.h.
Referenced by v_InitializeScheme().
|
protected |
Definition at line 149 of file TimeIntegrationSchemeGEM.h.
Referenced by v_GetName().
|
protected |
Definition at line 165 of file TimeIntegrationSchemeGEM.h.
Referenced by v_InitializeScheme(), and v_TimeIntegrate().
|
protected |
Definition at line 164 of file TimeIntegrationSchemeGEM.h.
Referenced by v_InitializeScheme(), and v_TimeIntegrate().
|
protected |
Definition at line 153 of file TimeIntegrationSchemeGEM.h.
Referenced by v_InitializeScheme(), and v_TimeIntegrate().
|
protected |
Array corresponding to the stage Derivatives.
Definition at line 163 of file TimeIntegrationSchemeGEM.h.
Referenced by TimeIntegrationSchemeGEM(), v_GetOrder(), v_InitializeScheme(), and v_TimeIntegrate().
|
protected |
Definition at line 152 of file TimeIntegrationSchemeGEM.h.
Referenced by TimeIntegrationSchemeGEM(), and v_GetIntegrationSchemeType().
|
protected |
Array containing the stage values.
Definition at line 157 of file TimeIntegrationSchemeGEM.h.
Referenced by v_InitializeScheme(), and v_TimeIntegrate().
|
protected |
Array containing the solution values.
Definition at line 158 of file TimeIntegrationSchemeGEM.h.
Referenced by v_InitializeScheme(), and v_TimeIntegrate().
|
protected |
Definition at line 148 of file TimeIntegrationSchemeGEM.h.
Referenced by v_InitializeScheme(), and v_TimeIntegrate().
|
protected |
Definition at line 150 of file TimeIntegrationSchemeGEM.h.
Referenced by TimeIntegrationSchemeGEM(), v_GetVariant(), v_InitializeScheme(), and v_TimeIntegrate().
|
protected |
Definition at line 156 of file TimeIntegrationSchemeGEM.h.
Referenced by v_GetSolutionVector(), v_InitializeScheme(), v_SetSolutionVector(), v_TimeIntegrate(), and v_UpdateSolutionVector().