10 #ifndef Tempus_IntegratorPseudoTransientAdjointSensitivity_decl_hpp
11 #define Tempus_IntegratorPseudoTransientAdjointSensitivity_decl_hpp
13 #include "Tempus_config.hpp"
14 #include "Tempus_IntegratorBasic.hpp"
15 #include "Tempus_AdjointSensitivityModelEvaluator.hpp"
17 #include "Tempus_StepperStaggeredForwardSensitivity.hpp"
58 template <
class Scalar>
96 adjoint_residual_model,
104 adjoint_residual_model,
106 std::string stepperType);
120 std::string stepperType);
140 std::string stepperType);
156 virtual bool advanceTime(
const Scalar timeFinal)
override;
158 virtual Scalar
getTime()
const override;
160 virtual int getIndex()
const override;
268 adjoint_residual_model,
289 template <
class Scalar>
296 template <
class Scalar>
300 std::string stepperType);
303 template <
class Scalar>
311 template <
class Scalar>
316 std::string stepperType);
319 template <
class Scalar>
328 template <
class Scalar>
334 std::string stepperType);
337 template <
class Scalar>
343 #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_