Tempus
Version of the Day
Time Integration
|
Leapfrog time stepper. More...
#include <Tempus_StepperLeapfrog_decl.hpp>
Public Member Functions | |
StepperLeapfrog () | |
Default constructor. More... | |
StepperLeapfrog (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &appModel, Teuchos::RCP< Teuchos::ParameterList > pList=Teuchos::null) | |
Constructor. More... | |
Basic stepper methods | |
virtual void | setObserver (Teuchos::RCP< StepperObserver< Scalar > > obs=Teuchos::null) |
Set Observer. More... | |
virtual void | initialize () |
Initialize during construction and after changing input parameters. More... | |
virtual void | setInitialConditions (const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory) |
Set the initial conditions and make them consistent. More... | |
virtual void | takeStep (const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory) |
Take the specified timestep, dt, and return true if successful. More... | |
virtual std::string | getStepperType () const |
virtual Teuchos::RCP < Tempus::StepperState< Scalar > > | getDefaultStepperState () |
Get a default (initial) StepperState. More... | |
virtual Scalar | getOrder () const |
virtual Scalar | getOrderMin () const |
virtual Scalar | getOrderMax () const |
virtual Scalar | getInitTimeStep (const Teuchos::RCP< SolutionHistory< Scalar > > &) const |
virtual bool | isExplicit () const |
virtual bool | isImplicit () const |
virtual bool | isExplicitImplicit () const |
virtual bool | isOneStepMethod () const |
virtual bool | isMultiStepMethod () const |
virtual OrderODE | getOrderODE () const |
ParameterList methods | |
void | setParameterList (const Teuchos::RCP< Teuchos::ParameterList > &pl) |
Teuchos::RCP < Teuchos::ParameterList > | getNonconstParameterList () |
Teuchos::RCP < Teuchos::ParameterList > | unsetParameterList () |
Teuchos::RCP< const Teuchos::ParameterList > | getValidParameters () const |
Teuchos::RCP < Teuchos::ParameterList > | getDefaultParameters () const |
Overridden from Teuchos::Describable | |
virtual std::string | description () const |
virtual void | describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const |
Public Member Functions inherited from Tempus::StepperExplicit< Scalar > | |
virtual void | setModel (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &appModel) |
virtual void | setNonConstModel (const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &appModel) |
virtual Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > | getModel () |
virtual void | setSolver (std::string solverName) |
Set solver via ParameterList solver name. More... | |
virtual void | setSolver (Teuchos::RCP< Teuchos::ParameterList > solverPL=Teuchos::null) |
Set solver via solver ParameterList. More... | |
virtual void | setSolver (Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > solver) |
Set solver. More... | |
virtual Teuchos::RCP < Thyra::NonlinearSolverBase < Scalar > > | getSolver () const |
Get solver. More... | |
virtual void | setInitialGuess (Teuchos::RCP< const Thyra::VectorBase< Scalar > >) |
Pass initial guess to Newton solver (only relevant for implicit solvers) More... | |
virtual bool | getEmbedded () const |
virtual void | setUseFSAL (bool a) |
virtual bool | getUseFSAL () const |
virtual void | setICConsistency (std::string s) |
virtual std::string | getICConsistency () const |
virtual void | setICConsistencyCheck (bool c) |
virtual bool | getICConsistencyCheck () const |
virtual void | setStepperX (Teuchos::RCP< Thyra::VectorBase< Scalar > > x) |
Set x for Stepper storage. More... | |
virtual void | setStepperXDot (Teuchos::RCP< Thyra::VectorBase< Scalar > > xDot) |
Set xDot for Stepper storage. More... | |
virtual void | setStepperXDotDot (Teuchos::RCP< Thyra::VectorBase< Scalar > > xDotDot) |
Set x for Stepper storage. More... | |
virtual Teuchos::RCP < Thyra::VectorBase< Scalar > > | getStepperX (Teuchos::RCP< SolutionState< Scalar > > state) |
Get x from SolutionState or Stepper storage. More... | |
virtual Teuchos::RCP < Thyra::VectorBase< Scalar > > | getStepperXDot (Teuchos::RCP< SolutionState< Scalar > > state) |
Get xDot from SolutionState or Stepper storage. More... | |
virtual Teuchos::RCP < Thyra::VectorBase< Scalar > > | getStepperXDotDot (Teuchos::RCP< SolutionState< Scalar > > state) |
Get xDotDot from SolutionState or Stepper storage. More... | |
virtual void | evaluateExplicitODE (Teuchos::RCP< Thyra::VectorBase< Scalar > > xDot, Teuchos::RCP< const Thyra::VectorBase< Scalar > > x, const Scalar time) |
Evaluate xDot = f(x,t). More... | |
virtual void | evaluateExplicitODE (Teuchos::RCP< Thyra::VectorBase< Scalar > > xDotDot, Teuchos::RCP< const Thyra::VectorBase< Scalar > > x, Teuchos::RCP< const Thyra::VectorBase< Scalar > > xDot, const Scalar time) |
Evaluate xDotDot = f(x, xDot, t). More... | |
Public Member Functions inherited from Tempus::Stepper< Scalar > | |
virtual void | modelWarning () const |
void | getValidParametersBasic (Teuchos::RCP< Teuchos::ParameterList > pl) const |
virtual void | createSubSteppers (std::vector< Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > >) |
void | validExplicitODE (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model) const |
Validate that the model supports explicit ODE evaluation, f(x,t) [=xdot]. More... | |
void | validSecondOrderExplicitODE (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model) const |
Validate that the model supports explicit second order ODE evaluation, f(x,xdot,t) [=xdotdot]. More... | |
void | validImplicitODE_DAE (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model) const |
Validate ME supports implicit ODE/DAE evaluation, f(xdot,x,t) [= 0]. More... | |
void | validSecondOrderODE_DAE (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model) const |
Validate ME supports 2nd order implicit ODE/DAE evaluation, f(xdotdot,xdot,x,t) [= 0]. More... | |
Teuchos::RCP < Teuchos::ParameterList > | defaultSolverParameters () const |
Protected Attributes | |
Teuchos::RCP < StepperLeapfrogObserver < Scalar > > | stepperLFObserver_ |
Protected Attributes inherited from Tempus::StepperExplicit< Scalar > | |
Teuchos::RCP < Teuchos::ParameterList > | stepperPL_ |
Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > | appModel_ |
Explicit ODE ModelEvaluator. More... | |
Thyra::ModelEvaluatorBase::InArgs < Scalar > | inArgs_ |
Thyra::ModelEvaluatorBase::OutArgs < Scalar > | outArgs_ |
Teuchos::RCP< StepperObserver < Scalar > > | stepperObserver_ |
Teuchos::RCP < Thyra::VectorBase< Scalar > > | stepperX_ |
Teuchos::RCP < Thyra::VectorBase< Scalar > > | stepperXDot_ |
Teuchos::RCP < Thyra::VectorBase< Scalar > > | stepperXDotDot_ |
Leapfrog time stepper.
For the governing equation,
one can write the explicit ODE system,
where
The Leapfrog stepper can be written as
where the position and velocity are leapfrogged over each other. On startup the velocity half-step can be obtained with
and to complete the time step, the final velocity half-step is obtained with
Algorithm
Beginning with or and/or ending with or , the algorithm for Leapfrog is
The First-Step-As-Last (FSAL) principle is not used with Leapfrog because of the algorithm's prescribed order of solution update. The default is to set useFSAL=false, however useFSAL=true will also work (i.e., no-op), but issue a warning that it will have no affect.
Definition at line 76 of file Tempus_StepperLeapfrog_decl.hpp.
Tempus::StepperLeapfrog< Scalar >::StepperLeapfrog | ( | ) |
Default constructor.
Definition at line 19 of file Tempus_StepperLeapfrog_impl.hpp.
Tempus::StepperLeapfrog< Scalar >::StepperLeapfrog | ( | const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > & | appModel, |
Teuchos::RCP< Teuchos::ParameterList > | pList = Teuchos::null |
||
) |
Constructor.
Definition at line 26 of file Tempus_StepperLeapfrog_impl.hpp.
|
virtual |
Definition at line 192 of file Tempus_StepperLeapfrog_impl.hpp.
|
virtual |
Definition at line 184 of file Tempus_StepperLeapfrog_impl.hpp.
|
virtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 239 of file Tempus_StepperLeapfrog_impl.hpp.
|
virtual |
Get a default (initial) StepperState.
Provide a StepperState to the SolutionState. This Stepper does not have any special state data, so just provide the base class StepperState with the Stepper description. This can be checked to ensure that the input StepperState can be used by this Stepper.
Implements Tempus::Stepper< Scalar >.
Definition at line 175 of file Tempus_StepperLeapfrog_impl.hpp.
|
inlinevirtual |
Reimplemented from Tempus::StepperExplicit< Scalar >.
Definition at line 118 of file Tempus_StepperLeapfrog_decl.hpp.
Teuchos::RCP< Teuchos::ParameterList > Tempus::StepperLeapfrog< Scalar >::getNonconstParameterList | ( | ) |
Definition at line 254 of file Tempus_StepperLeapfrog_impl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 115 of file Tempus_StepperLeapfrog_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 117 of file Tempus_StepperLeapfrog_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 116 of file Tempus_StepperLeapfrog_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 129 of file Tempus_StepperLeapfrog_decl.hpp.
|
inlinevirtual |
Reimplemented from Tempus::StepperExplicit< Scalar >.
Definition at line 110 of file Tempus_StepperLeapfrog_decl.hpp.
Teuchos::RCP< const Teuchos::ParameterList > Tempus::StepperLeapfrog< Scalar >::getValidParameters | ( | ) | const |
Definition at line 225 of file Tempus_StepperLeapfrog_impl.hpp.
|
virtual |
Initialize during construction and after changing input parameters.
Implements Tempus::Stepper< Scalar >.
Definition at line 62 of file Tempus_StepperLeapfrog_impl.hpp.
|
inlinevirtual |
Reimplemented from Tempus::StepperExplicit< Scalar >.
Definition at line 122 of file Tempus_StepperLeapfrog_decl.hpp.
|
inlinevirtual |
Reimplemented from Tempus::StepperExplicit< Scalar >.
Definition at line 124 of file Tempus_StepperLeapfrog_decl.hpp.
|
inlinevirtual |
Reimplemented from Tempus::StepperExplicit< Scalar >.
Definition at line 123 of file Tempus_StepperLeapfrog_decl.hpp.
|
inlinevirtual |
Reimplemented from Tempus::StepperExplicit< Scalar >.
Definition at line 127 of file Tempus_StepperLeapfrog_decl.hpp.
|
inlinevirtual |
Reimplemented from Tempus::StepperExplicit< Scalar >.
Definition at line 126 of file Tempus_StepperLeapfrog_decl.hpp.
|
virtual |
Set the initial conditions and make them consistent.
Reimplemented from Tempus::StepperExplicit< Scalar >.
Definition at line 74 of file Tempus_StepperLeapfrog_impl.hpp.
|
virtual |
Set Observer.
Implements Tempus::Stepper< Scalar >.
Definition at line 42 of file Tempus_StepperLeapfrog_impl.hpp.
void Tempus::StepperLeapfrog< Scalar >::setParameterList | ( | const Teuchos::RCP< Teuchos::ParameterList > & | pl | ) |
Definition at line 202 of file Tempus_StepperLeapfrog_impl.hpp.
|
virtual |
Take the specified timestep, dt, and return true if successful.
Implements Tempus::Stepper< Scalar >.
Definition at line 99 of file Tempus_StepperLeapfrog_impl.hpp.
Teuchos::RCP< Teuchos::ParameterList > Tempus::StepperLeapfrog< Scalar >::unsetParameterList | ( | ) |
Definition at line 262 of file Tempus_StepperLeapfrog_impl.hpp.
|
protected |
Definition at line 150 of file Tempus_StepperLeapfrog_decl.hpp.