Timestep strategy for the Alpha algorithm of Hilber, Hughes and Taylor to solve second order problems in time with no first order time derivative. More...

#include <alpha.hh>

Inheritance diagram for timestepping::Alpha:
timestepping::TimeStepStrategy concepts::OutputOperator

Public Member Functions

 Alpha (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 alpha=0.)
 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

concepts::Vector< Real > A_
 
Real alpha_
 Parameters of the scheme. More...
 
Real beta_
 
concepts::Operator< Real > & D0_
 Space operator. More...
 
Real gamma_
 
timestepping::TimeVectortrhs_
 External driver function. More...
 
concepts::Vector< Real > Z_
 Store velocity Z and acceleration A. More...
 

Detailed Description

Timestep strategy for the Alpha algorithm of Hilber, Hughes and Taylor to solve second order problems in time with no first order time derivative.

\[ [ D_2 \partial_t^2 + D_0 ] y(x,t) = f(x,t) \]

The scheme has one parameter alpha. The scheme is implicit, has convergence order 2 and is unconditionally stable. The parameter alpha controls dissipation. For alpha = 0, there is no dissipation, and the scheme is equivalent to the Newmark scheme with default parameters. For -1/3 <= alpha < 0, the scheme is dissipative. The damping of higher eigenmodes is stronger.

See also
T.J.R. Hughes The Finite Element Method, Dover, Mineola, 2000
Author
Christoph Winkelmann, 2004

Definition at line 42 of file alpha.hh.

Constructor & Destructor Documentation

◆ Alpha()

timestepping::Alpha::Alpha ( 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  alpha = 0. 
)

Constructor.

Parameters
fabricSolver fabric for solving the occuring systems
D2Space opeartor D2
D0Space opeartor D0
trhsTimedependent external driver f(x,t)
Y0Initial condition y(x,0)
Z0Initial condition d/dt y(x,0)
dtTime step size
alphaParameter of the Alpha scheme

Member Function Documentation

◆ info()

virtual std::ostream& timestepping::Alpha::info ( std::ostream &  os) const
protectedvirtual

Returns information in an output stream.

Reimplemented from concepts::OutputOperator.

◆ next()

virtual void timestepping::Alpha::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

◆ A_

concepts::Vector<Real> timestepping::Alpha::A_
private

Definition at line 70 of file alpha.hh.

◆ alpha_

Real timestepping::Alpha::alpha_
private

Parameters of the scheme.

Definition at line 72 of file alpha.hh.

◆ beta_

Real timestepping::Alpha::beta_
private

Definition at line 72 of file alpha.hh.

◆ D0_

concepts::Operator<Real>& timestepping::Alpha::D0_
private

Space operator.

Definition at line 66 of file alpha.hh.

◆ dt_

Real timestepping::TimeStepStrategy::dt_
protectedinherited

Time step size.

Definition at line 77 of file strategy.hh.

◆ gamma_

Real timestepping::Alpha::gamma_
private

Definition at line 72 of file alpha.hh.

◆ liCo_

concepts::Operator<Real>* timestepping::TimeStepStrategy::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_

concepts::Vector<Real> timestepping::TimeStepStrategy::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_

concepts::Vector<Real> timestepping::TimeStepStrategy::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_

std::unique_ptr<concepts::Operator<Real> > timestepping::TimeStepStrategy::solver_
protectedinherited

Solver for the linear system.

Definition at line 59 of file strategy.hh.

◆ t_

Real timestepping::TimeStepStrategy::t_
protectedinherited

Time of the actual solution.

Definition at line 79 of file strategy.hh.

◆ trhs_

timestepping::TimeVector& timestepping::Alpha::trhs_
private

External driver function.

Definition at line 68 of file alpha.hh.

◆ Z_

concepts::Vector<Real> timestepping::Alpha::Z_
private

Store velocity Z and acceleration A.

Definition at line 70 of file alpha.hh.


The documentation for this class was generated from the following file:
Page URL: http://wiki.math.ethz.ch/bin/view/Concepts/WebHome
21 August 2020
© 2020 Eidgenössische Technische Hochschule Zürich