Abstract class for solving systems of ODEs: d2x/dt2 = f(x,dx/dt,t)
More...
#include <ode.hpp>
Abstract class for solving systems of ODEs: d2x/dt2 = f(x,dx/dt,t)
Definition at line 607 of file ode.hpp.
◆ SecondOrderODESolver()
mfem::SecondOrderODESolver::SecondOrderODESolver 
( 
 ) 


inline 
◆ ~SecondOrderODESolver()
virtual mfem::SecondOrderODESolver::~SecondOrderODESolver 
( 
 ) 


inlinevirtual 
◆ GetMaxStateSize()
virtual int mfem::SecondOrderODESolver::GetMaxStateSize 
( 
 ) 


inlinevirtual 
◆ GetStateSize()
virtual int mfem::SecondOrderODESolver::GetStateSize 
( 
 ) 


inlinevirtual 
◆ GetStateVector() [1/2]
virtual const Vector& mfem::SecondOrderODESolver::GetStateVector 
( 
int 
i  ) 


inlinevirtual 
◆ GetStateVector() [2/2]
virtual void mfem::SecondOrderODESolver::GetStateVector 
( 
int 
i, 


Vector & 
state 

) 
 

inlinevirtual 
◆ Init()
◆ Run()
virtual void mfem::SecondOrderODESolver::Run 
( 
Vector & 
x, 


Vector & 
dxdt, 


double & 
t, 


double & 
dt, 


double 
tf 

) 
 

inlinevirtual 
Perform time integration from time t [in] to time tf [in].
 Parameters

[in,out]  x  Approximate solution. 
[in,out]  dxdt  Approximate rate. 
[in,out]  t  Time associated with the approximate solution x. 
[in,out]  dt  Time step size. 
[in]  tf  Requested final time. 
The default implementation makes consecutive calls to Step() until reaching tf. The following rules describe the common behavior of the method:
 The input x [in] is the approximate solution for the input time t [in].
 The input dxdt [in] is the approximate rate for the input time t [in].
 The input dt [in] is the initial time step size.
 The output dt [out] is the last time step taken by the method which may be smaller or larger than the input dt [in] value, e.g. because of time step control.
 The output value of t [out] is not smaller than tf [in].
Definition at line 683 of file ode.hpp.
◆ SetStateVector()
virtual void mfem::SecondOrderODESolver::SetStateVector 
( 
int 
i, 


Vector & 
state 

) 
 

inlinevirtual 
◆ Step()
virtual void mfem::SecondOrderODESolver::Step 
( 
Vector & 
x, 


Vector & 
dxdt, 


double & 
t, 


double & 
dt 

) 
 

pure virtual 
Perform a time step from time t [in] to time t [out] based on the requested step size dt [in].
 Parameters

[in,out]  x  Approximate solution. 
[in,out]  dxdt  Approximate rate. 
[in,out]  t  Time associated with the approximate solution x and rate @ dxdt 
[in,out]  dt  Time step size. 
The following rules describe the common behavior of the method:
 The input x [in] is the approximate solution for the input time t [in].
 The input dxdt [in] is the approximate rate for the input time t [in].
 The input dt [in] is the desired time step size, defining the desired target time: t [target] = t [in] + dt [in].
 The output x [out] is the approximate solution for the output time t [out].
 The output dxdt [out] is the approximate rate for the output time t [out].
 The output dt [out] is the last time step taken by the method which may be smaller or larger than the input dt [in] value, e.g. because of time step control.
 The method may perform more than one time step internally; in this case dt [out] is the last internal time step size.
 The output value of t [out] may be smaller or larger than t [target], however, it is not smaller than t [in] + dt [out], if at least one internal time step was performed.
 The value x [out] may be obtained by interpolation using internally stored data.
 In some cases, the contents of x [in] may not be used, e.g. when x [out] from a previous Step() call was obtained by interpolation.
 In consecutive calls to this method, the output t [out] of one Step() call has to be the same as the input t [in] to the next Step() call.
 If the previous rule has to be broken, e.g. to restart a time stepping sequence, then the ODE solver must be reinitialized by calling Init() between the two Step() calls.
Implemented in mfem::GeneralizedAlpha2Solver, and mfem::NewmarkSolver.
◆ mem_type
The documentation for this class was generated from the following files: