10 #ifndef Tempus_IntegratorForwardSensitivity_decl_hpp
11 #define Tempus_IntegratorForwardSensitivity_decl_hpp
14 #include "Tempus_config.hpp"
15 #include "Tempus_IntegratorBasic.hpp"
17 #include "Tempus_StepperStaggeredForwardSensitivity.hpp"
48 template <
class Scalar>
95 const bool use_combined_method);
309 template <
class Scalar>
332 template <
class Scalar>
340 sens_residual_model);
357 template <
class Scalar>
375 template <
class Scalar>
381 #endif // Tempus_IntegratorForwardSensitivity_decl_hpp
virtual Teuchos::RCP< const SolutionHistory< Scalar > > getSolutionHistory() const override
Get the SolutionHistory.
Teuchos::RCP< IntegratorBasic< Scalar > > integrator_
virtual Teuchos::RCP< Teuchos::Time > getIntegratorTimer() const override
Returns the IntegratorTimer_ for this Integrator.
virtual int getIndex() const override
Get current index.
Teuchos::RCP< IntegratorForwardSensitivity< Scalar > > createIntegratorForwardSensitivity(Teuchos::RCP< Teuchos::ParameterList > pList, const Teuchos::RCP< Thyra::ModelEvaluator< Scalar >> &model, const Teuchos::RCP< Thyra::ModelEvaluator< Scalar >> &sens_residual_model, const Teuchos::RCP< Thyra::ModelEvaluator< Scalar >> &sens_solve_model)
Nonmember constructor.
virtual Teuchos::RCP< SolutionHistory< Scalar > > getNonConstSolutionHistory() override
Get the SolutionHistory.
virtual bool advanceTime()
Advance the solution to timeMax, and return true if successful.
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getXDotDot() const
Get current the second time derivative of the solution, xdotdot, only. This is the first block only a...
std::string description() const override
virtual void setStepper(Teuchos::RCP< Thyra::ModelEvaluator< Scalar >> model)
Set the Stepper.
SensitivityStepMode getStepMode() const
What mode the current time integration step is in.
virtual Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > getDXDotDp() const
virtual Teuchos::RCP< IntegratorObserver< Scalar > > getObserver()
Get the Observer.
virtual Teuchos::RCP< const TimeStepControl< Scalar > > getTimeStepControl() const override
Get the TimeStepControl.
virtual void endIntegrator()
Perform tasks after end of integrator.
virtual void setStatus(const Status st) override
Set the Status.
virtual Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > getDXDotDotDp() const
A stepper implementing staggered forward sensitivity analysis.
bool use_combined_method_
Teuchos::RCP< StepperStaggeredForwardSensitivity< Scalar > > sens_stepper_
virtual void setSolutionHistory(Teuchos::RCP< SolutionHistory< Scalar >> sh=Teuchos::null)
Set the SolutionHistory.
virtual void setObserver(Teuchos::RCP< IntegratorObserver< Scalar >> obs=Teuchos::null)
Set the Observer.
virtual Teuchos::RCP< SolutionState< Scalar > > getCurrentState()
Get current state.
virtual Status getStatus() const override
Get Status.
virtual void setStepper(Teuchos::RCP< Stepper< Scalar >> stepper)
Set the Stepper.
virtual Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > getDgDp() const
Return forward sensitivity stored in Jacobian format.
Thyra Base interface for time steppers.
virtual void startIntegrator()
Perform tasks before start of integrator.
virtual void checkTimeStep()
Check if time step has passed or failed.
IntegratorForwardSensitivity()
Destructor.
virtual Teuchos::RCP< Teuchos::Time > getStepperTimer() const override
virtual Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > getDxDp() const
Get the forward sensitivities .
virtual void initialize()
Initializes the Integrator after set* function calls.
virtual Teuchos::RCP< Stepper< Scalar > > getStepper() const override
Get the Stepper.
Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > model_
Status
Status for the Integrator, the Stepper and the SolutionState.
IntegratorObserver class for time integrators.
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...
void parseScreenOutput()
Parse when screen output should be executed.
virtual Scalar getTime() const override
Get current time.
virtual ~IntegratorForwardSensitivity()
Destructor.
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const override
virtual void startTimeStep()
Start time step.
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getG() const
Return response function g.
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getX() const
Get the current solution, x, only. If looking for the solution vector and the sensitivities, use SolutionState->getX() which will return a Block MultiVector with the first block containing the current solution, x, and the remaining blocks are the forward sensitivities .
Thyra Base interface for time integrators. Time integrators are designed to advance the solution from...
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getXDot() const
Get current the time derivative of the solution, xdot, only. This is the first block only and not the...
virtual Teuchos::RCP< TimeStepControl< Scalar > > getNonConstTimeStepControl() override
A ModelEvaluator decorator for sensitivity analysis.
Teuchos::RCP< SensitivityModelEvaluatorBase< Scalar > > sens_model_
Time integrator implementing forward sensitivity analysis.
virtual void initializeSolutionHistory(Teuchos::RCP< SolutionState< Scalar >> state=Teuchos::null)
Set the initial state which has the initial conditions.
virtual bool advanceTime(const Scalar timeFinal) override
Advance the solution to timeFinal, and return true if successful.
Solution state for integrators and steppers.
virtual void setTimeStepControl(Teuchos::RCP< TimeStepControl< Scalar >> tsc=Teuchos::null)
Set the TimeStepControl.