92 while (
t < tf) {
Step(x,
t, dt); }
208 static MFEM_EXPORT
const real_t a[28], b[8], c[7];
220 static const real_t a[66], b[12], c[11];
262 if (RKsolver) {
delete RKsolver; }
271 static MFEM_EXPORT
const real_t a[1];
281 static MFEM_EXPORT
const real_t a[2];
291 static MFEM_EXPORT
const real_t a[3];
301 static MFEM_EXPORT
const real_t a[4];
311 static MFEM_EXPORT
const real_t a[5];
353 if (RKsolver) {
delete RKsolver; }
362 static MFEM_EXPORT
const real_t a[1];
373 static MFEM_EXPORT
const real_t a[2];
383 static MFEM_EXPORT
const real_t a[3];
393 static MFEM_EXPORT
const real_t a[4];
403 static MFEM_EXPORT
const real_t a[5];
581 while (
t < tf) {
Step(q,
p,
t, dt); }
705 while (
t < tf) {
Step(x, dxdt,
t, dt); }
783 rho_inf = (rho_inf > 1.0) ? 1.0 : rho_inf;
784 rho_inf = (rho_inf < 0.0) ? 0.0 : rho_inf;
786 alpha_m = (2.0 - rho_inf)/(1.0 + rho_inf);
850 rho_inf = (rho_inf > 1.0) ? 1.0 : rho_inf;
851 rho_inf = (rho_inf < 0.0) ? 0.0 : rho_inf;
void Init(TimeDependentOperator &f_) override
Associate a TimeDependentOperator with the ODE solver.
void SetStateVector(int i, Vector &state) override
AdamsBashforthSolver(int s_, const real_t *a_)
const Vector & GetStateVector(int i) override
int GetMaxStateSize() override
Function for getting and setting the state vectors.
void Step(Vector &x, real_t &t, real_t &dt) override
Perform a time step from time t [in] to time t [out] based on the requested step size dt [in].
int GetStateSize() override
int GetMaxStateSize() override
Function for getting and setting the state vectors.
const Vector & GetStateVector(int i) override
void Step(Vector &x, real_t &t, real_t &dt) override
Perform a time step from time t [in] to time t [out] based on the requested step size dt [in].
int GetStateSize() override
AdamsMoultonSolver(int s_, const real_t *a_)
void Init(TimeDependentOperator &f_) override
Associate a TimeDependentOperator with the ODE solver.
void SetStateVector(int i, Vector &state) override
The classical midpoint method.
AverageAccelerationSolver()
Backward Euler ODE solver. L-stable.
void Init(TimeDependentOperator &f_) override
Associate a TimeDependentOperator with the ODE solver.
void Step(Vector &x, real_t &t, real_t &dt) override
Perform a time step from time t [in] to time t [out] based on the requested step size dt [in].
CentralDifferenceSolver()
static MemoryType GetHostMemoryType()
Get the current Host MemoryType. This is the MemoryType used by most MFEM classes when allocating mem...
virtual void Step(Vector &x, real_t &t, real_t &dt)
Perform a time step from time t [in] to time t [out] based on the requested step size dt [in].
virtual void Init(TimeDependentOperator &f_)
Associate a TimeDependentOperator with the ODE solver.
virtual void Init(TimeDependentOperator &f_)
Associate a TimeDependentOperator with the ODE solver.
virtual void Step(Vector &x, real_t &t, real_t &dt)
Perform a time step from time t [in] to time t [out] based on the requested step size dt [in].
void Step(Vector &x, real_t &t, real_t &dt) override
Perform a time step from time t [in] to time t [out] based on the requested step size dt [in].
virtual ~ExplicitRKSolver()
ExplicitRKSolver(int s_, const real_t *a_, const real_t *b_, const real_t *c_)
void Init(TimeDependentOperator &f_) override
Associate a TimeDependentOperator with the ODE solver.
The classical forward Euler method.
void Step(Vector &x, real_t &t, real_t &dt) override
Perform a time step from time t [in] to time t [out] based on the requested step size dt [in].
void Init(TimeDependentOperator &f_) override
Associate a TimeDependentOperator with the ODE solver.
void Init(SecondOrderTimeDependentOperator &f_) override
Associate a TimeDependentOperator with the ODE solver.
void Step(Vector &x, Vector &dxdt, real_t &t, real_t &dt) override
Perform a time step from time t [in] to time t [out] based on the requested step size dt [in].
int GetStateSize() override
void SetStateVector(int i, Vector &state) override
int GetMaxStateSize() override
Function for getting and setting the state vectors.
void PrintProperties(std::ostream &out=mfem::out)
const Vector & GetStateVector(int i) override
GeneralizedAlpha2Solver(real_t rho_inf=1.0)
void Init(TimeDependentOperator &f_) override
Associate a TimeDependentOperator with the ODE solver.
void SetRhoInf(real_t rho_inf)
void SetStateVector(int i, Vector &state) override
void Step(Vector &x, real_t &t, real_t &dt) override
Perform a time step from time t [in] to time t [out] based on the requested step size dt [in].
GeneralizedAlphaSolver(real_t rho=1.0)
int GetMaxStateSize() override
Function for getting and setting the state vectors.
const Vector & GetStateVector(int i) override
int GetStateSize() override
void PrintProperties(std::ostream &out=mfem::out)
HHTAlphaSolver(real_t alpha=1.0)
Implicit midpoint method. A-stable, not L-stable.
void Step(Vector &x, real_t &t, real_t &dt) override
Perform a time step from time t [in] to time t [out] based on the requested step size dt [in].
void Init(TimeDependentOperator &f_) override
Associate a TimeDependentOperator with the ODE solver.
LinearAccelerationSolver()
static bool Root()
Return true if the rank in MPI_COMM_WORLD is zero.
static bool IsInitialized()
Return true if MPI has been initialized.
void Step(Vector &x, Vector &dxdt, real_t &t, real_t &dt) override
Perform a time step from time t [in] to time t [out] based on the requested step size dt [in].
void PrintProperties(std::ostream &out=mfem::out)
NewmarkSolver(real_t beta_=0.25, real_t gamma_=0.5)
void Init(SecondOrderTimeDependentOperator &f_) override
Associate a TimeDependentOperator with the ODE solver.
Abstract class for solving systems of ODEs: dx/dt = f(x,t)
virtual const Vector & GetStateVector(int i)
TimeDependentOperator * f
Pointer to the associated TimeDependentOperator.
virtual void Init(TimeDependentOperator &f_)
Associate a TimeDependentOperator with the ODE solver.
virtual void GetStateVector(int i, Vector &state)
virtual void Step(Vector &x, real_t &t, real_t &dt)=0
Perform a time step from time t [in] to time t [out] based on the requested step size dt [in].
virtual void SetStateVector(int i, Vector &state)
virtual int GetMaxStateSize()
Function for getting and setting the state vectors.
virtual void Run(Vector &x, real_t &t, real_t &dt, real_t tf)
Perform time integration from time t [in] to time tf [in].
virtual int GetStateSize()
void Init(TimeDependentOperator &f_) override
Associate a TimeDependentOperator with the ODE solver.
void Step(Vector &x, real_t &t, real_t &dt) override
Perform a time step from time t [in] to time t [out] based on the requested step size dt [in].
RK2Solver(const real_t a_=2./3.)
Third-order, strong stability preserving (SSP) Runge-Kutta method.
void Init(TimeDependentOperator &f_) override
Associate a TimeDependentOperator with the ODE solver.
void Step(Vector &x, real_t &t, real_t &dt) override
Perform a time step from time t [in] to time t [out] based on the requested step size dt [in].
The classical explicit forth-order Runge-Kutta method, RK4.
void Init(TimeDependentOperator &f_) override
Associate a TimeDependentOperator with the ODE solver.
void Step(Vector &x, real_t &t, real_t &dt) override
Perform a time step from time t [in] to time t [out] based on the requested step size dt [in].
SDIRK23Solver(int gamma_opt=1)
void Step(Vector &x, real_t &t, real_t &dt) override
Perform a time step from time t [in] to time t [out] based on the requested step size dt [in].
void Init(TimeDependentOperator &f_) override
Associate a TimeDependentOperator with the ODE solver.
void Step(Vector &x, real_t &t, real_t &dt) override
Perform a time step from time t [in] to time t [out] based on the requested step size dt [in].
void Init(TimeDependentOperator &f_) override
Associate a TimeDependentOperator with the ODE solver.
void Step(Vector &x, real_t &t, real_t &dt) override
Perform a time step from time t [in] to time t [out] based on the requested step size dt [in].
void Init(TimeDependentOperator &f_) override
Associate a TimeDependentOperator with the ODE solver.
First Order Symplectic Integration Algorithm.
void Step(Vector &q, Vector &p, real_t &t, real_t &dt) override
Second Order Symplectic Integration Algorithm.
void Step(Vector &q, Vector &p, real_t &t, real_t &dt) override
TimeDependentOperator * F_
virtual void Init(Operator &P, TimeDependentOperator &F)
virtual void Step(Vector &q, Vector &p, real_t &t, real_t &dt)=0
virtual void Run(Vector &q, Vector &p, real_t &t, real_t &dt, real_t tf)
Variable order Symplectic Integration Algorithm (orders 1-4)
void Step(Vector &q, Vector &p, real_t &t, real_t &dt) override
Abstract class for solving systems of ODEs: d2x/dt2 = f(x,dx/dt,t)
SecondOrderTimeDependentOperator * f
Pointer to the associated TimeDependentOperator.
virtual ~SecondOrderODESolver()
virtual const Vector & GetStateVector(int i)
virtual int GetMaxStateSize()
Function for getting and setting the state vectors.
virtual void GetStateVector(int i, Vector &state)
virtual void SetStateVector(int i, Vector &state)
virtual int GetStateSize()
virtual void Run(Vector &x, Vector &dxdt, real_t &t, real_t &dt, real_t tf)
Perform time integration from time t [in] to time tf [in].
virtual void Init(SecondOrderTimeDependentOperator &f)
Associate a TimeDependentOperator with the ODE solver.
virtual void Step(Vector &x, Vector &dxdt, real_t &t, real_t &dt)=0
Perform a time step from time t [in] to time t [out] based on the requested step size dt [in].
Base abstract class for second order time dependent operators.
Base abstract class for first order time dependent operators.
virtual void Step(Vector &x, real_t &t, real_t &dt)
Perform a time step from time t [in] to time t [out] based on the requested step size dt [in].
virtual void Init(TimeDependentOperator &f_)
Associate a TimeDependentOperator with the ODE solver.
WBZAlphaSolver(real_t rho_inf=1.0)
void mfem_error(const char *msg)
OutStream out(std::cout)
Global stream used by the library for standard output. Initially it uses the same std::streambuf as s...
MemoryType
Memory types supported by MFEM.
@ HOST
Host memory; using new[] and delete[].
real_t p(const Vector &x, real_t t)