Tempus
Version of the Day
Time Integration
|
Thyra Base interface for time steppers. More...
#include <Tempus_Integrator.hpp>
Public Member Functions | |
virtual void | modelWarning () const |
Basic stepper methods | |
virtual void | setModel (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &appModel)=0 |
virtual void | setNonConstModel (const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &appModel)=0 |
virtual Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > | getModel ()=0 |
virtual void | setSolver (std::string solverName)=0 |
Set solver via ParameterList solver name. More... | |
virtual void | setSolver (Teuchos::RCP< Teuchos::ParameterList > solverPL=Teuchos::null)=0 |
Set solver via solver ParameterList. More... | |
virtual void | setSolver (Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > solver)=0 |
Set solver. More... | |
virtual Teuchos::RCP < Thyra::NonlinearSolverBase < Scalar > > | getSolver () const =0 |
Get solver. More... | |
virtual void | setObserver (Teuchos::RCP< StepperObserver< Scalar > > obs=Teuchos::null)=0 |
Set Observer. More... | |
virtual void | initialize ()=0 |
Initialize during construction and after changing input parameters. More... | |
virtual void | setInitialConditions (const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory)=0 |
Set initial conditions, make them consistent, and set stepper memory. More... | |
virtual void | takeStep (const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory)=0 |
Take the specified timestep, dt, and return true if successful. More... | |
virtual void | setInitialGuess (Teuchos::RCP< const Thyra::VectorBase< Scalar > > initial_guess=Teuchos::null)=0 |
Pass initial guess to Newton solver (for implicit schemes) More... | |
virtual std::string | getStepperType () const =0 |
virtual Teuchos::RCP < Tempus::StepperState< Scalar > > | getDefaultStepperState ()=0 |
virtual Scalar | getOrder () const =0 |
virtual Scalar | getOrderMin () const =0 |
virtual Scalar | getOrderMax () const =0 |
virtual Scalar | getInitTimeStep (const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory) const =0 |
virtual Teuchos::RCP < Teuchos::ParameterList > | getDefaultParameters () const =0 |
virtual bool | isExplicit () const =0 |
virtual bool | isImplicit () const =0 |
virtual bool | isExplicitImplicit () const =0 |
virtual bool | isOneStepMethod () const =0 |
virtual bool | isMultiStepMethod () const =0 |
virtual OrderODE | getOrderODE () const =0 |
virtual void | setUseFSAL (bool a)=0 |
virtual bool | getUseFSAL () const =0 |
virtual void | setICConsistency (std::string s)=0 |
virtual std::string | getICConsistency () const =0 |
virtual void | setICConsistencyCheck (bool c)=0 |
virtual bool | getICConsistencyCheck () const =0 |
void | getValidParametersBasic (Teuchos::RCP< Teuchos::ParameterList > pl) const |
Functions for Steppers with subSteppers (e.g., OperatorSplit) | |
virtual void | createSubSteppers (std::vector< Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > >) |
Helper functions | |
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 |
Thyra Base interface for time steppers.
Design Considerations
CS Design Considerations
Definition at line 24 of file Tempus_Integrator.hpp.
|
inlinevirtual |
Reimplemented in Tempus::StepperOperatorSplit< Scalar >.
Definition at line 150 of file Tempus_Stepper_decl.hpp.
Teuchos::RCP< Teuchos::ParameterList > Tempus::Stepper< Scalar >::defaultSolverParameters | ( | ) | const |
Definition at line 243 of file Tempus_Stepper_impl.hpp.
|
pure virtual |
Implemented in Tempus::StepperIMEX_RK< Scalar >, Tempus::StepperIMEX_RK_Partition< Scalar >, Tempus::StepperDIRK< Scalar >, Tempus::StepperOperatorSplit< Scalar >, Tempus::StepperExplicitRK< Scalar >, Tempus::StepperStaggeredForwardSensitivity< Scalar >, Tempus::StepperNewmarkImplicitAForm< Scalar >, Tempus::StepperLeapfrog< Scalar >, Tempus::StepperNewmarkExplicitAForm< Scalar >, Tempus::StepperNewmarkImplicitDForm< Scalar >, Tempus::StepperBDF2< Scalar >, Tempus::StepperHHTAlpha< Scalar >, Tempus::StepperBackwardEuler< Scalar >, Tempus::StepperForwardEuler< Scalar >, and Tempus::StepperTrapezoidal< Scalar >.
|
pure virtual |
Implemented in Tempus::StepperIMEX_RK< Scalar >, Tempus::StepperIMEX_RK_Partition< Scalar >, Tempus::StepperExplicitRK< Scalar >, Tempus::StepperDIRK< Scalar >, Tempus::StepperStaggeredForwardSensitivity< Scalar >, Tempus::StepperLeapfrog< Scalar >, Tempus::StepperNewmarkImplicitAForm< Scalar >, Tempus::StepperNewmarkExplicitAForm< Scalar >, Tempus::StepperOperatorSplit< Scalar >, Tempus::StepperBDF2< Scalar >, Tempus::StepperForwardEuler< Scalar >, Tempus::StepperHHTAlpha< Scalar >, Tempus::StepperNewmarkImplicitDForm< Scalar >, Tempus::StepperBackwardEuler< Scalar >, and Tempus::StepperTrapezoidal< Scalar >.
|
pure virtual |
|
pure virtual |
|
pure virtual |
Implemented in Tempus::StepperExplicitRK< Scalar >, Tempus::StepperStaggeredForwardSensitivity< Scalar >, Tempus::StepperLeapfrog< Scalar >, Tempus::StepperImplicit< Scalar >, Tempus::StepperNewmarkExplicitAForm< Scalar >, Tempus::StepperOperatorSplit< Scalar >, and Tempus::StepperExplicit< Scalar >.
|
pure virtual |
|
pure virtual |
Implemented in Tempus::StepperIMEX_RK< Scalar >, Tempus::StepperIMEX_RK_Partition< Scalar >, Tempus::StepperExplicitRK< Scalar >, Tempus::StepperDIRK< Scalar >, Tempus::StepperStaggeredForwardSensitivity< Scalar >, Tempus::StepperLeapfrog< Scalar >, Tempus::StepperNewmarkImplicitAForm< Scalar >, Tempus::StepperNewmarkExplicitAForm< Scalar >, Tempus::StepperOperatorSplit< Scalar >, Tempus::StepperBDF2< Scalar >, Tempus::StepperForwardEuler< Scalar >, Tempus::StepperHHTAlpha< Scalar >, Tempus::StepperNewmarkImplicitDForm< Scalar >, Tempus::StepperBackwardEuler< Scalar >, and Tempus::StepperTrapezoidal< Scalar >.
|
pure virtual |
Implemented in Tempus::StepperIMEX_RK< Scalar >, Tempus::StepperIMEX_RK_Partition< Scalar >, Tempus::StepperExplicitRK< Scalar >, Tempus::StepperDIRK< Scalar >, Tempus::StepperNewmarkImplicitAForm< Scalar >, Tempus::StepperStaggeredForwardSensitivity< Scalar >, Tempus::StepperLeapfrog< Scalar >, Tempus::StepperNewmarkExplicitAForm< Scalar >, Tempus::StepperOperatorSplit< Scalar >, Tempus::StepperBDF2< Scalar >, Tempus::StepperNewmarkImplicitDForm< Scalar >, Tempus::StepperForwardEuler< Scalar >, Tempus::StepperHHTAlpha< Scalar >, Tempus::StepperBackwardEuler< Scalar >, and Tempus::StepperTrapezoidal< Scalar >.
|
pure virtual |
Implemented in Tempus::StepperIMEX_RK< Scalar >, Tempus::StepperIMEX_RK_Partition< Scalar >, Tempus::StepperExplicitRK< Scalar >, Tempus::StepperDIRK< Scalar >, Tempus::StepperNewmarkImplicitAForm< Scalar >, Tempus::StepperStaggeredForwardSensitivity< Scalar >, Tempus::StepperLeapfrog< Scalar >, Tempus::StepperNewmarkExplicitAForm< Scalar >, Tempus::StepperOperatorSplit< Scalar >, Tempus::StepperBDF2< Scalar >, Tempus::StepperForwardEuler< Scalar >, Tempus::StepperNewmarkImplicitDForm< Scalar >, Tempus::StepperHHTAlpha< Scalar >, Tempus::StepperBackwardEuler< Scalar >, and Tempus::StepperTrapezoidal< Scalar >.
|
pure virtual |
Implemented in Tempus::StepperIMEX_RK< Scalar >, Tempus::StepperIMEX_RK_Partition< Scalar >, Tempus::StepperExplicitRK< Scalar >, Tempus::StepperDIRK< Scalar >, Tempus::StepperOperatorSplit< Scalar >, Tempus::StepperStaggeredForwardSensitivity< Scalar >, Tempus::StepperLeapfrog< Scalar >, Tempus::StepperNewmarkImplicitAForm< Scalar >, Tempus::StepperNewmarkExplicitAForm< Scalar >, Tempus::StepperNewmarkImplicitDForm< Scalar >, Tempus::StepperBDF2< Scalar >, Tempus::StepperHHTAlpha< Scalar >, Tempus::StepperForwardEuler< Scalar >, Tempus::StepperBackwardEuler< Scalar >, and Tempus::StepperTrapezoidal< Scalar >.
|
pure virtual |
|
pure virtual |
Implemented in Tempus::StepperExplicitRK< Scalar >, Tempus::StepperStaggeredForwardSensitivity< Scalar >, Tempus::StepperLeapfrog< Scalar >, Tempus::StepperNewmarkExplicitAForm< Scalar >, Tempus::StepperOperatorSplit< Scalar >, Tempus::StepperImplicit< Scalar >, and Tempus::StepperExplicit< Scalar >.
|
pure virtual |
void Tempus::Stepper< Scalar >::getValidParametersBasic | ( | Teuchos::RCP< Teuchos::ParameterList > | pl | ) | const |
Definition at line 17 of file Tempus_Stepper_impl.hpp.
|
pure virtual |
Initialize during construction and after changing input parameters.
Implemented in Tempus::StepperIMEX_RK< Scalar >, Tempus::StepperIMEX_RK_Partition< Scalar >, Tempus::StepperExplicitRK< Scalar >, Tempus::StepperDIRK< Scalar >, Tempus::StepperNewmarkImplicitAForm< Scalar >, Tempus::StepperStaggeredForwardSensitivity< Scalar >, Tempus::StepperLeapfrog< Scalar >, Tempus::StepperNewmarkExplicitAForm< Scalar >, Tempus::StepperOperatorSplit< Scalar >, Tempus::StepperBDF2< Scalar >, Tempus::StepperForwardEuler< Scalar >, Tempus::StepperHHTAlpha< Scalar >, Tempus::StepperNewmarkImplicitDForm< Scalar >, Tempus::StepperBackwardEuler< Scalar >, and Tempus::StepperTrapezoidal< Scalar >.
|
pure virtual |
Implemented in Tempus::StepperIMEX_RK< Scalar >, Tempus::StepperIMEX_RK_Partition< Scalar >, Tempus::StepperExplicitRK< Scalar >, Tempus::StepperDIRK< Scalar >, Tempus::StepperStaggeredForwardSensitivity< Scalar >, Tempus::StepperLeapfrog< Scalar >, Tempus::StepperNewmarkImplicitAForm< Scalar >, Tempus::StepperOperatorSplit< Scalar >, Tempus::StepperNewmarkExplicitAForm< Scalar >, Tempus::StepperNewmarkImplicitDForm< Scalar >, Tempus::StepperBDF2< Scalar >, Tempus::StepperHHTAlpha< Scalar >, Tempus::StepperBackwardEuler< Scalar >, Tempus::StepperTrapezoidal< Scalar >, and Tempus::StepperExplicit< Scalar >.
|
pure virtual |
Implemented in Tempus::StepperIMEX_RK< Scalar >, Tempus::StepperIMEX_RK_Partition< Scalar >, Tempus::StepperExplicitRK< Scalar >, Tempus::StepperDIRK< Scalar >, Tempus::StepperOperatorSplit< Scalar >, Tempus::StepperStaggeredForwardSensitivity< Scalar >, Tempus::StepperLeapfrog< Scalar >, Tempus::StepperNewmarkImplicitAForm< Scalar >, Tempus::StepperNewmarkExplicitAForm< Scalar >, Tempus::StepperNewmarkImplicitDForm< Scalar >, Tempus::StepperBDF2< Scalar >, Tempus::StepperHHTAlpha< Scalar >, Tempus::StepperBackwardEuler< Scalar >, Tempus::StepperTrapezoidal< Scalar >, and Tempus::StepperExplicit< Scalar >.
|
pure virtual |
Implemented in Tempus::StepperIMEX_RK< Scalar >, Tempus::StepperIMEX_RK_Partition< Scalar >, Tempus::StepperExplicitRK< Scalar >, Tempus::StepperDIRK< Scalar >, Tempus::StepperStaggeredForwardSensitivity< Scalar >, Tempus::StepperOperatorSplit< Scalar >, Tempus::StepperLeapfrog< Scalar >, Tempus::StepperNewmarkImplicitAForm< Scalar >, Tempus::StepperNewmarkExplicitAForm< Scalar >, Tempus::StepperNewmarkImplicitDForm< Scalar >, Tempus::StepperBDF2< Scalar >, Tempus::StepperHHTAlpha< Scalar >, Tempus::StepperBackwardEuler< Scalar >, Tempus::StepperTrapezoidal< Scalar >, and Tempus::StepperExplicit< Scalar >.
|
pure virtual |
Implemented in Tempus::StepperIMEX_RK< Scalar >, Tempus::StepperIMEX_RK_Partition< Scalar >, Tempus::StepperExplicitRK< Scalar >, Tempus::StepperDIRK< Scalar >, Tempus::StepperOperatorSplit< Scalar >, Tempus::StepperStaggeredForwardSensitivity< Scalar >, Tempus::StepperLeapfrog< Scalar >, Tempus::StepperNewmarkImplicitAForm< Scalar >, Tempus::StepperNewmarkExplicitAForm< Scalar >, Tempus::StepperNewmarkImplicitDForm< Scalar >, Tempus::StepperBDF2< Scalar >, Tempus::StepperHHTAlpha< Scalar >, Tempus::StepperBackwardEuler< Scalar >, Tempus::StepperTrapezoidal< Scalar >, and Tempus::StepperExplicit< Scalar >.
|
pure virtual |
Implemented in Tempus::StepperIMEX_RK< Scalar >, Tempus::StepperIMEX_RK_Partition< Scalar >, Tempus::StepperExplicitRK< Scalar >, Tempus::StepperDIRK< Scalar >, Tempus::StepperOperatorSplit< Scalar >, Tempus::StepperStaggeredForwardSensitivity< Scalar >, Tempus::StepperLeapfrog< Scalar >, Tempus::StepperNewmarkImplicitAForm< Scalar >, Tempus::StepperNewmarkExplicitAForm< Scalar >, Tempus::StepperNewmarkImplicitDForm< Scalar >, Tempus::StepperBDF2< Scalar >, Tempus::StepperHHTAlpha< Scalar >, Tempus::StepperBackwardEuler< Scalar >, Tempus::StepperTrapezoidal< Scalar >, and Tempus::StepperExplicit< Scalar >.
|
virtual |
Definition at line 77 of file Tempus_Stepper_impl.hpp.
|
pure virtual |
|
pure virtual |
|
pure virtual |
Set initial conditions, make them consistent, and set stepper memory.
Implemented in Tempus::StepperIMEX_RK< Scalar >, Tempus::StepperIMEX_RK_Partition< Scalar >, Tempus::StepperExplicitRK< Scalar >, Tempus::StepperDIRK< Scalar >, Tempus::StepperNewmarkImplicitAForm< Scalar >, Tempus::StepperStaggeredForwardSensitivity< Scalar >, Tempus::StepperLeapfrog< Scalar >, Tempus::StepperNewmarkExplicitAForm< Scalar >, Tempus::StepperOperatorSplit< Scalar >, Tempus::StepperBDF2< Scalar >, Tempus::StepperForwardEuler< Scalar >, Tempus::StepperImplicit< Scalar >, Tempus::StepperHHTAlpha< Scalar >, Tempus::StepperNewmarkImplicitDForm< Scalar >, Tempus::StepperBackwardEuler< Scalar >, Tempus::StepperTrapezoidal< Scalar >, and Tempus::StepperExplicit< Scalar >.
|
pure virtual |
Pass initial guess to Newton solver (for implicit schemes)
Implemented in Tempus::StepperStaggeredForwardSensitivity< Scalar >, Tempus::StepperImplicit< Scalar >, Tempus::StepperOperatorSplit< Scalar >, and Tempus::StepperExplicit< Scalar >.
|
pure virtual |
Implemented in Tempus::StepperIMEX_RK< Scalar >, Tempus::StepperIMEX_RK_Partition< Scalar >, Tempus::StepperNewmarkImplicitAForm< Scalar >, Tempus::StepperStaggeredForwardSensitivity< Scalar >, Tempus::StepperHHTAlpha< Scalar >, Tempus::StepperOperatorSplit< Scalar >, Tempus::StepperImplicit< Scalar >, and Tempus::StepperExplicit< Scalar >.
|
pure virtual |
|
pure virtual |
Set Observer.
Implemented in Tempus::StepperIMEX_RK< Scalar >, Tempus::StepperIMEX_RK_Partition< Scalar >, Tempus::StepperExplicitRK< Scalar >, Tempus::StepperDIRK< Scalar >, Tempus::StepperNewmarkImplicitAForm< Scalar >, Tempus::StepperStaggeredForwardSensitivity< Scalar >, Tempus::StepperLeapfrog< Scalar >, Tempus::StepperNewmarkExplicitAForm< Scalar >, Tempus::StepperForwardEuler< Scalar >, Tempus::StepperOperatorSplit< Scalar >, Tempus::StepperBDF2< Scalar >, Tempus::StepperHHTAlpha< Scalar >, Tempus::StepperNewmarkImplicitDForm< Scalar >, Tempus::StepperTrapezoidal< Scalar >, and Tempus::StepperBackwardEuler< Scalar >.
|
pure virtual |
Set solver via ParameterList solver name.
Implemented in Tempus::StepperStaggeredForwardSensitivity< Scalar >, Tempus::StepperOperatorSplit< Scalar >, Tempus::StepperImplicit< Scalar >, and Tempus::StepperExplicit< Scalar >.
|
pure virtual |
Set solver via solver ParameterList.
Implemented in Tempus::StepperStaggeredForwardSensitivity< Scalar >, Tempus::StepperImplicit< Scalar >, Tempus::StepperOperatorSplit< Scalar >, and Tempus::StepperExplicit< Scalar >.
|
pure virtual |
|
pure virtual |
|
pure virtual |
Take the specified timestep, dt, and return true if successful.
Implemented in Tempus::StepperIMEX_RK< Scalar >, Tempus::StepperIMEX_RK_Partition< Scalar >, Tempus::StepperExplicitRK< Scalar >, Tempus::StepperDIRK< Scalar >, Tempus::StepperNewmarkImplicitAForm< Scalar >, Tempus::StepperStaggeredForwardSensitivity< Scalar >, Tempus::StepperLeapfrog< Scalar >, Tempus::StepperNewmarkExplicitAForm< Scalar >, Tempus::StepperOperatorSplit< Scalar >, Tempus::StepperBDF2< Scalar >, Tempus::StepperForwardEuler< Scalar >, Tempus::StepperHHTAlpha< Scalar >, Tempus::StepperBackwardEuler< Scalar >, and Tempus::StepperTrapezoidal< Scalar >.
void Tempus::Stepper< Scalar >::validExplicitODE | ( | const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > & | model | ) | const |
Validate that the model supports explicit ODE evaluation, f(x,t) [=xdot].
Currently the convention to evaluate f(x,t) is to set xdot=null! There is no InArgs support to test if xdot is null, so we set xdot=null and hopefully the ModelEvaluator can handle it.
Definition at line 90 of file Tempus_Stepper_impl.hpp.
void Tempus::Stepper< Scalar >::validImplicitODE_DAE | ( | const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > & | model | ) | const |
Validate ME supports implicit ODE/DAE evaluation, f(xdot,x,t) [= 0].
Definition at line 148 of file Tempus_Stepper_impl.hpp.
void Tempus::Stepper< Scalar >::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].
Currently the convention to evaluate f(x,xdot,t) is to set xdotdot=null! There is no InArgs support to test if xdotdot is null, so we set xdotdot=null and hopefully the ModelEvaluator can handle it.
Definition at line 117 of file Tempus_Stepper_impl.hpp.
void Tempus::Stepper< Scalar >::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].
Definition at line 193 of file Tempus_Stepper_impl.hpp.