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.