9 #ifndef Tempus_IntegratorAdjointSensitivity_decl_hpp 10 #define Tempus_IntegratorAdjointSensitivity_decl_hpp 13 #include "Tempus_config.hpp" 14 #include "Tempus_IntegratorBasic.hpp" 15 #include "Tempus_AdjointAuxSensitivityModelEvaluator.hpp" 49 template<
class Scalar>
120 const bool g_depends_on_p,
121 const bool f_depends_on_p,
122 const bool ic_depends_on_p,
123 const bool mass_matrix_is_identity);
137 virtual bool advanceTime(
const Scalar timeFinal)
override;
139 virtual Scalar
getTime()
const override;
141 virtual int getIndex()
const override;
147 virtual Teuchos::RCP<Stepper<Scalar> >
getStepper()
const override;
152 virtual Teuchos::RCP<const SolutionHistory<Scalar> >
getSolutionHistory()
const override;
156 virtual Teuchos::RCP<const TimeStepControl<Scalar> >
getTimeStepControl()
const override;
183 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar> >
getX()
const;
185 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar> >
getXDot()
const;
187 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar> >
getXDotDot()
const;
190 virtual Teuchos::RCP<const Thyra::MultiVectorBase<Scalar> >
getDgDp()
const;
195 void describe(Teuchos::FancyOStream & out,
196 const Teuchos::EVerbosityLevel verbLevel)
const override;
202 Teuchos::RCP<AdjointAuxSensitivityModelEvaluator<Scalar> >
206 const Teuchos::RCP<Teuchos::ParameterList>& inputPL);
212 Teuchos::RCP<Thyra::ModelEvaluator<Scalar>>
model_;
224 Teuchos::RCP<const Thyra::MultiVectorBase<Scalar>>
dxdp_init_;
225 Teuchos::RCP<Thyra::MultiVectorBase<Scalar>>
dgdp_;
245 template <
class Scalar>
246 Teuchos::RCP<IntegratorAdjointSensitivity<Scalar>>
248 Teuchos::RCP<Teuchos::ParameterList> pList,
253 template<
class Scalar>
254 Teuchos::RCP<IntegratorAdjointSensitivity<Scalar> >
259 #endif // Tempus_IntegratorAdjointSensitivity_decl_hpp void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const override
Teuchos::RCP< Thyra::MultiVectorBase< Scalar > > dgdp_
virtual Teuchos::RCP< TimeStepControl< Scalar > > getNonConstTimeStepControl() override
Teuchos::RCP< IntegratorAdjointSensitivity< Scalar > > createIntegratorAdjointSensitivity(Teuchos::RCP< Teuchos::ParameterList > pList, const Teuchos::RCP< Thyra::ModelEvaluator< Scalar >> &model, const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &adjoint_model=Teuchos::null)
Nonmember constructor.
virtual Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > getDgDp() const
Return adjoint sensitivity stored in gradient format.
virtual void setStatus(const Status st) override
Set Status.
Teuchos::RCP< AdjointAuxSensitivityModelEvaluator< Scalar > > adjoint_aux_model_
virtual Teuchos::RCP< SolutionHistory< Scalar > > getNonConstSolutionHistory() override
Get the SolutionHistory.
ModelEvaluator for forming adjoint sensitivity equations.
virtual Teuchos::RCP< Teuchos::Time > getStepperTimer() const override
Teuchos::RCP< SolutionHistory< Scalar > > solutionHistory_
void buildSolutionHistory(const Teuchos::RCP< const SolutionHistory< Scalar > > &state_solution_history, const Teuchos::RCP< const SolutionHistory< Scalar > > &adjoint_solution_history)
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getX() const
Get current the solution, x.
Teuchos::RCP< IntegratorBasic< Scalar > > adjoint_integrator_
virtual Teuchos::RCP< Teuchos::Time > getIntegratorTimer() const override
Returns the IntegratorTimer_ for this Integrator.
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getXDot() const
Get current the time derivative of the solution, xdot.
std::string description() const override
virtual Teuchos::RCP< const SolutionHistory< Scalar > > getSolutionHistory() const override
Get the SolutionHistory.
Status
Status for the Integrator, the Stepper and the SolutionState.
Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > dxdp_init_
virtual Teuchos::RCP< Teuchos::ParameterList > getTempusParameterList() override
Return a copy of the Tempus ParameterList.
IntegratorObserver class for time integrators.
virtual void initializeSolutionHistory(Scalar t0, Teuchos::RCP< const Thyra::VectorBase< Scalar > > x0, Teuchos::RCP< const Thyra::VectorBase< Scalar > > xdot0=Teuchos::null, Teuchos::RCP< const Thyra::VectorBase< Scalar > > xdotdot0=Teuchos::null, Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > DxDp0=Teuchos::null, Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > DxdotDp0=Teuchos::null, Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > DxdotdotDp0=Teuchos::null)
Set the initial state from Thyra::VectorBase(s)
virtual Teuchos::RCP< const TimeStepControl< Scalar > > getTimeStepControl() const override
Get the TimeStepControl.
virtual void setTempusParameterList(Teuchos::RCP< Teuchos::ParameterList > pl) override
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
virtual bool advanceTime()
Advance the solution to timeMax, and return true if successful.
virtual void setObserver(Teuchos::RCP< IntegratorObserver< Scalar > > obs=Teuchos::null)
Set the Observer.
Teuchos::RCP< IntegratorBasic< Scalar > > state_integrator_
Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > model_
virtual ~IntegratorAdjointSensitivity()
Destructor.
Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > adjoint_model_
Thyra Base interface for time integrators. Time integrators are designed to advance the solution from...
Time integrator suitable for adjoint sensitivity analysis.
virtual int getIndex() const override
Get current index.
Teuchos::RCP< AdjointAuxSensitivityModelEvaluator< Scalar > > createAdjointModel(const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &model, const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &adjoint_model, const Teuchos::RCP< Teuchos::ParameterList > &inputPL)
bool mass_matrix_is_identity_
virtual Scalar getTime() const override
Get current time.
virtual Status getStatus() const override
Get Status.
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getXDotDot() const
Get current the second time derivative of the solution, xdotdot.
virtual void initialize()
Initializes the Integrator after set* function calls.
virtual Teuchos::RCP< Stepper< Scalar > > getStepper() const override
Get the Stepper.
IntegratorAdjointSensitivity()
Constructor that requires a subsequent setParameterList, setStepper, and initialize calls...