Nektar++
|
#include <IMEXTimeIntegrationSchemeSDC.h>
Static Public Member Functions | |
static TimeIntegrationSchemeSharedPtr | create (std::string variant, size_t order, std::vector< NekDouble > freeParams) |
Static Public Member Functions inherited from Nektar::LibUtilities::TimeIntegrationSchemeSDC | |
static TimeIntegrationSchemeSharedPtr | create (std::string variant, size_t order, std::vector< NekDouble > freeParams) |
Public Attributes | |
TripleArray | m_Fexp |
TripleArray | m_Fimp |
Array corresponding to the stage derivatives. More... | |
DoubleArray | m_tmp |
Array corresponding to the stage derivatives. More... | |
Static Public Attributes | |
static std::string | className |
Static Public Attributes inherited from Nektar::LibUtilities::TimeIntegrationSchemeSDC | |
static std::string | className |
Protected Member Functions | |
LUE void | v_InitializeScheme (const NekDouble deltaT, ConstDoubleArray &y_0, const NekDouble time, const TimeIntegrationSchemeOperators &op) override |
Array for temporary storage. More... | |
LUE void | v_ResidualEval (const NekDouble &delta_t, const size_t n) override |
Worker method to compute the residual. More... | |
LUE void | v_ResidualEval (const NekDouble &delta_t) override |
LUE void | v_ComputeInitialGuess (const NekDouble &delta_t) override |
Worker method to compute the initial SDC guess. More... | |
LUE void | v_SDCIterationLoop (const NekDouble &delta_t) override |
Worker method to compute the SDC iteration. More... | |
Protected Member Functions inherited from Nektar::LibUtilities::TimeIntegrationSchemeSDC | |
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 |
Gets the solution vector of the ODE. More... | |
LUE TripleArray & | v_UpdateSolutionVector () override |
LUE void | v_SetSolutionVector (const size_t Offset, const DoubleArray &y) override |
Sets the solution vector of the ODE. More... | |
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... | |
virtual LUE void | v_ResidualEval (const NekDouble &delta_t, const size_t n) |
virtual LUE void | v_ResidualEval (const NekDouble &delta_t) |
virtual LUE void | v_ComputeInitialGuess (const NekDouble &delta_t) |
virtual LUE void | v_SDCIterationLoop (const NekDouble &delta_t) |
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 |
Private Member Functions | |
void | ComputeTotalResidual (const size_t n) |
Worker method to compute the total residual. More... | |
Additional Inherited Members | |
Protected Attributes inherited from Nektar::LibUtilities::TimeIntegrationSchemeSDC | |
NekDouble | m_time |
std::string | m_name |
std::string | m_variant |
std::vector< NekDouble > | m_freeParams |
TimeIntegrationSchemeType | m_schemeType {eNoTimeIntegrationSchemeType} |
TimeIntegrationSchemeOperators | m_op |
PointsKey | m_pointsKey |
SingleArray | m_tau |
Object containing quadrature data. More... | |
DoubleArray | m_Y_f |
Array containing the quadrature points. More... | |
TripleArray | m_Y |
Array containing the last stage values. More... | |
TripleArray | m_F |
Array containing the stage values. More... | |
TripleArray | m_FAScorr |
Array containing the stage derivatives. More... | |
TripleArray | m_SFint |
Array containing the FAS correction term. More... | |
TripleArray | m_QFint |
Array containing the integrated residual term. More... | |
SingleArray | m_QMat |
Array containing the integrated residual term. More... | |
SingleArray | m_interp |
Array containing the integration matrix. More... | |
NekDouble | m_theta {1.0} |
Array containing the interpolation coefficients. More... | |
size_t | m_ordermin {0} |
SDC parameter. More... | |
size_t | m_ordermax {0} |
Minimum order of the integration scheme. More... | |
size_t | m_order {0} |
Maximum order of the integration scheme. More... | |
size_t | m_nQuadPts {0} |
Order of the integration scheme. More... | |
size_t | m_nvars {0} |
Number of quadrature points. More... | |
size_t | m_npoints {0} |
Number of variables in the integration scheme. More... | |
bool | m_first_quadrature {true} |
Number of points in the integration scheme. More... | |
bool | m_last_quadrature {true} |
bool | m_initialized {false} |
bool | m_PFASST {false} |
Definition at line 46 of file IMEXTimeIntegrationSchemeSDC.h.
|
inline |
Definition at line 49 of file IMEXTimeIntegrationSchemeSDC.h.
References ASSERTL0, Nektar::LibUtilities::eIMEX, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_first_quadrature, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_name, and Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_schemeType.
|
private |
Worker method to compute the total residual.
Definition at line 272 of file IMEXTimeIntegrationSchemeSDC.h.
References Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_F, m_Fexp, m_Fimp, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_npoints, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_nvars, and Vmath::Vadd().
Referenced by v_ComputeInitialGuess(), and v_SDCIterationLoop().
|
inlinestatic |
Definition at line 68 of file IMEXTimeIntegrationSchemeSDC.h.
References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), and CellMLToNektar.cellml_metadata::p.
|
overrideprotectedvirtual |
Worker method to compute the initial SDC guess.
Reimplemented from Nektar::LibUtilities::TimeIntegrationSchemeSDC.
Definition at line 163 of file IMEXTimeIntegrationSchemeSDC.h.
References ComputeTotalResidual(), Nektar::LibUtilities::TimeIntegrationSchemeOperators::DoImplicitSolve(), Nektar::LibUtilities::TimeIntegrationSchemeOperators::DoOdeRhs(), Nektar::LibUtilities::TimeIntegrationSchemeOperators::DoProjection(), m_Fexp, m_Fimp, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_npoints, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_nQuadPts, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_nvars, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_op, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_tau, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_time, m_tmp, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_Y, Vmath::Smul(), Vmath::Svtvp(), and Vmath::Vsub().
|
overrideprotectedvirtual |
Array for temporary storage.
Worker method to initialize the integration scheme.
Implements Nektar::LibUtilities::TimeIntegrationScheme.
Definition at line 105 of file IMEXTimeIntegrationSchemeSDC.h.
References m_Fexp, m_Fimp, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_initialized, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_npoints, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_nQuadPts, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_nvars, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_time, m_tmp, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_Y, Nektar::LibUtilities::TimeIntegrationSchemeSDC::v_InitializeScheme(), and Vmath::Vcopy().
|
overrideprotectedvirtual |
Reimplemented from Nektar::LibUtilities::TimeIntegrationSchemeSDC.
Definition at line 152 of file IMEXTimeIntegrationSchemeSDC.h.
References Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_nQuadPts, and v_ResidualEval().
|
overrideprotectedvirtual |
Worker method to compute the residual.
Reimplemented from Nektar::LibUtilities::TimeIntegrationSchemeSDC.
Definition at line 146 of file IMEXTimeIntegrationSchemeSDC.h.
References ASSERTL0.
Referenced by v_ResidualEval().
|
overrideprotectedvirtual |
Worker method to compute the SDC iteration.
Reimplemented from Nektar::LibUtilities::TimeIntegrationSchemeSDC.
Definition at line 209 of file IMEXTimeIntegrationSchemeSDC.h.
References Nektar::LibUtilities::TimeIntegrationSchemeSDC::AddFASCorrectionToSFint(), ComputeTotalResidual(), Nektar::LibUtilities::TimeIntegrationSchemeOperators::DoImplicitSolve(), Nektar::LibUtilities::TimeIntegrationSchemeOperators::DoOdeRhs(), m_Fexp, m_Fimp, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_npoints, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_nQuadPts, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_nvars, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_op, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_SFint, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_tau, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_theta, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_time, m_tmp, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_Y, Vmath::Smul(), Vmath::Svtvp(), Nektar::LibUtilities::TimeIntegrationSchemeSDC::UpdateIntegratedResidualSFint(), Vmath::Vadd(), and Vmath::Vsub().
|
static |
Definition at line 78 of file IMEXTimeIntegrationSchemeSDC.h.
TripleArray Nektar::LibUtilities::IMEXTimeIntegrationSchemeSDC::m_Fexp |
Definition at line 80 of file IMEXTimeIntegrationSchemeSDC.h.
Referenced by ComputeTotalResidual(), v_ComputeInitialGuess(), v_InitializeScheme(), and v_SDCIterationLoop().
TripleArray Nektar::LibUtilities::IMEXTimeIntegrationSchemeSDC::m_Fimp |
Array corresponding to the stage derivatives.
Definition at line 81 of file IMEXTimeIntegrationSchemeSDC.h.
Referenced by ComputeTotalResidual(), v_ComputeInitialGuess(), v_InitializeScheme(), and v_SDCIterationLoop().
DoubleArray Nektar::LibUtilities::IMEXTimeIntegrationSchemeSDC::m_tmp |
Array corresponding to the stage derivatives.
Definition at line 82 of file IMEXTimeIntegrationSchemeSDC.h.
Referenced by v_ComputeInitialGuess(), v_InitializeScheme(), and v_SDCIterationLoop().