timestepping::Newmark Class Reference
Timestep strategy for the Newmark algorithm to solve second order problems in time with no first order time derivative. More...
#include <newmark.hh>
Public Member Functions | |
Newmark (concepts::SolverFabric< Real > &fabric, concepts::Operator< Real > &D2, concepts::Operator< Real > &D0, timestepping::TimeVector &trhs, const concepts::Vector< Real > &Y0, const concepts::Vector< Real > &Z0, Real dt, Real beta=0.25, Real gamma=0.5) | |
Constructor. More... | |
Protected Member Functions | |
virtual std::ostream & | info (std::ostream &os) const |
Returns information in an output stream. More... | |
virtual void | next () |
The overloaded member function next() has to calculate the new right hand side and to release the solution vector. More... | |
Protected Attributes | |
Real | dt_ |
Time step size. More... | |
concepts::Operator< Real > * | liCo_ |
Operator of the linear equation system which is solved by the friend class TimeStepping. More... | |
concepts::Vector< Real > | rhs_ |
The right hand side vector of the linear equation system which is solved by the friend class TimeStepping. More... | |
concepts::Vector< Real > | sol_ |
The solution vector of the linear equation system which is solved by the friend class TimeStepping. More... | |
std::unique_ptr< concepts::Operator< Real > > | solver_ |
Solver for the linear system. More... | |
Real | t_ |
Time of the actual solution. More... | |
Private Attributes | |
Real | beta_ |
Parameters of the scheme. More... | |
concepts::Operator< Real > & | D0_ |
concepts::Operator< Real > & | D2_ |
Space operator. More... | |
Real | gamma_ |
std::unique_ptr< concepts::Operator< Real > > | lhs_ |
Left hand side of the scheme. More... | |
timestepping::TimeVector & | trhs_ |
External driver function. More... | |
concepts::Vector< Real > | Yn1_ |
Store the two latest timesteps. More... | |
concepts::Vector< Real > | Yn2_ |
Detailed Description
Timestep strategy for the Newmark algorithm to solve second order problems in time with no first order time derivative.
The scheme has two parameters beta
and gamma
. The scheme is implicit as soon as beta!=0
and it has convergence order 2 as soon as gamma=1/2
. The algorithm is absolutely stable with the predefined parameters.
- See also
- P.A. Raviart and J.M. Thomas Introduction a l'Analyse Numerique des Equations aux Derivees Partielles, Masson, Paris, 1983.
Definition at line 40 of file newmark.hh.
Constructor & Destructor Documentation
◆ Newmark()
timestepping::Newmark::Newmark | ( | concepts::SolverFabric< Real > & | fabric, |
concepts::Operator< Real > & | D2, | ||
concepts::Operator< Real > & | D0, | ||
timestepping::TimeVector & | trhs, | ||
const concepts::Vector< Real > & | Y0, | ||
const concepts::Vector< Real > & | Z0, | ||
Real | dt, | ||
Real | beta = 0.25 , |
||
Real | gamma = 0.5 |
||
) |
Constructor.
- Parameters
-
fabric Solver fabric for solving the occuring systems D2 Space opeartor D2 D0 Space opeartor D0 trhs Timedependent external driver f(x,t) Y0 Initial condition y(x,0) Z0 Initial condition d/dt y(x,0) dt Time step size beta,gamma Parameters of the Newmark scheme
Member Function Documentation
◆ info()
|
protectedvirtual |
Returns information in an output stream.
Reimplemented from concepts::OutputOperator.
◆ next()
|
protectedvirtual |
The overloaded member function next() has to calculate the new right hand side and to release the solution vector.
Then the Timestepping solver can set the new solution.
Implements timestepping::TimeStepStrategy.
Member Data Documentation
◆ beta_
|
private |
Parameters of the scheme.
Definition at line 71 of file newmark.hh.
◆ D0_
|
private |
Definition at line 65 of file newmark.hh.
◆ D2_
|
private |
Space operator.
Definition at line 65 of file newmark.hh.
◆ dt_
|
protectedinherited |
Time step size.
Definition at line 77 of file strategy.hh.
◆ gamma_
|
private |
Definition at line 71 of file newmark.hh.
◆ lhs_
|
private |
Left hand side of the scheme.
Definition at line 73 of file newmark.hh.
◆ liCo_
|
protectedinherited |
Operator of the linear equation system which is solved by the friend class TimeStepping.
It can be stored as a linear combination of two operators. The exact form depends on the specific scheme.
- See also
- TimeStepping
Definition at line 65 of file strategy.hh.
◆ rhs_
|
protectedinherited |
The right hand side vector of the linear equation system which is solved by the friend class TimeStepping.
- See also
- TimeStepping
Definition at line 75 of file strategy.hh.
◆ sol_
|
protectedinherited |
The solution vector of the linear equation system which is solved by the friend class TimeStepping.
- See also
- TimeStepping
Definition at line 70 of file strategy.hh.
◆ solver_
|
protectedinherited |
Solver for the linear system.
Definition at line 59 of file strategy.hh.
◆ t_
|
protectedinherited |
Time of the actual solution.
Definition at line 79 of file strategy.hh.
◆ trhs_
|
private |
External driver function.
Definition at line 67 of file newmark.hh.
◆ Yn1_
|
private |
Store the two latest timesteps.
Definition at line 69 of file newmark.hh.
◆ Yn2_
|
private |
Definition at line 69 of file newmark.hh.
The documentation for this class was generated from the following file:
- timestepping/newmark.hh