9 #ifndef Tempus_IntegratorForwardSensitivity_decl_hpp
10 #define Tempus_IntegratorForwardSensitivity_decl_hpp
13 #include "Tempus_IntegratorBasic.hpp"
15 #include "Tempus_StepperStaggeredForwardSensitivity.hpp"
45 template<
class Scalar>
83 Teuchos::RCP<Teuchos::ParameterList> pList,
84 const Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >& model);
88 const Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >& model,
89 std::string stepperType);
137 virtual Teuchos::RCP<Stepper<Scalar> >
getStepper()
const override
141 virtual void setStepper(Teuchos::RCP<Thyra::ModelEvaluator<Scalar> > model);
154 Teuchos::RCP<
const Thyra::VectorBase<Scalar> > x0,
155 Teuchos::RCP<
const Thyra::VectorBase<Scalar> > xdot0 = Teuchos::null,
156 Teuchos::RCP<
const Thyra::VectorBase<Scalar> > xdotdot0 = Teuchos::null,
157 Teuchos::RCP<
const Thyra::MultiVectorBase<Scalar> > DxDp0 = Teuchos::null,
158 Teuchos::RCP<
const Thyra::MultiVectorBase<Scalar> > DxdotDp0 = Teuchos::null,
159 Teuchos::RCP<
const Thyra::MultiVectorBase<Scalar> > DxdotdotDp0 = Teuchos::null);
191 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar> >
getX()
const;
192 virtual Teuchos::RCP<const Thyra::MultiVectorBase<Scalar> >
getDxDp()
const;
194 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar> >
getXdot()
const;
195 virtual Teuchos::RCP<const Thyra::MultiVectorBase<Scalar> >
getDxdotDp()
const;
197 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar> >
getXdotdot()
const;
198 virtual Teuchos::RCP<const Thyra::MultiVectorBase<Scalar> >
getDxdotdotDp()
const;
223 void describe(Teuchos::FancyOStream & out,
224 const Teuchos::EVerbosityLevel verbLevel)
const override;
232 const Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >& model);
234 Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >
model_;
245 template<
class Scalar>
246 Teuchos::RCP<Tempus::IntegratorForwardSensitivity<Scalar> >
248 Teuchos::RCP<Teuchos::ParameterList> pList,
249 const Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >& model);
252 template<
class Scalar>
253 Teuchos::RCP<Tempus::IntegratorForwardSensitivity<Scalar> >
255 const Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >& model,
256 std::string stepperType);
259 template<
class Scalar>
260 Teuchos::RCP<Tempus::IntegratorForwardSensitivity<Scalar> >
265 #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 bool advanceTime()
Advance the solution to timeMax, and return true if successful.
std::string description() const override
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getXdot() const
Get current the time derivative of the solution, xdot.
virtual void initializeSolutionHistory(Teuchos::RCP< SolutionState< Scalar > > state=Teuchos::null)
Set the initial state which has the initial conditions.
virtual Scalar getIndex() const override
Get current index.
virtual void setTimeStepControl(Teuchos::RCP< TimeStepControl< Scalar > > tsc=Teuchos::null)
Set the TimeStepControl.
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 setSolutionHistory(Teuchos::RCP< SolutionHistory< Scalar > > sh=Teuchos::null)
Set the SolutionHistory.
bool use_combined_method_
virtual Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > getDxdotDp() const
Teuchos::RCP< StepperStaggeredForwardSensitivity< Scalar > > sens_stepper_
virtual void setStepper(Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > model)
Set the Stepper.
Teuchos::RCP< Teuchos::ParameterList > unsetParameterList() override
virtual Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > getDxdotdotDp() const
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getXdotdot() const
Get current the second time derivative of the solution, xdotdot.
virtual Teuchos::RCP< SolutionState< Scalar > > getCurrentState()
Get current state.
virtual Status getStatus() const override
Get Status.
Teuchos::RCP< Teuchos::ParameterList > sens_pl_
virtual Teuchos::RCP< Teuchos::ParameterList > getTempusParameterList() override
Return a copy of the Tempus ParameterList.
Thyra Base interface for time steppers.
void createSensitivityModelAndStepper(const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &model)
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
virtual void initialize()
Initializes the Integrator after set* function calls.
virtual Teuchos::RCP< Stepper< Scalar > > getStepper() const override
Get the Stepper.
void setParameterList(const Teuchos::RCP< Teuchos::ParameterList > &pl) override
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 mechanicisms that effect the time step size...
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
Teuchos::RCP< Teuchos::ParameterList > stepper_pl_
virtual void startTimeStep()
Start time step.
Teuchos::RCP< Tempus::IntegratorForwardSensitivity< Scalar > > integratorForwardSensitivity(Teuchos::RCP< Teuchos::ParameterList > pList, const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &model)
Non-member constructor.
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getX() const
Get current the solution, x.
Thyra Base interface for time integrators. Time integrators are designed to advance the solution from...
virtual void setStepperWStepper(Teuchos::RCP< Stepper< Scalar > > stepper)
Set the Stepper.
virtual void setTempusParameterList(Teuchos::RCP< Teuchos::ParameterList > pl) override
virtual void setObserver(Teuchos::RCP< IntegratorObserver< Scalar > > obs=Teuchos::null)
Set the Observer.
Teuchos::RCP< Teuchos::ParameterList > tempus_pl_
Teuchos::RCP< SensitivityModelEvaluatorBase< Scalar > > sens_model_
Time integrator implementing forward sensitivity analysis.
virtual bool advanceTime(const Scalar timeFinal) override
Advance the solution to timeFinal, and return true if successful.
Solution state for integrators and steppers. SolutionState contains the metadata for solutions and th...
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const override
Teuchos::RCP< Teuchos::ParameterList > getNonconstParameterList() override