version 3.10.0
Loading...
Searching...
No Matches
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.
 
void update (const Scalar dt, const Solution &x)
 Update with new position x.
 
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
 
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
 
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
 
Scalar position (const std::size_t index) const
 current position
 
Scalar velocity (const std::size_t index) const
 current velocity
 
Scalar acceleration (const std::size_t index) const
 current acceleration
 

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: