9#ifndef Tempus_IntegratorForwardSensitivity_decl_hpp
10#define Tempus_IntegratorForwardSensitivity_decl_hpp
13#include "Tempus_config.hpp"
14#include "Tempus_IntegratorBasic.hpp"
16#include "Tempus_StepperStaggeredForwardSensitivity.hpp"
97 const bool use_combined_method);
144 virtual Teuchos::RCP<Stepper<Scalar> >
getStepper()
const override
173 {
return integrator_->getNonConstSolutionHistory(); }
182 {
return integrator_->getNonConstTimeStepControl(); }
212 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar> >
getX()
const;
215 virtual Teuchos::RCP<const Thyra::MultiVectorBase<Scalar> >
getDxDp()
const;
222 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar> >
getXDot()
const;
223 virtual Teuchos::RCP<const Thyra::MultiVectorBase<Scalar> >
getDXDotDp()
const;
232 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar> >
getXDotDot()
const;
233 virtual Teuchos::RCP<const Thyra::MultiVectorBase<Scalar> >
getDXDotDotDp()
const;
236 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar> >
getG()
const;
238 virtual Teuchos::RCP<const Thyra::MultiVectorBase<Scalar> >
getDgDp()
const;
251 void describe(Teuchos::FancyOStream & out,
252 const Teuchos::EVerbosityLevel verbLevel)
const override;
260 Teuchos::RCP<Thyra::ModelEvaluator<Scalar>>
model_;
283template <
class Scalar>
284Teuchos::RCP<IntegratorForwardSensitivity<Scalar>>
286 Teuchos::RCP<Teuchos::ParameterList> pList,
306template <
class Scalar>
307Teuchos::RCP<IntegratorForwardSensitivity<Scalar>>
309 Teuchos::RCP<Teuchos::ParameterList> pList,
314 pList, model, sens_residual_model, sens_residual_model);
331template <
class Scalar>
332Teuchos::RCP<IntegratorForwardSensitivity<Scalar>>
334 Teuchos::RCP<Teuchos::ParameterList> pList,
349template <
class Scalar>
350Teuchos::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. SolutionState contains the metadata for solutions and th...
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.