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
55 const size_t npoints);
156 for (
size_t i = 0; i < nMultiStepVals; i++)
158 if (timeLevelOffset == offsetvec[i])
161 "Solution vector is not set at this time level");
165 ASSERTL1(
false,
"The solution vector of this scheme does not contain a "
166 "value at the requested time-level");
175 size_t nMultiStepImplicitDerivs =
180 for (
size_t i = nMultiStepVals;
181 i < nMultiStepVals + nMultiStepImplicitDerivs; i++)
183 if (timeLevelOffset == offsetvec[i])
186 "Implicit derivative solution vector is not set at "
191 ASSERTL1(
false,
"The solution vector of this scheme does not contain a "
192 "derivative at the requested time-level");
201 size_t nMultiStepImplicitDerivs =
207 for (
size_t i = nMultiStepVals + nMultiStepImplicitDerivs; i < size;
210 if (timeLevelOffset == offsetvec[i])
213 "Explicit derivative solution vector is not set at "
218 ASSERTL1(
false,
"The solution vector of this scheme does not contain a "
219 "derivative at the requested time-level");
231 for (
size_t i = 0; i < nMultiStepVals; i++)
233 if (timeLevelOffset == offsetvec[i])
238 ASSERTL1(
false,
"The solution vector of this scheme does not contain a "
239 "value at the requested time-level");
252 for (
size_t i = 0; i < nMultiStepVals; i++)
254 if (timeLevelOffset == offsetvec[i])
272 size_t nMultiStepImplicitDerivs =
277 for (
size_t i = nMultiStepVals;
278 i < nMultiStepVals + nMultiStepImplicitDerivs; i++)
280 if (timeLevelOffset == offsetvec[i])
298 size_t nMultiStepImplicitDerivs =
304 for (
size_t i = nMultiStepVals + nMultiStepImplicitDerivs; i < size;
307 if (timeLevelOffset == offsetvec[i])
322 size_t nMultiStepImpDerivs =
325 for (
size_t i = (nMultiStepVals - 1); i > 0; i--)
331 for (
size_t i = (nMultiStepVals + nMultiStepImpDerivs - 1);
332 i > nMultiStepVals; i--)
338 for (
size_t i = (size - 1); i > nMultiStepVals + nMultiStepImpDerivs;
#define ASSERTL0(condition, msg)
#define ASSERTL1(condition, msg)
Assert Level 1 – Debugging which is used whether in FULLDEBUG or DEBUG compilation mode....
size_t GetNmultiStepExplicitDerivs() const
size_t GetNmultiStepImplicitDerivs() const
size_t GetNmultiStepValues() const
const Array< OneD, const size_t > & GetTimeLevelOffset() const
const Array< OneD, const NekDouble > & GetTimeVector() const
size_t GetSecondDim() const
const TimeIntegrationAlgorithmGLM * GetIntegrationSchemeData() const
NekDouble GetTime() const
void SetExplicitDerivative(const size_t timeLevelOffset, const DoubleArray &y, const NekDouble timestep)
const TripleArray & GetSolutionVector() const
LUE TimeIntegrationSolutionGLM(const TimeIntegrationAlgorithmGLM *schemeAlgorithm, const DoubleArray &y, const NekDouble time, const NekDouble timestep)
Array< OneD, NekDouble > m_t
void SetSolutionVector(const size_t Offset, const DoubleArray &y)
void RotateSolutionVector()
void SetImplicitDerivative(const size_t timeLevelOffset, const DoubleArray &y, const NekDouble timestep)
const Array< OneD, const size_t > & GetTimeLevelOffset()
void SetValue(const size_t timeLevelOffset, const DoubleArray &y, const NekDouble t)
Array< OneD, NekDouble > & UpdateTimeVector()
NekDouble GetValueTime(const size_t timeLevelOffset)
DoubleArray & UpdateSolution()
size_t GetNexplicitderivs() const
DoubleArray & GetExplicitDerivative(const size_t timeLevelOffset)
const TimeIntegrationAlgorithmGLM * m_schemeAlgorithm
size_t GetNimplicitderivs() const
size_t GetNvalues() const
DoubleArray & GetValue(const size_t timeLevelOffset)
DoubleArray & GetImplicitDerivative(const size_t timeLevelOffset)
Array< OneD, bool > m_setflag
const DoubleArray & GetSolution() const
TripleArray & UpdateSolutionVector()
size_t GetFirstDim() const