version 3.10-dev
Dumux::Experimental::NewmarkBeta< Scalar, Solution > Class Template Reference

Newmark-beta time integration scheme. More...

#include <dumux/experimental/timestepping/newmarkbeta.hh>

Description

template<class Scalar, class Solution>
class Dumux::Experimental::NewmarkBeta< Scalar, Solution >
Template Parameters
ScalarThe scalar type used for the solution
SolutionThe solution type used for the variables
Note
Newmark (1959) "A method of computation for structural dynamics" Journal of the Engineering Mechanics Division, https://doi.org/10.1061/JMCEA3.0000098
This is typically used for PDEs of the form M*a + C*v + K*x = f with M the mass matrix, C the damping matrix, K the stiffness matrix, x the displacement, v the velocity and a the acceleration. An example is dynamic mechanics.

Public Member Functions

 NewmarkBeta (const Scalar beta, const Scalar gamma)
 
 NewmarkBeta ()
 
void initialize (const Solution &x)
 
void initialize (const Solution &x, const Solution &v, const Solution &a)
 Initialize the time integration scheme with the current solution. More...
 
void update (const Scalar dt, const Solution &x)
 Update with new position x. More...
 
Block acceleration (const std::size_t index, const Scalar dt, const Block &x) const
 new a in terms of the old x, v, a, the new x and the time step size More...
 
Block velocity (const std::size_t index, const Scalar dt, const Block &x, const Block &a) const
 new v in terms of the old v, a, the new x, a and the time step size More...
 
Block velocity (const std::size_t index, const Scalar dt, const Block &x) const
 new v in terms of the old v, a, the new x and the time step size More...
 
Scalar position (const std::size_t index) const
 current position More...
 
Scalar velocity (const std::size_t index) const
 current velocity More...
 
Scalar acceleration (const std::size_t index) const
 current acceleration More...
 

Constructor & Destructor Documentation

◆ NewmarkBeta() [1/2]

template<class Scalar , class Solution >
Dumux::Experimental::NewmarkBeta< Scalar, Solution >::NewmarkBeta ( const Scalar  beta,
const Scalar  gamma 
)
inline

Construct the Newmark-beta time integration scheme with the given β and γ parameters

◆ NewmarkBeta() [2/2]

template<class Scalar , class Solution >
Dumux::Experimental::NewmarkBeta< Scalar, Solution >::NewmarkBeta ( )
inline

Construct the Newmark-beta time integration scheme where parameters are read from the parameter file

Member Function Documentation

◆ acceleration() [1/2]

template<class Scalar , class Solution >
Scalar Dumux::Experimental::NewmarkBeta< Scalar, Solution >::acceleration ( const std::size_t  index) const
inline

◆ acceleration() [2/2]

template<class Scalar , class Solution >
Block Dumux::Experimental::NewmarkBeta< Scalar, Solution >::acceleration ( const std::size_t  index,
const Scalar  dt,
const Block &  x 
) const
inline

◆ initialize() [1/2]

template<class Scalar , class Solution >
void Dumux::Experimental::NewmarkBeta< Scalar, Solution >::initialize ( const Solution &  x)
inline

Initialize the time integration scheme with the current solution while setting the velocity and acceleration to zero

◆ initialize() [2/2]

template<class Scalar , class Solution >
void Dumux::Experimental::NewmarkBeta< Scalar, Solution >::initialize ( const Solution &  x,
const Solution &  v,
const Solution &  a 
)
inline

◆ position()

template<class Scalar , class Solution >
Scalar Dumux::Experimental::NewmarkBeta< Scalar, Solution >::position ( const std::size_t  index) const
inline

◆ update()

template<class Scalar , class Solution >
void Dumux::Experimental::NewmarkBeta< Scalar, Solution >::update ( const Scalar  dt,
const Solution &  x 
)
inline

◆ velocity() [1/3]

template<class Scalar , class Solution >
Scalar Dumux::Experimental::NewmarkBeta< Scalar, Solution >::velocity ( const std::size_t  index) const
inline

◆ velocity() [2/3]

template<class Scalar , class Solution >
Block Dumux::Experimental::NewmarkBeta< Scalar, Solution >::velocity ( const std::size_t  index,
const Scalar  dt,
const Block &  x 
) const
inline

◆ velocity() [3/3]

template<class Scalar , class Solution >
Block Dumux::Experimental::NewmarkBeta< Scalar, Solution >::velocity ( const std::size_t  index,
const Scalar  dt,
const Block &  x,
const Block &  a 
) const
inline

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