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

Thyra Base interface for time integrators. Time integrators are designed to advance the solution from an initial time, $t_0$, to a final time, $t_f$. More...

#include <Tempus_Integrator.hpp>

Inheritance diagram for Tempus::Integrator< Scalar >:
Tempus::IntegratorAdjointSensitivity< Scalar > Tempus::IntegratorBasic< Scalar > Tempus::IntegratorForwardSensitivity< Scalar > Tempus::IntegratorPseudoTransientAdjointSensitivity< Scalar > Tempus::IntegratorPseudoTransientForwardSensitivity< Scalar >

Public Member Functions

Basic integrator methods
virtual bool advanceTime (const Scalar time_final)=0
 Advance the solution to time, and return true if successful. More...
 
virtual Scalar getTime () const =0
 Get current time. More...
 
virtual int getIndex () const =0
 Get current index. More...
 
virtual Tempus::Status getStatus () const =0
 Get the Status. More...
 
virtual Teuchos::RCP< Stepper
< Scalar > > 
getStepper () const =0
 Get the stepper. More...
 
virtual Teuchos::RCP
< Teuchos::ParameterList > 
getTempusParameterList ()=0
 Return a copy of the Tempus ParameterList. More...
 
virtual void setTempusParameterList (Teuchos::RCP< Teuchos::ParameterList > pl)=0
 
virtual Teuchos::RCP< const
SolutionHistory< Scalar > > 
getSolutionHistory () const =0
 Returns the SolutionHistory for this Integrator. More...
 
virtual Teuchos::RCP< const
TimeStepControl< Scalar > > 
getTimeStepControl () const =0
 Returns the TimeStepControl for this Integrator. More...
 
virtual Teuchos::RCP
< TimeStepControl< Scalar > > 
getNonConstTimeStepControl ()=0
 
virtual Teuchos::RCP
< Teuchos::Time > 
getIntegratorTimer () const =0
 Returns the IntegratorTimer_ for this Integrator. More...
 
virtual Teuchos::RCP
< Teuchos::Time > 
getStepperTimer () const =0
 

Detailed Description

template<class Scalar>
class Tempus::Integrator< Scalar >

Thyra Base interface for time integrators. Time integrators are designed to advance the solution from an initial time, $t_0$, to a final time, $t_f$.

Design Considerations

  • Integrators manage multiple time steps
  • Integrators have a single Stepper
  • Time-step ramping and startup are handled by TimeStepControl.
  • Solution output, e.g., solution plotting and check pointing, is coordinated in the Integrator.
  • Solution stability is handled in the timeStepControl, e.g., CFL constraint.
  • Error control over multiple time steps is handled in the Integrators, while error control over a single time step is handled in the Steppers.
  • Integrators will collect error control information from the Stepper and determine the next time step size and order.
  • Integrator maintains its own copy of the time history in the SolutionHistory, which may be just a single time step up to the entire solution history.
  • Integrators should compute the next time, and after accepting the time step advance the solution. This allows a simple undo capability, if a solution is not acceptable.

CS Design Considerations

  • Integrators will be fully constructed with input or default parameters.
  • All input parameters (i.e., ParameterList) can be set by public methods.
  • The Integrator ParameterList must be consistent.
    • The "set" methods which update parameters in the ParameterList must update the Integrator ParameterList.

Definition at line 62 of file Tempus_Integrator.hpp.

Member Function Documentation

template<class Scalar>
virtual bool Tempus::Integrator< Scalar >::advanceTime ( const Scalar  time_final)
pure virtual
template<class Scalar>
virtual Teuchos::RCP<Teuchos::ParameterList> Tempus::Integrator< Scalar >::getTempusParameterList ( )
pure virtual

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