42 {2.5, -4.0, 1.5, 0.0},
43 {13. / 3., -9.5, 7.0, -11.0 / 6.0}};
57 :
Extrapolate(pSession, pFields, pPressure, pVel, advObject)
103 if (IntegrationScheme->GetName() ==
"IMEX" ||
104 IntegrationScheme->GetName() ==
"IMEXGear")
111 "Integration method not suitable: "
112 "Options include IMEXGear or IMEXOrder{1,2,3,4}");
123 boost::ignore_unused(inarray, Aii_DT, kinvis);
131 boost::ignore_unused(nstep, time);
139 boost::ignore_unused(nstep);
161 int nlevels = array.size();
162 int nPts = array[0].size();
175 accelerationTerm, 1);
177 for (
int i = 0; i < acc_order; i++)
180 array[i + 1], 1, accelerationTerm, 1,
181 accelerationTerm, 1);
184 array[nlevels - 1] = accelerationTerm;
#define NEKERROR(type, msg)
Assert Level 0 – Fundamental assert which is used whether in FULLDEBUG, DEBUG or OPT compilation mode...
tKey RegisterCreatorFunction(tKey idKey, CreatorFunction classCreator, std::string pDesc="")
Register a class with the factory.
An abstract base class encapsulating the concept of advection of a vector field.
static std::string className
Name of class.
virtual void v_SubSteppingTimeIntegration(const LibUtilities::TimeIntegrationSchemeSharedPtr &IntegrationScheme) override
virtual void v_EvaluatePressureBCs(const Array< OneD, const Array< OneD, NekDouble >> &fields, const Array< OneD, const Array< OneD, NekDouble >> &N, NekDouble kinvis) override
static ExtrapolateSharedPtr create(const LibUtilities::SessionReaderSharedPtr &pSession, Array< OneD, MultiRegions::ExpListSharedPtr > &pFields, MultiRegions::ExpListSharedPtr &pPressure, const Array< OneD, int > &pVel, const SolverUtils::AdvectionSharedPtr &advObject)
Creates an instance of this class.
virtual void v_AccelerationBDF(Array< OneD, Array< OneD, NekDouble >> &array) override
static NekDouble DuDt_Coeffs[3][4]
virtual void v_SubStepAdvance(int nstep, NekDouble time) override
virtual void v_SubStepSaveFields(int nstep) override
virtual ~StandardExtrapolate()
StandardExtrapolate(const LibUtilities::SessionReaderSharedPtr pSession, Array< OneD, MultiRegions::ExpListSharedPtr > pFields, MultiRegions::ExpListSharedPtr pPressure, const Array< OneD, int > pVel, const SolverUtils::AdvectionSharedPtr advObject)
virtual void v_SubStepSetPressureBCs(const Array< OneD, const Array< OneD, NekDouble >> &inarray, NekDouble Aii_DT, NekDouble kinvis) override
virtual void v_MountHOPBCs(int HBCdata, NekDouble kinvis, Array< OneD, NekDouble > &Q, Array< OneD, const NekDouble > &Advection) override
std::shared_ptr< SessionReader > SessionReaderSharedPtr
std::shared_ptr< TimeIntegrationScheme > TimeIntegrationSchemeSharedPtr
std::shared_ptr< ExpList > ExpListSharedPtr
Shared pointer to an ExpList object.
std::shared_ptr< Advection > AdvectionSharedPtr
A shared pointer to an Advection object.
The above copyright notice and this permission notice shall be included.
ExtrapolateFactory & GetExtrapolateFactory()
void Svtvp(int n, const T alpha, const T *x, const int incx, const T *y, const int incy, T *z, const int incz)
svtvp (scalar times vector plus vector): z = alpha*x + y
void Smul(int n, const T alpha, const T *x, const int incx, T *y, const int incy)
Scalar multiply y = alpha*x.