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
57 const size_t npoints);
158 for (
size_t i = 0; i < nMultiStepVals; i++)
160 if (timeLevelOffset == offsetvec[i])
163 "Solution vector is not set at this time level");
167 ASSERTL1(
false,
"The solution vector of this scheme does not contain a "
168 "value at the requested time-level");
177 size_t nMultiStepImplicitDerivs =
182 for (
size_t i = nMultiStepVals;
183 i < nMultiStepVals + nMultiStepImplicitDerivs; i++)
185 if (timeLevelOffset == offsetvec[i])
188 "Implicit derivative solution vector is not set at "
193 ASSERTL1(
false,
"The solution vector of this scheme does not contain a "
194 "derivative at the requested time-level");
203 size_t nMultiStepImplicitDerivs =
209 for (
size_t i = nMultiStepVals + nMultiStepImplicitDerivs; i < size;
212 if (timeLevelOffset == offsetvec[i])
215 "Explicit derivative solution vector is not set at "
220 ASSERTL1(
false,
"The solution vector of this scheme does not contain a "
221 "derivative at the requested time-level");
233 for (
size_t i = 0; i < nMultiStepVals; i++)
235 if (timeLevelOffset == offsetvec[i])
240 ASSERTL1(
false,
"The solution vector of this scheme does not contain a "
241 "value at the requested time-level");
254 for (
size_t i = 0; i < nMultiStepVals; i++)
256 if (timeLevelOffset == offsetvec[i])
274 size_t nMultiStepImplicitDerivs =
279 for (
size_t i = nMultiStepVals;
280 i < nMultiStepVals + nMultiStepImplicitDerivs; i++)
282 if (timeLevelOffset == offsetvec[i])
300 size_t nMultiStepImplicitDerivs =
306 for (
size_t i = nMultiStepVals + nMultiStepImplicitDerivs; i < size;
309 if (timeLevelOffset == offsetvec[i])
324 size_t nMultiStepImpDerivs =
327 for (
size_t i = (nMultiStepVals - 1); i > 0; i--)
333 for (
size_t i = (nMultiStepVals + nMultiStepImpDerivs - 1);
334 i > nMultiStepVals; i--)
340 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
The above copyright notice and this permission notice shall be included.