36 #ifndef NEKTAR_LIB_UTILITIES_TIME_INTEGRATION_TIME_INTEGRATION_SOLUTION_GLM
37 #define NEKTAR_LIB_UTILITIES_TIME_INTEGRATION_TIME_INTEGRATION_SOLUTION_GLM
39 #define LUE LIB_UTILITIES_EXPORT
46 namespace LibUtilities
63 const unsigned int nvar,
64 const unsigned int npoints);
153 for (
int i = 0; i < nMultiStepVals; i++)
155 if (timeLevelOffset == offsetvec[i])
160 ASSERTL1(
false,
"The solution vector of this scheme does not contain a "
161 "value at the requested time-level");
174 for (
int i = nMultiStepVals; i < size; i++)
176 if (timeLevelOffset == offsetvec[i])
181 ASSERTL1(
false,
"The solution vector of this scheme does not contain a "
182 "derivative at the requested time-level");
194 for (
int i = 0; i < nMultiStepVals; i++)
196 if (timeLevelOffset == offsetvec[i])
201 ASSERTL1(
false,
"The solution vector of this scheme does not contain a "
202 "value at the requested time-level");
209 inline void SetValue(
const unsigned int timeLevelOffset,
216 for (
int i = 0; i < nMultiStepVals; i++)
218 if (timeLevelOffset == offsetvec[i])
238 for (
int i = nMultiStepVals; i < size; i++)
240 if (timeLevelOffset == offsetvec[i])
255 for (
int i = (nMultiStepVals - 1); i > 0; i--)
260 for (
int i = (size - 1); i > nMultiStepVals; i--)
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode....
unsigned int GetNmultiStepValues() const
const Array< OneD, const unsigned int > & GetTimeLevelOffset() const
unsigned int GetNmultiStepDerivs() const
unsigned int GetNderivs() const
DoubleArray & GetDerivative(const unsigned int timeLevelOffset)
Array< OneD, NekDouble > & UpdateTimeVector()
NekDouble GetTime() const
const Array< OneD, const unsigned int > & GetTimeLevelOffset()
void SetDerivative(const unsigned int timeLevelOffset, const DoubleArray &y, const NekDouble timestep)
LUE TimeIntegrationSolutionGLM(const TimeIntegrationAlgorithmGLM *schemeAlgorithm, const DoubleArray &y, const NekDouble time, const NekDouble timestep)
Array< OneD, NekDouble > m_t
const DoubleArray & GetSolution() const
void RotateSolutionVector()
void SetSolutionVector(const int Offset, const DoubleArray &y)
unsigned int GetNvalues() const
void SetValue(const unsigned int timeLevelOffset, const DoubleArray &y, const NekDouble t)
DoubleArray & UpdateSolution()
const TripleArray & GetSolutionVector() const
TripleArray & UpdateSolutionVector()
const Array< OneD, const NekDouble > & GetTimeVector() const
const TimeIntegrationAlgorithmGLM * GetIntegrationSchemeData() const
DoubleArray & GetValue(const unsigned int timeLevelOffset)
const TimeIntegrationAlgorithmGLM * m_schemeAlgorithm
NekDouble GetValueTime(const unsigned int timeLevelOffset)
The above copyright notice and this permission notice shall be included.