9 #ifndef Tempus_IntegratorPseudoTransientAdjointSensitivity_decl_hpp
10 #define Tempus_IntegratorPseudoTransientAdjointSensitivity_decl_hpp
12 #include "Tempus_config.hpp"
13 #include "Tempus_IntegratorBasic.hpp"
14 #include "Tempus_AdjointSensitivityModelEvaluator.hpp"
16 #include "Tempus_StepperStaggeredForwardSensitivity.hpp"
57 template <
class Scalar>
95 adjoint_residual_model,
103 adjoint_residual_model,
105 std::string stepperType);
119 std::string stepperType);
139 std::string stepperType);
155 virtual bool advanceTime(
const Scalar timeFinal)
override;
157 virtual Scalar
getTime()
const override;
159 virtual int getIndex()
const override;
267 adjoint_residual_model,
288 template <
class Scalar>
295 template <
class Scalar>
299 std::string stepperType);
302 template <
class Scalar>
310 template <
class Scalar>
315 std::string stepperType);
318 template <
class Scalar>
327 template <
class Scalar>
333 std::string stepperType);
336 template <
class Scalar>
342 #endif // Tempus_IntegratorPseudoTransientAdjointSensitivity_decl_hpp
Teuchos::RCP< Stepper< Scalar > > getStateStepper() const
Teuchos::RCP< TimeStepControl< Scalar > > getSensNonConstTimeStepControl()
Teuchos::RCP< SolutionHistory< Scalar > > solutionHistory_
void setParameterList(const Teuchos::RCP< Teuchos::ParameterList > &pl) override
virtual Scalar getTime() const override
Get current time.
Teuchos::RCP< const SolutionHistory< Scalar > > getStateSolutionHistory() const
virtual Teuchos::RCP< Teuchos::Time > getIntegratorTimer() const override
Returns the IntegratorTimer_ for this Integrator.
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const override
virtual Teuchos::RCP< IntegratorObserver< Scalar > > getObserver()
Get the Observer.
virtual Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > getY() const
Get the current adjoint solution, y.
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getXDot() const
Get the current time derivative of the solution, xdot.
Teuchos::RCP< IntegratorBasic< Scalar > > sens_integrator_
Teuchos::RCP< Tempus::IntegratorPseudoTransientAdjointSensitivity< Scalar > > integratorPseudoTransientAdjointSensitivity(Teuchos::RCP< Teuchos::ParameterList > pList, const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &model)
Nonmember constructor.
Teuchos::RCP< Teuchos::ParameterList > unsetParameterList() override
void setDoAdjointIntegration(const bool f)
Set/get whether to do the adjoint integration.
virtual void setObserver(Teuchos::RCP< IntegratorObserver< Scalar > > obs=Teuchos::null)
Set the Observer.
bool do_adjoint_integration_
std::string description() const override
virtual Teuchos::RCP< SolutionHistory< Scalar > > getNonConstSolutionHistory() override
Get the SolutionHistory.
bool getDoAdjointIntegration() const
virtual Teuchos::RCP< Teuchos::Time > getStepperTimer() const override
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const override
virtual Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > getDgDp() const
Return adjoint sensitivity stored in gradient format.
bool do_forward_integration_
virtual Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > getYDot() const
Get the current time derivative of the adjoint solution, ydot.
Time integrator suitable for pseudotransient adjoint sensitivity analysis.
Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > model_
SensitivityStepMode getStepMode() const
What mode the current time integration step is in.
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getG() const
Return response function g.
Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > adjoint_residual_model_
void setDoForwardIntegration(const bool f)
Set/get whether to do the forward integration.
virtual Teuchos::RCP< TimeStepControl< Scalar > > getNonConstTimeStepControl() override
Status
Status for the Integrator, the Stepper and the SolutionState.
IntegratorObserver class for time integrators.
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getXDotDot() const
Get the current second time derivative of the solution, xdotdot.
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 > > y0=Teuchos::null, Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > ydot0=Teuchos::null, Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > ydotdot0=Teuchos::null)
Set the initial state from Thyra::VectorBase(s)
virtual Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > getYDotDot() const
Get the current second time derivative of the adjoint solution, ydotdot.
virtual ~IntegratorPseudoTransientAdjointSensitivity()
Destructor.
IntegratorPseudoTransientAdjointSensitivity()
Destructor.
Teuchos::RCP< Teuchos::ParameterList > getNonconstParameterList() override
Teuchos::RCP< Stepper< Scalar > > getSensStepper() const
Teuchos::RCP< TimeStepControl< Scalar > > getStateNonConstTimeStepControl()
virtual void setStatus(const Status st) override
Set Status.
virtual int getIndex() const override
Get current index.
Thyra Base interface for time integrators. Time integrators are designed to advance the solution from...
virtual Teuchos::RCP< Stepper< Scalar > > getStepper() const override
Get the Stepper.
virtual Teuchos::RCP< const SolutionHistory< Scalar > > getSolutionHistory() const override
Get the SolutionHistory.
SensitivityStepMode stepMode_
virtual Teuchos::RCP< const TimeStepControl< Scalar > > getTimeStepControl() const override
Get the TimeStepControl.
Teuchos::RCP< const SolutionHistory< Scalar > > getSensSolutionHistory() const
virtual bool advanceTime()
Advance the solution to timeMax, and return true if successful.
bool getDoForwardIntegration() const
void buildSolutionHistory()
Teuchos::RCP< AdjointSensitivityModelEvaluator< Scalar > > sens_model_
Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > adjoint_solve_model_
Teuchos::RCP< Thyra::VectorBase< Scalar > > g_
Teuchos::RCP< AdjointSensitivityModelEvaluator< Scalar > > createSensitivityModel(const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &model, const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &adjoint_residual_model, const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &adjoint_solve_model, const Teuchos::RCP< Teuchos::ParameterList > &inputPL)
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getX() const
Get the current solution, x.
Teuchos::RCP< IntegratorBasic< Scalar > > state_integrator_
Thyra::DefaultMultiVectorProductVector< Scalar > DMVPV
virtual Status getStatus() const override
Get Status.
Teuchos::RCP< DMVPV > dgdp_