9 #ifndef Tempus_IntegratorPseudoTransientAdjointSensitivity_decl_hpp 10 #define Tempus_IntegratorPseudoTransientAdjointSensitivity_decl_hpp 12 #include "Tempus_config.hpp" 13 #include "Tempus_IntegratorBasicOld.hpp" 14 #include "Tempus_AdjointSensitivityModelEvaluator.hpp" 57 template<
class Scalar>
60 virtual public Teuchos::ParameterListAcceptor
90 Teuchos::RCP<Teuchos::ParameterList> pList,
98 std::string stepperType);
107 Teuchos::RCP<Teuchos::ParameterList> pList,
118 std::string stepperType);
133 virtual bool advanceTime(
const Scalar timeFinal)
override;
135 virtual Scalar
getTime()
const override;
137 virtual int getIndex()
const override;
143 virtual Teuchos::RCP<Stepper<Scalar> >
getStepper()
const override;
148 virtual Teuchos::RCP<const SolutionHistory<Scalar> >
getSolutionHistory()
const override;
152 virtual Teuchos::RCP<const TimeStepControl<Scalar> >
getTimeStepControl()
const override;
173 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar> >
getX()
const;
175 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar> >
getXDot()
const;
177 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar> >
getXDotDot()
const;
180 virtual Teuchos::RCP<const Thyra::MultiVectorBase<Scalar> >
getDgDp()
const;
196 void describe(Teuchos::FancyOStream & out,
197 const Teuchos::EVerbosityLevel verbLevel)
const override;
201 typedef Thyra::DefaultMultiVectorProductVector<Scalar>
DMVPV;
204 Teuchos::RCP<AdjointSensitivityModelEvaluator<Scalar> >
208 const Teuchos::RCP<Teuchos::ParameterList>& inputPL);
212 Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >
model_;
214 Teuchos::RCP<AdjointSensitivityModelEvaluator<Scalar> >
sens_model_;
222 template<
class Scalar>
223 Teuchos::RCP<Tempus::IntegratorPseudoTransientAdjointSensitivity<Scalar> >
225 Teuchos::RCP<Teuchos::ParameterList> pList,
229 template<
class Scalar>
230 Teuchos::RCP<Tempus::IntegratorPseudoTransientAdjointSensitivity<Scalar> >
233 std::string stepperType);
236 template<
class Scalar>
237 Teuchos::RCP<Tempus::IntegratorPseudoTransientAdjointSensitivity<Scalar> >
239 Teuchos::RCP<Teuchos::ParameterList> pList,
244 template<
class Scalar>
245 Teuchos::RCP<Tempus::IntegratorPseudoTransientAdjointSensitivity<Scalar> >
249 std::string stepperType);
252 template<
class Scalar>
253 Teuchos::RCP<Tempus::IntegratorPseudoTransientAdjointSensitivity<Scalar> >
258 #endif // Tempus_IntegratorPseudoTransientAdjointSensitivity_decl_hpp Teuchos::RCP< SolutionHistory< Scalar > > solutionHistory_
void setParameterList(const Teuchos::RCP< Teuchos::ParameterList > &pl) override
virtual Scalar getTime() const override
Get current time.
Teuchos::RCP< IntegratorBasicOld< Scalar > > state_integrator_
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 void setTempusParameterList(Teuchos::RCP< Teuchos::ParameterList > pl) override
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getXDotDot() const
Get current the second time derivative of the solution, xdotdot.
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
virtual Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > getDgDp() const
Return adjoint sensitivity stored in gradient format.
std::string description() const override
virtual Teuchos::RCP< SolutionHistory< Scalar > > getNonConstSolutionHistory() override
Get the SolutionHistory.
virtual Teuchos::RCP< Teuchos::Time > getStepperTimer() const override
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const override
Time integrator suitable for pseudotransient adjoint sensitivity analysis.
Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > model_
Teuchos::RCP< AdjointSensitivityModelEvaluator< Scalar > > createSensitivityModel(const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &model, const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &adjoint_model, const Teuchos::RCP< Teuchos::ParameterList > &inputPL)
virtual Teuchos::RCP< TimeStepControl< Scalar > > getNonConstTimeStepControl() override
Status
Status for the Integrator, the Stepper and the SolutionState.
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 ~IntegratorPseudoTransientAdjointSensitivity()
Destructor.
IntegratorPseudoTransientAdjointSensitivity()
Destructor.
Teuchos::RCP< IntegratorBasicOld< Scalar > > sens_integrator_
Teuchos::RCP< Teuchos::ParameterList > getNonconstParameterList() override
Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > adjoint_model_
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getXDot() const
Get current the time derivative of the solution, xdot.
virtual Teuchos::RCP< Teuchos::ParameterList > getTempusParameterList() override
Return a copy of the Tempus ParameterList.
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.
virtual Teuchos::RCP< const TimeStepControl< Scalar > > getTimeStepControl() const override
Get the TimeStepControl.
virtual bool advanceTime()
Advance the solution to timeMax, and return true if successful.
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getX() const
Get current the solution, x.
void buildSolutionHistory()
Teuchos::RCP< AdjointSensitivityModelEvaluator< Scalar > > sens_model_
Thyra::DefaultMultiVectorProductVector< Scalar > DMVPV
virtual Status getStatus() const override
Get Status.
Teuchos::RCP< DMVPV > dgdp_