Tempus  Version of the Day
Time Integration
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Tempus_Integrator.hpp
Go to the documentation of this file.
1 //@HEADER
2 // *****************************************************************************
3 // Tempus: Time Integration and Sensitivity Analysis Package
4 //
5 // Copyright 2017 NTESS and the Tempus contributors.
6 // SPDX-License-Identifier: BSD-3-Clause
7 // *****************************************************************************
8 //@HEADER
9 
10 #ifndef Tempus_Integrator_hpp
11 #define Tempus_Integrator_hpp
12 
13 #include "Tempus_config.hpp"
14 #include "Tempus_Types.hpp"
15 #include "Teuchos_VerboseObject.hpp"
16 #include "Teuchos_Describable.hpp"
17 
18 #include <string>
19 
20 namespace Teuchos {
21 class Time;
22 }
23 
24 namespace Tempus {
25 template <typename Scalar>
26 class Stepper;
27 template <typename Scalar>
29 template <typename Scalar>
31 } // namespace Tempus
32 
33 namespace Tempus {
34 
65 template <class Scalar>
67  : virtual public Teuchos::Describable,
68  virtual public Teuchos::VerboseObject<Tempus::Integrator<Scalar> > {
69  public:
71 
72  virtual bool advanceTime(const Scalar time_final) = 0;
75  virtual Scalar getTime() const = 0;
77  virtual int getIndex() const = 0;
79  virtual Tempus::Status getStatus() const = 0;
81  virtual void setStatus(const Tempus::Status st) = 0;
83  virtual Teuchos::RCP<Stepper<Scalar> > getStepper() const = 0;
86  const = 0;
92  const = 0;
97  virtual Teuchos::RCP<Teuchos::Time> getStepperTimer() const = 0;
99 };
100 
101 } // namespace Tempus
102 #endif // Tempus_Integrator_hpp
virtual Teuchos::RCP< Teuchos::Time > getStepperTimer() const =0
virtual Teuchos::RCP< Teuchos::Time > getIntegratorTimer() const =0
Returns the IntegratorTimer_ for this Integrator.
virtual Teuchos::RCP< const TimeStepControl< Scalar > > getTimeStepControl() const =0
Returns the TimeStepControl for this Integrator.
virtual Teuchos::RCP< TimeStepControl< Scalar > > getNonConstTimeStepControl()=0
virtual Tempus::Status getStatus() const =0
Get the Status.
virtual Teuchos::RCP< SolutionHistory< Scalar > > getNonConstSolutionHistory()=0
Returns the SolutionHistory for this Integrator.
Thyra Base interface for time steppers.
Status
Status for the Integrator, the Stepper and the SolutionState.
virtual Scalar getTime() const =0
Get current time.
virtual void setStatus(const Tempus::Status st)=0
Set the Status.
TimeStepControl manages the time step size. There several mechanisms that effect the time step size a...
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
virtual bool advanceTime(const Scalar time_final)=0
Advance the solution to time, and return true if successful.
Thyra Base interface for time integrators. Time integrators are designed to advance the solution from...
virtual Teuchos::RCP< Stepper< Scalar > > getStepper() const =0
Get the stepper.
virtual int getIndex() const =0
Get current index.
virtual Teuchos::RCP< const SolutionHistory< Scalar > > getSolutionHistory() const =0
Returns the SolutionHistory for this Integrator.