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"
48template <
class Scalar>
95 const bool use_combined_method);
138 virtual Teuchos::RCP<Stepper<Scalar>>
getStepper()
const override
236 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar>>
getX()
const;
239 virtual Teuchos::RCP<const Thyra::MultiVectorBase<Scalar>>
getDxDp()
const;
246 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar>>
getXDot()
const;
247 virtual Teuchos::RCP<const Thyra::MultiVectorBase<Scalar>>
getDXDotDp()
const;
256 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar>>
getXDotDot()
const;
257 virtual Teuchos::RCP<const Thyra::MultiVectorBase<Scalar>>
getDXDotDotDp()
261 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar>>
getG()
const;
263 virtual Teuchos::RCP<const Thyra::MultiVectorBase<Scalar>>
getDgDp()
const;
278 void describe(Teuchos::FancyOStream &out,
279 const Teuchos::EVerbosityLevel verbLevel)
const override;
286 Teuchos::RCP<Thyra::ModelEvaluator<Scalar>>
model_;
309template <
class Scalar>
310Teuchos::RCP<IntegratorForwardSensitivity<Scalar>>
312 Teuchos::RCP<Teuchos::ParameterList> pList,
332template <
class Scalar>
333Teuchos::RCP<IntegratorForwardSensitivity<Scalar>>
335 Teuchos::RCP<Teuchos::ParameterList> pList,
340 sens_residual_model);
357template <
class Scalar>
358Teuchos::RCP<IntegratorForwardSensitivity<Scalar>>
360 Teuchos::RCP<Teuchos::ParameterList> pList,
375template <
class Scalar>
376Teuchos::RCP<IntegratorForwardSensitivity<Scalar>>
Time integrator implementing forward sensitivity analysis.
Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > model_
virtual Teuchos::RCP< const TimeStepControl< Scalar > > getTimeStepControl() const override
Get the TimeStepControl.
virtual void checkTimeStep()
Check if time step has passed or failed.
virtual Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > getDXDotDp() const
virtual void setStepper(Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > model)
Set the Stepper.
Teuchos::RCP< SensitivityModelEvaluatorBase< Scalar > > sens_model_
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...
SensitivityStepMode getStepMode() const
What mode the current time integration step is in.
virtual void initializeSolutionHistory(Teuchos::RCP< SolutionState< Scalar > > state=Teuchos::null)
Set the initial state which has the initial conditions.
virtual Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > getDxDp() const
Get the forward sensitivities .
bool use_combined_method_
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getX() const
Get the current solution, x, only. If looking for the solution vector and the sensitivities,...
virtual void startIntegrator()
Perform tasks before start of integrator.
virtual Teuchos::RCP< Teuchos::Time > getIntegratorTimer() const override
Returns the IntegratorTimer_ for this Integrator.
virtual Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > getDXDotDotDp() const
virtual void initialize()
Initializes the Integrator after set* function calls.
virtual Teuchos::RCP< Teuchos::Time > getStepperTimer() const override
virtual void setTimeStepControl(Teuchos::RCP< TimeStepControl< Scalar > > tsc=Teuchos::null)
Set the TimeStepControl.
virtual void endIntegrator()
Perform tasks after end of integrator.
void parseScreenOutput()
Parse when screen output should be executed.
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getG() const
Return response function g.
virtual Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > getDgDp() const
Return forward sensitivity stored in Jacobian format.
virtual Teuchos::RCP< IntegratorObserver< Scalar > > getObserver()
Get the Observer.
virtual int getIndex() const override
Get current index.
Teuchos::RCP< IntegratorBasic< Scalar > > integrator_
Teuchos::RCP< StepperStaggeredForwardSensitivity< Scalar > > sens_stepper_
virtual Teuchos::RCP< Stepper< Scalar > > getStepper() const override
Get the Stepper.
virtual void setStepper(Teuchos::RCP< Stepper< Scalar > > stepper)
Set the Stepper.
virtual Teuchos::RCP< SolutionState< Scalar > > getCurrentState()
Get current state.
virtual Teuchos::RCP< const SolutionHistory< Scalar > > getSolutionHistory() const override
Get the SolutionHistory.
virtual Status getStatus() const override
Get Status.
std::string description() const override
virtual Teuchos::RCP< SolutionHistory< Scalar > > getNonConstSolutionHistory() override
Get the SolutionHistory.
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const override
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 void setSolutionHistory(Teuchos::RCP< SolutionHistory< Scalar > > sh=Teuchos::null)
Set the SolutionHistory.
virtual void startTimeStep()
Start time step.
virtual Scalar getTime() const override
Get current time.
virtual bool advanceTime()
Advance the solution to timeMax, and return true if successful.
IntegratorForwardSensitivity()
Destructor.
virtual void setObserver(Teuchos::RCP< IntegratorObserver< Scalar > > obs=Teuchos::null)
Set the Observer.
virtual ~IntegratorForwardSensitivity()
Destructor.
virtual void setStatus(const Status st) override
Set the Status.
virtual Teuchos::RCP< TimeStepControl< Scalar > > getNonConstTimeStepControl() override
virtual bool advanceTime(const Scalar timeFinal) override
Advance the solution to timeFinal, and return true if successful.
IntegratorObserver class for time integrators.
Thyra Base interface for time integrators. Time integrators are designed to advance the solution from...
A ModelEvaluator decorator for sensitivity analysis.
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
Solution state for integrators and steppers.
A stepper implementing staggered forward sensitivity analysis.
Thyra Base interface for time steppers.
TimeStepControl manages the time step size. There several mechanisms that effect the time step size a...
Status
Status for the Integrator, the Stepper and the SolutionState.
Teuchos::RCP< IntegratorForwardSensitivity< Scalar > > createIntegratorForwardSensitivity()
Nonmember constructor.