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. | |
Protected Member Functions | |
| virtual std::ostream & | info (std::ostream &os) const |
| Returns information in an output stream. | |
| virtual void | next () |
| The overloaded member function next() has to calculate the new right hand side and to release the solution vector. | |
Protected Attributes | |
| Real | dt_ |
| Time step size. | |
| concepts::Operator< Real > * | liCo_ |
| Operator of the linear equation system which is solved by the friend class TimeStepping. | |
| concepts::Vector< Real > | rhs_ |
| The right hand side vector of the linear equation system which is solved by the friend class TimeStepping. | |
| concepts::Vector< Real > | sol_ |
| The solution vector of the linear equation system which is solved by the friend class TimeStepping. | |
| std::auto_ptr < concepts::Operator< Real > > | solver_ |
| Solver for the linear system. | |
| Real | t_ |
| Time of the actual solution. | |
Private Attributes | |
| Real | beta_ |
| Parameters of the scheme. | |
| concepts::Operator< Real > & | D0_ |
| concepts::Operator< Real > & | D2_ |
| Space operator. | |
| Real | gamma_ |
| std::auto_ptr < concepts::Operator< Real > > | lhs_ |
| Left hand side of the scheme. | |
| timestepping::TimeVector & | trhs_ |
| External driver function. | |
| concepts::Vector< Real > | Yn1_ |
| Store the two latest timesteps. | |
| concepts::Vector< Real > | Yn2_ |
Friends | |
| class | TimeStepping |
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.
Definition at line 37 of file newmark.hh.
| 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.
| 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 |
| virtual std::ostream& timestepping::Newmark::info | ( | std::ostream & | os | ) | const [protected, virtual] |
Returns information in an output stream.
Reimplemented from concepts::OutputOperator.
| virtual void timestepping::Newmark::next | ( | ) | [protected, virtual] |
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.
friend class TimeStepping [friend, inherited] |
Definition at line 48 of file strategy.hh.
Real timestepping::Newmark::beta_ [private] |
Parameters of the scheme.
Definition at line 68 of file newmark.hh.
concepts::Operator<Real> & timestepping::Newmark::D0_ [private] |
Definition at line 62 of file newmark.hh.
concepts::Operator<Real>& timestepping::Newmark::D2_ [private] |
Space operator.
Definition at line 62 of file newmark.hh.
Real timestepping::TimeStepStrategy::dt_ [protected, inherited] |
Time step size.
Definition at line 73 of file strategy.hh.
Real timestepping::Newmark::gamma_ [private] |
Definition at line 68 of file newmark.hh.
std::auto_ptr<concepts::Operator<Real> > timestepping::Newmark::lhs_ [private] |
Left hand side of the scheme.
Definition at line 70 of file newmark.hh.
concepts::Operator<Real>* timestepping::TimeStepStrategy::liCo_ [protected, inherited] |
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.
Definition at line 61 of file strategy.hh.
concepts::Vector<Real> timestepping::TimeStepStrategy::rhs_ [protected, inherited] |
The right hand side vector of the linear equation system which is solved by the friend class TimeStepping.
Definition at line 71 of file strategy.hh.
concepts::Vector<Real> timestepping::TimeStepStrategy::sol_ [protected, inherited] |
The solution vector of the linear equation system which is solved by the friend class TimeStepping.
Definition at line 66 of file strategy.hh.
std::auto_ptr<concepts::Operator<Real> > timestepping::TimeStepStrategy::solver_ [protected, inherited] |
Solver for the linear system.
Definition at line 55 of file strategy.hh.
Real timestepping::TimeStepStrategy::t_ [protected, inherited] |
Time of the actual solution.
Definition at line 75 of file strategy.hh.
External driver function.
Definition at line 64 of file newmark.hh.
concepts::Vector<Real> timestepping::Newmark::Yn1_ [private] |
Store the two latest timesteps.
Definition at line 66 of file newmark.hh.
concepts::Vector<Real> timestepping::Newmark::Yn2_ [private] |
Definition at line 66 of file newmark.hh.