Nektar++
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Protected Member Functions | Private Member Functions | List of all members
Nektar::LibUtilities::IMEXTimeIntegrationSchemeSDC Class Reference

#include <IMEXTimeIntegrationSchemeSDC.h>

Inheritance diagram for Nektar::LibUtilities::IMEXTimeIntegrationSchemeSDC:
[legend]

Public Member Functions

 IMEXTimeIntegrationSchemeSDC (std::string variant, size_t order, std::vector< NekDouble > freeParams)
 
- Public Member Functions inherited from Nektar::LibUtilities::TimeIntegrationSchemeSDC
 TimeIntegrationSchemeSDC (std::string variant, size_t order, std::vector< NekDouble > freeParams)
 
 ~TimeIntegrationSchemeSDC () override
 Destructor. More...
 
LUE void SetPFASST (bool pfasst)
 
LUE void SetTime (double time)
 
LUE size_t GetMaxOrder () const
 
LUE bool HasFirstQuadrature () const
 
LUE bool HasLastQuadrature () const
 
LUE size_t GetQuadPtsNumber () const
 
LUE size_t GetNpoints () const
 
LUE size_t GetNvars () const
 
LUE const PointsKeyGetPointsKey () const
 
LUE const DoubleArrayGetFirstQuadratureSolutionVector () const
 
LUE DoubleArrayUpdateFirstQuadratureSolutionVector ()
 
LUE const DoubleArrayGetLastQuadratureSolutionVector () const
 
LUE DoubleArrayUpdateLastQuadratureSolutionVector ()
 
LUE const TripleArrayGetResidualVector () const
 
LUE TripleArrayUpdateResidualVector ()
 
LUE const TripleArrayGetIntegratedResidualVector () const
 
LUE TripleArrayUpdateIntegratedResidualVector ()
 
LUE const TripleArrayGetFAScorrectionVector () const
 
LUE TripleArrayUpdateFAScorrectionVector ()
 
LUE void ResidualEval (const NekDouble &delta_t, const size_t n)
 
LUE void ResidualEval (const NekDouble &delta_t)
 
LUE void ComputeInitialGuess (const NekDouble &delta_t)
 
LUE void SDCIterationLoop (const NekDouble &delta_t)
 
LUE void UpdateFirstQuadrature (void)
 Worker method that update the first quadrature. More...
 
LUE void UpdateLastQuadrature (void)
 Worker method that update the last quadrature. More...
 
LUE void AddFASCorrectionToSFint (void)
 Worker method that add the FASCorrection. More...
 
LUE void UpdateIntegratedResidualSFint (const NekDouble &delta_t)
 Worker method that compute residual integral. More...
 
LUE void UpdateIntegratedResidualQFint (const NekDouble &delta_t)
 
- 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< NekDoubleGetFreeParams ()
 
LUE TimeIntegrationSchemeType GetIntegrationSchemeType ()
 
LUE NekDouble GetTimeStability () const
 
LUE size_t GetNumIntegrationPhases ()
 
LUE const TripleArrayGetSolutionVector () const
 Gets the solution vector of the ODE. More...
 
LUE TripleArrayUpdateSolutionVector ()
 
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 ConstDoubleArrayTimeIntegrate (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 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< NekDoublev_GetFreeParams () const override
 
LUE TimeIntegrationSchemeType v_GetIntegrationSchemeType () const override
 
LUE NekDouble v_GetTimeStability () const override
 
LUE size_t v_GetNumIntegrationPhases () const override
 
LUE const TripleArrayv_GetSolutionVector () const override
 Gets the solution vector of the ODE. More...
 
LUE TripleArrayv_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 ConstDoubleArrayv_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< NekDoublev_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 TripleArrayv_GetSolutionVector () const =0
 
virtual LUE TripleArrayv_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 ConstDoubleArrayv_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< NekDoublem_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}
 

Detailed Description

Definition at line 46 of file IMEXTimeIntegrationSchemeSDC.h.

Constructor & Destructor Documentation

◆ IMEXTimeIntegrationSchemeSDC()

Nektar::LibUtilities::IMEXTimeIntegrationSchemeSDC::IMEXTimeIntegrationSchemeSDC ( std::string  variant,
size_t  order,
std::vector< NekDouble freeParams 
)
inline

Definition at line 49 of file IMEXTimeIntegrationSchemeSDC.h.

51 : TimeIntegrationSchemeSDC(variant, order, freeParams)
52 {
53
55 "Quadrature type that include the left end point (e.g. "
56 "GaussLobattoLegendre) should not be used for IMEXSDC");
57
58 std::cerr
59 << "WARNING: IMEX Spectral Deferred Correction method has been "
60 "implemented but its use is not recommended as the "
61 "approach is affected by order-reduction problems."
62 << std::endl;
63
64 m_name = "IMEXSpectralDeferredCorrection";
66 }
#define ASSERTL0(condition, msg)
Definition: ErrorUtil.hpp:208
bool m_first_quadrature
Number of points in the integration scheme.
TimeIntegrationSchemeSDC(std::string variant, size_t order, std::vector< NekDouble > freeParams)
@ eIMEX
Implicit Explicit General Linear Method.

References ASSERTL0, Nektar::LibUtilities::eIMEX, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_first_quadrature, Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_name, and Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_schemeType.

Member Function Documentation

◆ ComputeTotalResidual()

void Nektar::LibUtilities::IMEXTimeIntegrationSchemeSDC::ComputeTotalResidual ( const size_t  n)
private

Worker method to compute the total residual.

Definition at line 272 of file IMEXTimeIntegrationSchemeSDC.h.

273{
274 for (size_t i = 0; i < m_nvars; ++i)
275 {
276 Vmath::Vadd(m_npoints, m_Fimp[n][i], 1, m_Fexp[n][i], 1, m_F[n][i], 1);
277 }
278}
TripleArray m_Fimp
Array corresponding to the stage derivatives.
size_t m_npoints
Number of variables in the integration scheme.
TripleArray m_F
Array containing the stage values.
void Vadd(int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Add vector z = x+y.
Definition: Vmath.hpp:180

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().

◆ create()

static TimeIntegrationSchemeSharedPtr Nektar::LibUtilities::IMEXTimeIntegrationSchemeSDC::create ( std::string  variant,
size_t  order,
std::vector< NekDouble freeParams 
)
inlinestatic

Definition at line 68 of file IMEXTimeIntegrationSchemeSDC.h.

70 {
73 variant, order, freeParams);
74
75 return p;
76 }
static std::shared_ptr< DataType > AllocateSharedPtr(const Args &...args)
Allocate a shared pointer from the memory pool.
std::shared_ptr< TimeIntegrationScheme > TimeIntegrationSchemeSharedPtr

References Nektar::MemoryManager< DataType >::AllocateSharedPtr(), and CellMLToNektar.cellml_metadata::p.

◆ v_ComputeInitialGuess()

void Nektar::LibUtilities::IMEXTimeIntegrationSchemeSDC::v_ComputeInitialGuess ( const NekDouble delta_t)
overrideprotectedvirtual

Worker method to compute the initial SDC guess.

Reimplemented from Nektar::LibUtilities::TimeIntegrationSchemeSDC.

Definition at line 163 of file IMEXTimeIntegrationSchemeSDC.h.

165{
166 for (size_t n = 0; n < m_nQuadPts; ++n)
167 {
168 if (n == 0)
169 {
170 // Apply time-dependent boundary condition
171 m_op.DoProjection(m_Y[0], m_Y[0], m_time);
172 }
173 else
174 {
175 NekDouble dtn = delta_t * (m_tau[n] - m_tau[n - 1]);
176
177 // Add explicit contribution to rhs
178 for (size_t i = 0; i < m_nvars; ++i)
179 {
180 Vmath::Svtvp(m_npoints, dtn, m_Fexp[n - 1][i], 1, m_Y[n - 1][i],
181 1, m_tmp[i], 1);
182 }
183
184 // Solve implicit system from rhs
185 m_op.DoImplicitSolve(m_tmp, m_Y[n], m_time + delta_t * m_tau[n],
186 dtn);
187
188 // Compute implicit flux from updated solution
189 for (size_t i = 0; i < m_nvars; ++i)
190 {
191 Vmath::Vsub(m_npoints, m_Y[n][i], 1, m_tmp[i], 1, m_Fimp[n][i],
192 1);
193 Vmath::Smul(m_npoints, 1.0 / dtn, m_Fimp[n][i], 1, m_Fimp[n][i],
194 1);
195 }
196 }
197
198 // Compute explicit residual
199 m_op.DoOdeRhs(m_Y[n], m_Fexp[n], m_time + delta_t * m_tau[n]);
200
201 // Compute total residual
203 }
204}
DoubleArray m_tmp
Array corresponding to the stage derivatives.
void ComputeTotalResidual(const size_t n)
Worker method to compute the total residual.
void DoImplicitSolve(InArrayType &inarray, OutArrayType &outarray, const NekDouble time, const NekDouble lambda) const
void DoProjection(InArrayType &inarray, OutArrayType &outarray, const NekDouble time) const
void DoOdeRhs(InArrayType &inarray, OutArrayType &outarray, const NekDouble time) const
TripleArray m_Y
Array containing the last stage values.
size_t m_nQuadPts
Order of the integration scheme.
SingleArray m_tau
Object containing quadrature data.
double NekDouble
void Svtvp(int n, const T alpha, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Svtvp (scalar times vector plus vector): z = alpha*x + y.
Definition: Vmath.hpp:396
void Smul(int n, const T alpha, const T *x, const int incx, T *y, const int incy)
Scalar multiply y = alpha*x.
Definition: Vmath.hpp:100
void Vsub(int n, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
Subtract vector z = x-y.
Definition: Vmath.hpp:220

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().

◆ v_InitializeScheme()

void Nektar::LibUtilities::IMEXTimeIntegrationSchemeSDC::v_InitializeScheme ( const NekDouble  deltaT,
ConstDoubleArray y_0,
const NekDouble  time,
const TimeIntegrationSchemeOperators op 
)
overrideprotectedvirtual

Array for temporary storage.

Worker method to initialize the integration scheme.

Implements Nektar::LibUtilities::TimeIntegrationScheme.

Definition at line 105 of file IMEXTimeIntegrationSchemeSDC.h.

108{
109 if (m_initialized)
110 {
111 m_time = time;
112 for (size_t i = 0; i < m_nvars; ++i)
113 {
114 // Store the initial values as the first previous state.
115 Vmath::Vcopy(m_npoints, y_0[i], 1, m_Y[0][i], 1);
116 }
117 }
118 else
119 {
121
124 for (size_t m = 0; m < m_nQuadPts; ++m)
125 {
128 for (size_t i = 0; i < m_nvars; ++i)
129 {
130 m_Fexp[m][i] = SingleArray(m_npoints, 0.0);
131 m_Fimp[m][i] = SingleArray(m_npoints, 0.0);
132 }
133 }
134
136 for (size_t i = 0; i < m_nvars; ++i)
137 {
138 m_tmp[i] = SingleArray(m_npoints, 0.0);
139 }
140 }
141}
LUE void v_InitializeScheme(const NekDouble deltaT, ConstDoubleArray &y_0, const NekDouble time, const TimeIntegrationSchemeOperators &op) override
Worker method to initialize the integration scheme.
AT< AT< NekDouble > > DoubleArray
AT< AT< AT< NekDouble > > > TripleArray
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
Definition: Vmath.hpp:825

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().

◆ v_ResidualEval() [1/2]

void Nektar::LibUtilities::IMEXTimeIntegrationSchemeSDC::v_ResidualEval ( const NekDouble delta_t)
overrideprotectedvirtual

Reimplemented from Nektar::LibUtilities::TimeIntegrationSchemeSDC.

Definition at line 152 of file IMEXTimeIntegrationSchemeSDC.h.

153{
154 for (size_t n = 0; n < m_nQuadPts; ++n)
155 {
156 v_ResidualEval(delta_t, n);
157 }
158}
LUE void v_ResidualEval(const NekDouble &delta_t, const size_t n) override
Worker method to compute the residual.

References Nektar::LibUtilities::TimeIntegrationSchemeSDC::m_nQuadPts, and v_ResidualEval().

◆ v_ResidualEval() [2/2]

void Nektar::LibUtilities::IMEXTimeIntegrationSchemeSDC::v_ResidualEval ( const NekDouble delta_t,
const size_t  n 
)
overrideprotectedvirtual

Worker method to compute the residual.

Reimplemented from Nektar::LibUtilities::TimeIntegrationSchemeSDC.

Definition at line 146 of file IMEXTimeIntegrationSchemeSDC.h.

148{
149 ASSERTL0(false, "v_ResidualEval not implemented for IMEX SDC");
150}

References ASSERTL0.

Referenced by v_ResidualEval().

◆ v_SDCIterationLoop()

void Nektar::LibUtilities::IMEXTimeIntegrationSchemeSDC::v_SDCIterationLoop ( const NekDouble delta_t)
overrideprotectedvirtual

Worker method to compute the SDC iteration.

Reimplemented from Nektar::LibUtilities::TimeIntegrationSchemeSDC.

Definition at line 209 of file IMEXTimeIntegrationSchemeSDC.h.

210{
211 // Update integrated residual
213
214 // Add FAS correction to integrated residual
216
217 // Loop over quadrature points
218 for (size_t n = 1; n < m_nQuadPts; ++n)
219 {
220 NekDouble dtn = delta_t * (m_tau[n] - m_tau[n - 1]);
221
222 // Add rhs terms
223 for (size_t i = 0; i < m_nvars; ++i)
224 {
225 // Add SFint contribution to rhs
226 Vmath::Vadd(m_npoints, m_Y[n - 1][i], 1, m_SFint[n][i], 1, m_tmp[i],
227 1);
228
229 // Add explicit contribution to rhs
230 if (n > 1)
231 {
232 Vmath::Svtvp(m_npoints, m_theta * dtn, m_Fexp[n - 1][i], 1,
233 m_tmp[i], 1, m_tmp[i], 1);
234 }
235
236 // Add explicit contribution to SFint
237 if (n < m_nQuadPts - 1)
238 {
239 NekDouble dtnp = delta_t * (m_tau[n + 1] - m_tau[n]);
240 Vmath::Svtvp(m_npoints, -m_theta * dtnp, m_Fexp[n][i], 1,
241 m_SFint[n + 1][i], 1, m_SFint[n + 1][i], 1);
242 }
243
244 // Add implicit contribution to rhs
245 Vmath::Svtvp(m_npoints, -m_theta * dtn, m_Fimp[n][i], 1, m_tmp[i],
246 1, m_tmp[i], 1);
247 }
248
249 // Solve implicit system from rhs
250 m_op.DoImplicitSolve(m_tmp, m_Y[n], m_time + delta_t * m_tau[n],
251 m_theta * dtn);
252
253 // Compute implicit residual from updated solution
254 for (size_t i = 0; i < m_nvars; ++i)
255 {
256 Vmath::Vsub(m_npoints, m_Y[n][i], 1, m_tmp[i], 1, m_Fimp[n][i], 1);
257 Vmath::Smul(m_npoints, 1.0 / (m_theta * dtn), m_Fimp[n][i], 1,
258 m_Fimp[n][i], 1);
259 }
260
261 // Compute explicit residual
262 m_op.DoOdeRhs(m_Y[n], m_Fexp[n], m_time + delta_t * m_tau[n]);
263
264 // Compute total residual
266 }
267}
LUE void UpdateIntegratedResidualSFint(const NekDouble &delta_t)
Worker method that compute residual integral.
LUE void AddFASCorrectionToSFint(void)
Worker method that add the FASCorrection.
TripleArray m_SFint
Array containing the FAS correction term.
NekDouble m_theta
Array containing the interpolation coefficients.

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().

Member Data Documentation

◆ className

std::string Nektar::LibUtilities::IMEXTimeIntegrationSchemeSDC::className
static
Initial value:
=
static TimeIntegrationSchemeSharedPtr create(std::string variant, size_t order, std::vector< NekDouble > freeParams)
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, std::string pDesc="")
Register a class with the factory.
Definition: NekFactory.hpp:197
TimeIntegrationSchemeFactory & GetTimeIntegrationSchemeFactory()

Definition at line 78 of file IMEXTimeIntegrationSchemeSDC.h.

◆ m_Fexp

TripleArray Nektar::LibUtilities::IMEXTimeIntegrationSchemeSDC::m_Fexp

◆ m_Fimp

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().

◆ m_tmp

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().