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
64 const unsigned int nvar,
const unsigned int npoints);
154 for (
int i = 0; i < nMultiStepVals; i++)
156 if (timeLevelOffset == offsetvec[i])
161 ASSERTL1(
false,
"The solution vector of this scheme does not contain a "
162 "value at the requested time-level");
175 for (
int i = nMultiStepVals; i < size; i++)
177 if (timeLevelOffset == offsetvec[i])
182 ASSERTL1(
false,
"The solution vector of this scheme does not contain a "
183 "derivative at the requested time-level");
195 for (
int i = 0; i < nMultiStepVals; i++)
197 if (timeLevelOffset == offsetvec[i])
202 ASSERTL1(
false,
"The solution vector of this scheme does not contain a "
203 "value at the requested time-level");
210 inline void SetValue(
const unsigned int timeLevelOffset,
217 for (
int i = 0; i < nMultiStepVals; i++)
219 if (timeLevelOffset == offsetvec[i])
239 for (
int i = nMultiStepVals; i < size; i++)
241 if (timeLevelOffset == offsetvec[i])
256 for (
int i = (nMultiStepVals - 1); i > 0; i--)
261 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.