40 namespace LibUtilities
103 boost::ignore_unused(op);
104 boost::ignore_unused(deltaT);
108 for (
unsigned int i = 0; i <
m_nvars; ++i)
129 else if (
m_variant ==
"GaussRadauLegendre" ||
144 for (
unsigned int i = 0; i <
m_nvars; ++i)
158 for (
unsigned int m = 0; m <
m_nQuadPts - 1; ++m)
162 for (
unsigned int i = 0; i <
m_nvars; ++i)
170 for (
unsigned int i = 0; i <
m_nvars; ++i)
184 const int timestep,
const NekDouble delta_t,
188 boost::ignore_unused(timestep);
197 for (
unsigned int i = 0; i <
m_nvars; ++i)
214 for (
unsigned int i = 0; i <
m_nvars; ++i)
230 const NekDouble &delta_t,
const int option)
233 for (
unsigned int n = 0; n <
m_nQuadPts - 1; ++n)
235 for (
unsigned int i = 0; i <
m_nvars; ++i)
242 for (
unsigned int n = 0; n <
m_nQuadPts - 1; ++n)
246 for (
unsigned int i = 0; i <
m_nvars; ++i)
256 else if (option == 1)
272 os <<
"Time Integration Scheme: " <<
GetFullName() << std::endl;
277 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
virtual LUE unsigned int v_GetOrder() const override
LUE void UpdateIntegratedResidual(const NekDouble &delta_t, const int option=0)
Worker method that compute the integrated flux.
virtual LUE ConstDoubleArray & v_TimeIntegrate(const int timestep, const NekDouble delta_t, const TimeIntegrationSchemeOperators &op) override
Worker method that performs the time integration.
virtual LUE TimeIntegrationSchemeType v_GetIntegrationSchemeType() const override
virtual LUE void v_print(std::ostream &os) const override
Worker method to print details on the integration scheme.
virtual LUE std::string v_GetName() const override
LUE void ComputeInitialGuess(const NekDouble &delta_t, const TimeIntegrationSchemeOperators &op)
virtual LUE void v_SetSolutionVector(const int Offset, const DoubleArray &y) override
Sets the solution vector of the ODE.
virtual LUE void v_printFull(std::ostream &os) const override
TripleArray m_Fint
Array corresponding to the stage Derivatives.
virtual LUE std::vector< NekDouble > v_GetFreeParams() const override
TimeIntegrationSchemeType m_schemeType
TripleArray m_F
Array containing the stage values.
virtual LUE unsigned int v_GetNumIntegrationPhases() const override
virtual LUE void v_InitializeScheme(const NekDouble deltaT, ConstDoubleArray &y_0, const NekDouble time, const TimeIntegrationSchemeOperators &op) override
Worker method to initialize the integration scheme.
virtual LUE void v_SDCIterationLoop(const NekDouble &delta_t, const TimeIntegrationSchemeOperators &op)
virtual LUE std::string v_GetVariant() const override
virtual LUE NekDouble v_GetTimeStability() const override
virtual LUE const TripleArray & v_GetSolutionVector() const override
Gets the solution vector of the ODE.
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)
The above copyright notice and this permission notice shall be included.
void Qg(double *Q, const double *z, const int np, const int offset)
Compute the Integration Matrix.
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 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)