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... | |
StepperForwardEuler (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &appModel, bool useFSAL, std::string ICConsistency, bool ICConsistencyCheck, const Teuchos::RCP< StepperForwardEulerAppAction< Scalar > > &stepperFEAppAction) | |
Constructor. More... | |
Teuchos::RCP< const Teuchos::ParameterList > | getValidParameters () const |
virtual bool | isValidSetup (Teuchos::FancyOStream &out) 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 | setAppAction (Teuchos::RCP< StepperForwardEulerAppAction< Scalar > > appAction) |
virtual Teuchos::RCP < StepperForwardEulerAppAction < Scalar > > | getAppAction () const |
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 |
Public Member Functions inherited from Tempus::StepperExplicit< Scalar > | |
virtual void | setModel (const Teuchos::RCP< const 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) |
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 | 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... | |
Public Member Functions inherited from Tempus::Stepper< Scalar > | |
virtual void | setNonConstModel (const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &) |
virtual void | initialize () |
Initialize after construction and changing input parameters. More... | |
virtual bool | isInitialized () |
True if stepper's member data is initialized. More... | |
virtual void | checkInitialized () |
Check initialization, and error out on failure. 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 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 std::string | description () const |
virtual void | createSubSteppers (std::vector< Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > >) |
Protected Attributes | |
Teuchos::RCP < StepperForwardEulerObserver < Scalar > > | stepperFEObserver_ |
Teuchos::RCP < StepperForwardEulerAppAction < Scalar > > | stepperFEAppAction_ |
Protected Attributes inherited from Tempus::StepperExplicit< Scalar > | |
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_ |
Protected Attributes inherited from Tempus::Stepper< Scalar > | |
bool | isInitialized_ = false |
True if stepper's member data is initialized. More... | |
Additional Inherited Members | |
Protected Member Functions inherited from Tempus::Stepper< Scalar > | |
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... | |
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 55 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, |
const Teuchos::RCP< StepperObserver< Scalar > > & | obs, | ||
bool | useFSAL, | ||
std::string | ICConsistency, | ||
bool | ICConsistencyCheck | ||
) |
Constructor.
Definition at line 33 of file Tempus_StepperForwardEuler_impl.hpp.
Tempus::StepperForwardEuler< Scalar >::StepperForwardEuler | ( | const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > & | appModel, |
bool | useFSAL, | ||
std::string | ICConsistency, | ||
bool | ICConsistencyCheck, | ||
const Teuchos::RCP< StepperForwardEulerAppAction< Scalar > > & | stepperFEAppAction | ||
) |
Constructor.
Definition at line 55 of file Tempus_StepperForwardEuler_impl.hpp.
|
virtual |
Reimplemented from Tempus::StepperExplicit< Scalar >.
Definition at line 239 of file Tempus_StepperForwardEuler_impl.hpp.
|
inlinevirtual |
Definition at line 97 of file Tempus_StepperForwardEuler_decl.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 230 of file Tempus_StepperForwardEuler_impl.hpp.
|
inlinevirtual |
Get Observer.
Reimplemented from Tempus::Stepper< Scalar >.
Definition at line 90 of file Tempus_StepperForwardEuler_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 110 of file Tempus_StepperForwardEuler_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 112 of file Tempus_StepperForwardEuler_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 111 of file Tempus_StepperForwardEuler_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 114 of file Tempus_StepperForwardEuler_decl.hpp.
|
virtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 280 of file Tempus_StepperForwardEuler_impl.hpp.
|
virtual |
Reimplemented from Tempus::StepperExplicit< Scalar >.
Definition at line 258 of file Tempus_StepperForwardEuler_impl.hpp.
|
virtual |
Definition at line 100 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 115 of file Tempus_StepperForwardEuler_impl.hpp.
|
virtual |
Set Observer.
Reimplemented from Tempus::Stepper< Scalar >.
Definition at line 77 of file Tempus_StepperForwardEuler_impl.hpp.
|
virtual |
Take the specified timestep, dt, and return true if successful.
Implements Tempus::Stepper< Scalar >.
Definition at line 130 of file Tempus_StepperForwardEuler_impl.hpp.
|
protected |
Definition at line 132 of file Tempus_StepperForwardEuler_decl.hpp.
|
protected |
Definition at line 130 of file Tempus_StepperForwardEuler_decl.hpp.