MFEM  v4.6.0
Finite element discretization library
Public Member Functions | Protected Attributes | List of all members
mfem::GeneralizedAlpha2Solver Class Reference

#include <ode.hpp>

Inheritance diagram for mfem::GeneralizedAlpha2Solver:
[legend]
Collaboration diagram for mfem::GeneralizedAlpha2Solver:
[legend]

Public Member Functions

 GeneralizedAlpha2Solver (double rho_inf=1.0)
 
void PrintProperties (std::ostream &out=mfem::out)
 
void Init (SecondOrderTimeDependentOperator &f_) override
 Associate a TimeDependentOperator with the ODE solver. More...
 
void Step (Vector &x, Vector &dxdt, double &t, double &dt) override
 Perform a time step from time t [in] to time t [out] based on the requested step size dt [in]. More...
 
int GetMaxStateSize () override
 Function for getting and setting the state vectors. More...
 
int GetStateSize () override
 
const VectorGetStateVector (int i) override
 
void GetStateVector (int i, Vector &state) override
 
void SetStateVector (int i, Vector &state) override
 
- Public Member Functions inherited from mfem::SecondOrderODESolver
 SecondOrderODESolver ()
 
virtual void Run (Vector &x, Vector &dxdt, double &t, double &dt, double tf)
 Perform time integration from time t [in] to time tf [in]. More...
 
virtual ~SecondOrderODESolver ()
 

Protected Attributes

Vector xa
 
Vector va
 
Vector aa
 
Vector d2xdt2
 
double alpha_f
 
double alpha_m
 
double beta
 
double gamma
 
int nstate
 
- Protected Attributes inherited from mfem::SecondOrderODESolver
SecondOrderTimeDependentOperatorf
 Pointer to the associated TimeDependentOperator. More...
 
MemoryType mem_type
 

Detailed Description

Generalized-alpha ODE solver A Time Integration Algorithm for Structural Dynamics With Improved Numerical Dissipation: The Generalized-α Method J.Chung and G.M. Hulbert, J. Appl. Mech 60(2), 371-375, 1993 https://doi.org/10.1115/1.2900803 rho_inf in [0,1]

Definition at line 773 of file ode.hpp.

Constructor & Destructor Documentation

◆ GeneralizedAlpha2Solver()

mfem::GeneralizedAlpha2Solver::GeneralizedAlpha2Solver ( double  rho_inf = 1.0)
inline

Definition at line 781 of file ode.hpp.

Member Function Documentation

◆ GetMaxStateSize()

int mfem::GeneralizedAlpha2Solver::GetMaxStateSize ( )
inlineoverridevirtual

Function for getting and setting the state vectors.

Reimplemented from mfem::SecondOrderODESolver.

Definition at line 798 of file ode.hpp.

◆ GetStateSize()

int mfem::GeneralizedAlpha2Solver::GetStateSize ( )
inlineoverridevirtual

Reimplemented from mfem::SecondOrderODESolver.

Definition at line 799 of file ode.hpp.

◆ GetStateVector() [1/2]

const Vector & mfem::GeneralizedAlpha2Solver::GetStateVector ( int  i)
overridevirtual

Reimplemented from mfem::SecondOrderODESolver.

Definition at line 1101 of file ode.cpp.

◆ GetStateVector() [2/2]

void mfem::GeneralizedAlpha2Solver::GetStateVector ( int  i,
Vector state 
)
overridevirtual

Reimplemented from mfem::SecondOrderODESolver.

Definition at line 1110 of file ode.cpp.

◆ Init()

void mfem::GeneralizedAlpha2Solver::Init ( SecondOrderTimeDependentOperator f)
overridevirtual

Associate a TimeDependentOperator with the ODE solver.

This method has to be called:

Reimplemented from mfem::SecondOrderODESolver.

Definition at line 1090 of file ode.cpp.

◆ PrintProperties()

void mfem::GeneralizedAlpha2Solver::PrintProperties ( std::ostream &  out = mfem::out)

Definition at line 1127 of file ode.cpp.

◆ SetStateVector()

void mfem::GeneralizedAlpha2Solver::SetStateVector ( int  i,
Vector state 
)
overridevirtual

Reimplemented from mfem::SecondOrderODESolver.

Definition at line 1118 of file ode.cpp.

◆ Step()

void mfem::GeneralizedAlpha2Solver::Step ( Vector x,
Vector dxdt,
double &  t,
double &  dt 
)
overridevirtual

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

Parameters
[in,out]xApproximate solution.
[in,out]dxdtApproximate rate.
[in,out]tTime associated with the approximate solution x and rate @ dxdt
[in,out]dtTime 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 re-initialized by calling Init() between the two Step() calls.

Implements mfem::SecondOrderODESolver.

Definition at line 1156 of file ode.cpp.

Member Data Documentation

◆ aa

Vector mfem::GeneralizedAlpha2Solver::aa
protected

Definition at line 776 of file ode.hpp.

◆ alpha_f

double mfem::GeneralizedAlpha2Solver::alpha_f
protected

Definition at line 777 of file ode.hpp.

◆ alpha_m

double mfem::GeneralizedAlpha2Solver::alpha_m
protected

Definition at line 777 of file ode.hpp.

◆ beta

double mfem::GeneralizedAlpha2Solver::beta
protected

Definition at line 777 of file ode.hpp.

◆ d2xdt2

Vector mfem::GeneralizedAlpha2Solver::d2xdt2
protected

Definition at line 776 of file ode.hpp.

◆ gamma

double mfem::GeneralizedAlpha2Solver::gamma
protected

Definition at line 777 of file ode.hpp.

◆ nstate

int mfem::GeneralizedAlpha2Solver::nstate
protected

Definition at line 778 of file ode.hpp.

◆ va

Vector mfem::GeneralizedAlpha2Solver::va
protected

Definition at line 776 of file ode.hpp.

◆ xa

Vector mfem::GeneralizedAlpha2Solver::xa
protected

Definition at line 776 of file ode.hpp.


The documentation for this class was generated from the following files: