9 #ifndef Tempus_IntegratorPseudoTransientForwardSensitivity_decl_hpp
10 #define Tempus_IntegratorPseudoTransientForwardSensitivity_decl_hpp
13 #include "Tempus_IntegratorBasic.hpp"
48 template<
class Scalar>
89 Teuchos::RCP<Teuchos::ParameterList> pList,
90 const Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >& model);
94 const Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >& model,
95 std::string stepperType);
110 virtual bool advanceTime(
const Scalar timeFinal)
override;
112 virtual Scalar
getTime()
const override;
114 virtual int getIndex()
const override;
118 virtual Teuchos::RCP<Stepper<Scalar> >
getStepper()
const override;
123 virtual Teuchos::RCP<const SolutionHistory<Scalar> >
getSolutionHistory()
const override;
125 virtual Teuchos::RCP<const TimeStepControl<Scalar> >
getTimeStepControl()
const override;
137 Teuchos::RCP<
const Thyra::VectorBase<Scalar> > x0,
138 Teuchos::RCP<
const Thyra::VectorBase<Scalar> > xdot0 = Teuchos::null,
139 Teuchos::RCP<
const Thyra::VectorBase<Scalar> > xdotdot0 = Teuchos::null,
140 Teuchos::RCP<
const Thyra::MultiVectorBase<Scalar> > DxDp0 = Teuchos::null,
141 Teuchos::RCP<
const Thyra::MultiVectorBase<Scalar> > DxdotDp0 = Teuchos::null,
142 Teuchos::RCP<
const Thyra::MultiVectorBase<Scalar> > DxdotdotDp0 = Teuchos::null);
145 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar> >
getX()
const;
146 virtual Teuchos::RCP<const Thyra::MultiVectorBase<Scalar> >
getDxDp()
const;
148 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar> >
getXdot()
const;
149 virtual Teuchos::RCP<const Thyra::MultiVectorBase<Scalar> >
getDxdotDp()
const;
151 virtual Teuchos::RCP<const Thyra::VectorBase<Scalar> >
getXdotdot()
const;
152 virtual Teuchos::RCP<const Thyra::MultiVectorBase<Scalar> >
getDxdotdotDp()
const;
168 void describe(Teuchos::FancyOStream & out,
169 const Teuchos::EVerbosityLevel verbLevel)
const override;
175 Teuchos::RCP<SensitivityModelEvaluatorBase<Scalar> >
177 const Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >& model,
178 const Teuchos::RCP<Teuchos::ParameterList>& inputPL);
182 Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >
model_;
192 template<
class Scalar>
193 Teuchos::RCP<Tempus::IntegratorPseudoTransientForwardSensitivity<Scalar> >
195 Teuchos::RCP<Teuchos::ParameterList> pList,
196 const Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >& model);
199 template<
class Scalar>
200 Teuchos::RCP<Tempus::IntegratorPseudoTransientForwardSensitivity<Scalar> >
202 const Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >& model,
203 std::string stepperType);
206 template<
class Scalar>
207 Teuchos::RCP<Tempus::IntegratorPseudoTransientForwardSensitivity<Scalar> >
212 #endif // Tempus_IntegratorPseudoTransientForwardSensitivity_decl_hpp
virtual Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > getDxdotDp() const
virtual Teuchos::RCP< Stepper< Scalar > > getStepper() const override
Get the Stepper.
virtual Status getStatus() const override
Get Status.
void setParameterList(const Teuchos::RCP< Teuchos::ParameterList > &pl) override
virtual Teuchos::RCP< Teuchos::Time > getStepperTimer() const override
virtual Teuchos::RCP< const SolutionHistory< Scalar > > getSolutionHistory() const override
Get the SolutionHistory.
virtual Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > getDxDp() const
virtual int getIndex() const override
Get current index.
virtual Teuchos::RCP< const Thyra::MultiVectorBase< Scalar > > getDxdotdotDp() const
Teuchos::RCP< Teuchos::ParameterList > getNonconstParameterList() override
virtual Teuchos::RCP< TimeStepControl< Scalar > > getNonConstTimeStepControl() override
Teuchos::RCP< Tempus::IntegratorPseudoTransientForwardSensitivity< Scalar > > integratorPseudoTransientForwardSensitivity(Teuchos::RCP< Teuchos::ParameterList > pList, const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &model)
Non-member constructor.
Teuchos::RCP< IntegratorBasic< Scalar > > state_integrator_
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 bool advanceTime()
Advance the solution to timeMax, and return true if successful.
virtual ~IntegratorPseudoTransientForwardSensitivity()
Destructor.
Teuchos::RCP< SolutionHistory< Scalar > > solutionHistory_
Status
Status for the Integrator, the Stepper and the SolutionState.
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
std::string description() const override
virtual Teuchos::RCP< Teuchos::ParameterList > getTempusParameterList() override
Return a copy of the Tempus ParameterList.
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const override
Teuchos::RCP< SensitivityModelEvaluatorBase< Scalar > > sens_model_
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getXdot() const
Get current the time derivative of the solution, xdot.
virtual Scalar getTime() const override
Get current time.
Teuchos::RCP< SensitivityModelEvaluatorBase< Scalar > > createSensitivityModel(const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &model, const Teuchos::RCP< Teuchos::ParameterList > &inputPL)
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getXdotdot() const
Get current the second time derivative of the solution, xdotdot.
IntegratorPseudoTransientForwardSensitivity()
Destructor.
Time integrator suitable for pseudotransient forward sensitivity analysis.
Thyra Base interface for time integrators. Time integrators are designed to advance the solution from...
virtual void setTempusParameterList(Teuchos::RCP< Teuchos::ParameterList > pl) override
void buildSolutionHistory()
Teuchos::RCP< Teuchos::ParameterList > unsetParameterList() override
virtual Teuchos::RCP< const TimeStepControl< Scalar > > getTimeStepControl() const override
Get the TimeStepControl.
Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > model_
Teuchos::RCP< IntegratorBasic< Scalar > > sens_integrator_
virtual Teuchos::RCP< const Thyra::VectorBase< Scalar > > getX() const
Get current the solution, x.