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, const Teuchos::RCP< StepperObserver< Scalar > > &obs, bool useFSAL, std::string ICConsistency, bool ICConsistencyCheck) | |
Constructor. More... | |
Teuchos::RCP< const Teuchos::ParameterList > | getValidParameters () const |
Basic stepper methods | |
virtual void | setObserver (Teuchos::RCP< StepperObserver< Scalar > > obs=Teuchos::null) |
Set Observer. More... | |
virtual Teuchos::RCP < StepperObserver< Scalar > > | getObserver () const |
Get 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 |
Overridden from Teuchos::Describable | |
virtual void | describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const |
![]() | |
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 (Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > solver=Teuchos::null) |
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 | isExplicit () const |
virtual bool | isImplicit () const |
virtual bool | isExplicitImplicit () const |
virtual bool | isOneStepMethod () const |
virtual bool | isMultiStepMethod () 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, const Teuchos::RCP< ExplicitODEParameters< Scalar > > &p) |
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, const Teuchos::RCP< ExplicitODEParameters< Scalar > > &p) |
Evaluate xDotDot = f(x, xDot, t). More... | |
![]() | |
void | setStepperType (std::string s) |
std::string | getStepperType () const |
void | setUseFSAL (bool a) |
bool | getUseFSAL () const |
virtual bool | getUseFSALDefault () const |
void | setICConsistency (std::string s) |
std::string | getICConsistency () const |
virtual std::string | getICConsistencyDefault () const |
void | setICConsistencyCheck (bool c) |
bool | getICConsistencyCheck () const |
virtual bool | getICConsistencyCheckDefault () const |
virtual std::string | description () const |
virtual void | createSubSteppers (std::vector< Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > >) |
Protected Attributes | |
Teuchos::RCP < StepperForwardEulerObserver < Scalar > > | stepperFEObserver_ |
![]() | |
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 20 of file Tempus_StepperForwardEuler_impl.hpp.
Tempus::StepperForwardEuler< Scalar >::StepperForwardEuler | ( | const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > & | appModel, |
const Teuchos::RCP< StepperObserver< Scalar > > & | obs, | ||
bool | useFSAL, | ||
std::string | ICConsistency, | ||
bool | ICConsistencyCheck | ||
) |
Constructor.
Definition at line 32 of file Tempus_StepperForwardEuler_impl.hpp.
|
virtual |
Definition at line 188 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 179 of file Tempus_StepperForwardEuler_impl.hpp.
|
inlinevirtual |
Get Observer.
Implements Tempus::Stepper< Scalar >.
Definition at line 77 of file Tempus_StepperForwardEuler_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 93 of file Tempus_StepperForwardEuler_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 95 of file Tempus_StepperForwardEuler_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 94 of file Tempus_StepperForwardEuler_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 97 of file Tempus_StepperForwardEuler_decl.hpp.
|
virtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 199 of file Tempus_StepperForwardEuler_impl.hpp.
|
virtual |
Initialize during construction and after changing input parameters.
Implements Tempus::Stepper< Scalar >.
Definition at line 74 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 83 of file Tempus_StepperForwardEuler_impl.hpp.
|
virtual |
Set Observer.
Implements Tempus::Stepper< Scalar >.
Definition at line 54 of file Tempus_StepperForwardEuler_impl.hpp.
|
virtual |
Take the specified timestep, dt, and return true if successful.
Implements Tempus::Stepper< Scalar >.
Definition at line 98 of file Tempus_StepperForwardEuler_impl.hpp.
|
protected |
Definition at line 110 of file Tempus_StepperForwardEuler_decl.hpp.