Tempus  Version of the Day
Time Integration
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Tempus::Stepper< Scalar > Class Template Referenceabstract

Thyra Base interface for time steppers. More...

#include <Tempus_Integrator.hpp>

Inheritance diagram for Tempus::Stepper< Scalar >:
Tempus::StepperExplicit< Scalar > Tempus::StepperImplicit< Scalar > Tempus::StepperOperatorSplit< Scalar > Tempus::StepperStaggeredForwardSensitivity< Scalar > Tempus::StepperSubcycling< Scalar > Tempus::StepperExplicitRK< Scalar > Tempus::StepperForwardEuler< Scalar > Tempus::StepperLeapfrog< Scalar > Tempus::StepperNewmarkExplicitAForm< Scalar > Tempus_Test::StepperPhysicsStateTest< Scalar > Tempus::StepperBackwardEuler< Scalar > Tempus::StepperBDF2< Scalar > Tempus::StepperDIRK< Scalar > Tempus::StepperHHTAlpha< Scalar > Tempus::StepperIMEX_RK< Scalar > Tempus::StepperIMEX_RK_Partition< Scalar > Tempus::StepperNewmarkImplicitAForm< Scalar > Tempus::StepperNewmarkImplicitDForm< Scalar > Tempus::StepperTrapezoidal< Scalar >

Public Member Functions

virtual Teuchos::RCP< const
Teuchos::ParameterList > 
getValidParameters () const =0
 
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 (Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > solver=Teuchos::null)=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 Teuchos::RCP
< StepperObserver< Scalar > > 
getObserver () const =0
 Get 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 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 bool isExplicit () const =0
 
virtual bool isImplicit () const =0
 
virtual bool isExplicitImplicit () const =0
 
virtual bool isOneStepMethod () const =0
 
virtual bool isMultiStepMethod () const =0
 
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 OrderODE getOrderODE () const =0
 
Overridden from Teuchos::Describable
virtual std::string description () const
 
Functions for Steppers with subSteppers (e.g., OperatorSplit)
virtual void createSubSteppers (std::vector< Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > >)
 

Private Attributes

std::string stepperType_
 
bool useFSAL_
 
std::string ICConsistency_
 
bool ICConsistencyCheck_
 

Detailed Description

template<typename Scalar>
class Tempus::Stepper< Scalar >

Thyra Base interface for time steppers.

Design Considerations

  • Time steppers are designed to take a single time step.
    • a single implicit solve for a time step
    • a single solve for a IMEX time step
  • Multiple time steps should be managed by Integrators.
  • Steppers can be built from other Sub-Steppers.
    • An operator-split Stepper is possible with interoperable Steppers.
  • For explicit steppers, only one ModelEvaluator and one solution vector are required.
  • For implicit steppers, only one ModelEvaluator, one solution vector, and one solver are required.
  • Steppers will PASS/FAIL the time step based on Solver, error and order requirements, and not adjust the time step size.
  • Steppers can provide a suggested time step size for the next time step.
  • For more complex steppers, multiple ModelEvaluators, solution vectors, and solvers are possible when a common single time-integration method is desired for all solutions. Examples:
    • Solution A with ModelEvaluator A and Solution B with ModelEvaluator B using the same solver
    • Solution A with ModelEvaluator A using Solver A and Solution B with ModelEvaluator B using Solver B
    • Solution A with ModelEvaluator A using Solver A and Solutions A and B with ModelEvaluator C using Solver B
  • Steppers may maintain their own time history of the solution, e.g., BDF steppers.

Definition at line 24 of file Tempus_Integrator.hpp.

Member Function Documentation

template<typename Scalar>
virtual void Tempus::Stepper< Scalar >::createSubSteppers ( std::vector< Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > >  )
inlinevirtual

Definition at line 147 of file Tempus_Stepper_decl.hpp.

template<typename Scalar>
virtual std::string Tempus::Stepper< Scalar >::description ( ) const
inlinevirtual
template<typename Scalar>
std::string Tempus::Stepper< Scalar >::getICConsistency ( ) const
inline

Definition at line 130 of file Tempus_Stepper_decl.hpp.

template<typename Scalar>
bool Tempus::Stepper< Scalar >::getICConsistencyCheck ( ) const
inline

Definition at line 134 of file Tempus_Stepper_decl.hpp.

template<typename Scalar>
virtual std::string Tempus::Stepper< Scalar >::getICConsistencyDefault ( ) const
inlinevirtual
template<typename Scalar>
virtual Teuchos::RCP<Thyra::NonlinearSolverBase<Scalar> > Tempus::Stepper< Scalar >::getSolver ( ) const
pure virtual
template<typename Scalar>
std::string Tempus::Stepper< Scalar >::getStepperType ( ) const
inline

Definition at line 123 of file Tempus_Stepper_decl.hpp.

template<typename Scalar>
bool Tempus::Stepper< Scalar >::getUseFSAL ( ) const
inline

Definition at line 126 of file Tempus_Stepper_decl.hpp.

template<typename Scalar>
virtual bool Tempus::Stepper< Scalar >::getUseFSALDefault ( ) const
inlinevirtual
template<typename Scalar>
virtual Teuchos::RCP<const Teuchos::ParameterList> Tempus::Stepper< Scalar >::getValidParameters ( ) const
pure virtual
template<typename Scalar>
void Tempus::Stepper< Scalar >::setICConsistency ( std::string  s)
inline

Definition at line 129 of file Tempus_Stepper_decl.hpp.

template<typename Scalar>
void Tempus::Stepper< Scalar >::setICConsistencyCheck ( bool  c)
inline

Definition at line 133 of file Tempus_Stepper_decl.hpp.

template<typename Scalar>
virtual void Tempus::Stepper< Scalar >::setInitialGuess ( Teuchos::RCP< const Thyra::VectorBase< Scalar > >  initial_guess = Teuchos::null)
pure virtual
template<typename Scalar>
virtual void Tempus::Stepper< Scalar >::setNonConstModel ( const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &  appModel)
pure virtual
template<typename Scalar>
virtual void Tempus::Stepper< Scalar >::setSolver ( Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > >  solver = Teuchos::null)
pure virtual
template<typename Scalar>
void Tempus::Stepper< Scalar >::setStepperType ( std::string  s)
inline

Definition at line 122 of file Tempus_Stepper_decl.hpp.

template<typename Scalar>
void Tempus::Stepper< Scalar >::setUseFSAL ( bool  a)
inline

Definition at line 125 of file Tempus_Stepper_decl.hpp.

Member Data Documentation

template<typename Scalar>
std::string Tempus::Stepper< Scalar >::ICConsistency_
private

Definition at line 156 of file Tempus_Stepper_decl.hpp.

template<typename Scalar>
bool Tempus::Stepper< Scalar >::ICConsistencyCheck_
private

Definition at line 157 of file Tempus_Stepper_decl.hpp.

template<typename Scalar>
std::string Tempus::Stepper< Scalar >::stepperType_
private

Definition at line 154 of file Tempus_Stepper_decl.hpp.

template<typename Scalar>
bool Tempus::Stepper< Scalar >::useFSAL_
private

Definition at line 155 of file Tempus_Stepper_decl.hpp.


The documentation for this class was generated from the following files: