Tempus
Version of the Day
Time Integration
|
Forward Euler time stepper. More...
#include <Tempus_StepperForwardEuler_decl.hpp>
Public Member Functions | |
StepperForwardEuler () | |
Default constructor. More... | |
StepperForwardEuler (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, make them consistent, and set needed memory. More... | |
virtual void | takeStep (const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory) |
Take the specified timestep, dt, and return true if successful. More... | |
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 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 Scalar | getInitTimeStep (const Teuchos::RCP< SolutionHistory< Scalar > > &) const |
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 std::string | getStepperType () const |
virtual void | setInitialGuess (Teuchos::RCP< const Thyra::VectorBase< Scalar > >) |
Pass initial guess to Newton solver (only relevant for implicit solvers) More... | |
virtual bool | isExplicit () const |
virtual bool | isImplicit () const |
virtual bool | isExplicitImplicit () const |
virtual bool | isOneStepMethod () const |
virtual bool | isMultiStepMethod () const |
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 < StepperForwardEulerObserver < Scalar > > | stepperFEObserver_ |
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_ |
Forward Euler time stepper.
For the explicit ODE system,
the Forward Euler stepper can be written as
Forward Euler is an explicit time stepper (i.e., no solver used). Note that the time derivative by definition is
Algorithm The single-timestep algorithm for Forward Euler is simply,
Note that and are not at the same time level at the end of the time step (i.e., they are not sync'ed).
To have them at the same time level, we can use the First-Step-As-Last (FSAL) principle where the function evaulation from the last time step can be used as the first function evalulation of the current step. For the Forward Euler, the FSAL algorithm is
The default for Forward Euler is to use FSAL (useFSAL=true).
Definition at line 53 of file Tempus_StepperForwardEuler_decl.hpp.
Tempus::StepperForwardEuler< Scalar >::StepperForwardEuler | ( | ) |
Default constructor.
Definition at line 19 of file Tempus_StepperForwardEuler_impl.hpp.
Tempus::StepperForwardEuler< Scalar >::StepperForwardEuler | ( | const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > & | appModel, |
Teuchos::RCP< Teuchos::ParameterList > | pList = Teuchos::null |
||
) |
Constructor.
Definition at line 26 of file Tempus_StepperForwardEuler_impl.hpp.
|
virtual |
Definition at line 183 of file Tempus_StepperForwardEuler_impl.hpp.
|
virtual |
Definition at line 175 of file Tempus_StepperForwardEuler_impl.hpp.
|
virtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 231 of file Tempus_StepperForwardEuler_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 166 of file Tempus_StepperForwardEuler_impl.hpp.
Teuchos::RCP< Teuchos::ParameterList > Tempus::StepperForwardEuler< Scalar >::getNonconstParameterList | ( | ) |
Definition at line 246 of file Tempus_StepperForwardEuler_impl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 89 of file Tempus_StepperForwardEuler_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 91 of file Tempus_StepperForwardEuler_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 90 of file Tempus_StepperForwardEuler_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 93 of file Tempus_StepperForwardEuler_decl.hpp.
Teuchos::RCP< const Teuchos::ParameterList > Tempus::StepperForwardEuler< Scalar >::getValidParameters | ( | ) | const |
Definition at line 216 of file Tempus_StepperForwardEuler_impl.hpp.
|
virtual |
Initialize during construction and after changing input parameters.
Implements Tempus::Stepper< Scalar >.
Definition at line 62 of file Tempus_StepperForwardEuler_impl.hpp.
|
virtual |
Set the initial conditions, make them consistent, and set needed memory.
Reimplemented from Tempus::StepperExplicit< Scalar >.
Definition at line 74 of file Tempus_StepperForwardEuler_impl.hpp.
|
virtual |
Set Observer.
Implements Tempus::Stepper< Scalar >.
Definition at line 42 of file Tempus_StepperForwardEuler_impl.hpp.
void Tempus::StepperForwardEuler< Scalar >::setParameterList | ( | const Teuchos::RCP< Teuchos::ParameterList > & | pl | ) |
Definition at line 193 of file Tempus_StepperForwardEuler_impl.hpp.
|
virtual |
Take the specified timestep, dt, and return true if successful.
Implements Tempus::Stepper< Scalar >.
Definition at line 89 of file Tempus_StepperForwardEuler_impl.hpp.
Teuchos::RCP< Teuchos::ParameterList > Tempus::StepperForwardEuler< Scalar >::unsetParameterList | ( | ) |
Definition at line 254 of file Tempus_StepperForwardEuler_impl.hpp.
|
protected |
Definition at line 114 of file Tempus_StepperForwardEuler_decl.hpp.