102 for (
size_t i = 0; i <
m_nvars; ++i)
141 for (
size_t i = 0; i <
m_nvars; ++i)
158 for (
size_t i = 0; i <
m_nvars; ++i)
170 for (
size_t i = 0; i <
m_nvars; ++i)
185 [[maybe_unused]]
const size_t timestep,
const NekDouble delta_t)
187 for (
size_t k = 0; k <
m_order; ++k)
220 for (
size_t i = 0; i <
m_nvars; ++i)
233 for (
size_t i = 0; i <
m_nvars; ++i)
255 for (
size_t i = 0; i <
m_nvars; ++i)
275 for (
size_t i = 0; i <
m_nvars; ++i)
287 for (
size_t i = 0; i <
m_nvars; ++i)
305 for (
size_t i = 0; i <
m_nvars; ++i)
317 for (
size_t i = 0; i <
m_nvars; ++i)
332 os <<
"Time Integration Scheme: " <<
GetFullName() << std::endl;
337 os <<
"Time Integration Scheme: " <<
GetFullName() << std::endl;
LUE void print(std::ostream &os) const
LUE std::string GetFullName() const
Binds a set of functions for use by time integration schemes.
Class for spectral deferred correction integration.
std::vector< NekDouble > m_freeParams
LUE void UpdateIntegratedResidualSFint(const NekDouble &delta_t)
Worker method that compute residual integral.
LUE size_t v_GetNumIntegrationPhases() const override
SingleArray m_interp
Array containing the integration matrix.
LUE size_t v_GetOrder() const override
LUE TimeIntegrationSchemeType v_GetIntegrationSchemeType() const override
TripleArray m_Y
Array containing the last stage values.
LUE void v_print(std::ostream &os) const override
Worker method to print details on the integration scheme.
TimeIntegrationSchemeOperators m_op
LUE std::string v_GetName() const override
TripleArray m_QFint
Array containing the integrated residual term.
LUE void UpdateIntegratedResidualQFint(const NekDouble &delta_t)
size_t m_nQuadPts
Order of the integration scheme.
LUE void AddFASCorrectionToSFint(void)
Worker method that add the FASCorrection.
LUE TripleArray & v_UpdateSolutionVector() override
bool m_first_quadrature
Number of points in the integration scheme.
size_t m_npoints
Number of variables in the integration scheme.
SingleArray m_QMat
Array containing the integrated residual term.
LUE void ComputeInitialGuess(const NekDouble &delta_t)
LUE void v_printFull(std::ostream &os) const override
TripleArray m_FAScorr
Array containing the stage derivatives.
TripleArray m_SFint
Array containing the FAS correction term.
DoubleArray m_Y_f
Array containing the quadrature points.
LUE std::vector< NekDouble > v_GetFreeParams() const override
TimeIntegrationSchemeType m_schemeType
size_t m_order
Maximum order of the integration scheme.
SingleArray m_tau
Object containing quadrature data.
LUE void UpdateFirstQuadrature(void)
Worker method that update the first quadrature.
TripleArray m_F
Array containing the stage values.
LUE void v_SetSolutionVector(const size_t Offset, const DoubleArray &y) override
Sets the solution vector of the ODE.
LUE void v_InitializeScheme(const NekDouble deltaT, ConstDoubleArray &y_0, const NekDouble time, const TimeIntegrationSchemeOperators &op) override
Worker method to initialize the integration scheme.
LUE void UpdateLastQuadrature(void)
Worker method that update the last quadrature.
LUE ConstDoubleArray & v_TimeIntegrate(const size_t timestep, const NekDouble delta_t) override
Worker method that performs the time integration.
LUE std::string v_GetVariant() const override
LUE NekDouble v_GetTimeStability() const override
LUE void SDCIterationLoop(const NekDouble &delta_t)
LUE const TripleArray & v_GetSolutionVector() const override
Gets the solution vector of the ODE.
size_t m_nvars
Number of quadrature points.
AT< AT< NekDouble > > DoubleArray
AT< NekDouble > SingleArray
TimeIntegrationSchemeType
std::shared_ptr< TimeIntegrationSchemeSDC > TimeIntegrationSchemeSDCSharedPtr
AT< AT< AT< NekDouble > > > TripleArray
std::ostream & operator<<(std::ostream &os, const BasisKey &rhs)
void Qg(double *Q, const double *z, const int np)
Compute the Integration Matrix.
double hgj(const int i, const double z, const double *zgj, const int np, const double alpha, const double beta)
Compute the value of the i th Lagrangian interpolant through the np Gauss-Jacobi points zgj at the ar...
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.
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.
void Zero(int n, T *x, const int incx)
Zero vector.
void Vcopy(int n, const T *x, const int incx, T *y, const int incy)
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.