9 #ifndef Tempus_IntegratorBasic_decl_hpp
10 #define Tempus_IntegratorBasic_decl_hpp
13 #include "Teuchos_VerboseObject.hpp"
14 #include "Teuchos_Describable.hpp"
15 #include "Teuchos_ParameterList.hpp"
16 #include "Teuchos_Time.hpp"
18 #include "Thyra_ModelEvaluator.hpp"
19 #include "Thyra_NonlinearSolverBase.hpp"
21 #include "Tempus_Stepper.hpp"
23 #include "Tempus_TimeStepControl.hpp"
24 #include "Tempus_IntegratorObserverBasic.hpp"
25 #include "Tempus_IntegratorObserverComposite.hpp"
34 template<
class Scalar>
41 Teuchos::RCP<Teuchos::ParameterList> pList,
42 const Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >& model);
46 const Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >& model,
47 std::string stepperType);
54 Teuchos::RCP<Teuchos::ParameterList> pList,
55 std::vector<Teuchos::RCP<
const Thyra::ModelEvaluator<Scalar> > > models);
65 virtual bool advanceTime(
const Scalar timeFinal)
override;
78 Teuchos::RCP<Teuchos::ParameterList> pl)
override
81 if (pl != Teuchos::null) *
tempusPL_ = *pl;
98 virtual Teuchos::RCP<Stepper<Scalar> >
getStepper()
const override
101 virtual void setStepper(Teuchos::RCP<
const Thyra::ModelEvaluator<Scalar> > model);
104 std::vector<Teuchos::RCP<
const Thyra::ModelEvaluator<Scalar> > > models);
112 Teuchos::RCP<
const Thyra::VectorBase<Scalar> > x0,
113 Teuchos::RCP<
const Thyra::VectorBase<Scalar> > xdot0 = Teuchos::null,
114 Teuchos::RCP<
const Thyra::VectorBase<Scalar> > xdotdot0 = Teuchos::null);
130 virtual Teuchos::RCP<IntegratorObserverComposite<Scalar> >
getObserver()
145 virtual Teuchos::RCP<Thyra::VectorBase<Scalar> >
getX()
const
148 virtual Teuchos::RCP<Thyra::VectorBase<Scalar> >
getXdot()
const
151 virtual Teuchos::RCP<Thyra::VectorBase<Scalar> >
getXdotdot()
const
168 {
return integratorPL_->get<
int>(
"Screen Output Index Interval"); }
174 {
return integratorPL_->get<std::string>(
"Screen Output Index List",
""); }
193 void describe(Teuchos::FancyOStream & out,
194 const Teuchos::EVerbosityLevel verbLevel)
const override;
221 template<
class Scalar>
223 Teuchos::RCP<Teuchos::ParameterList> pList,
224 const Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >& model);
227 template<
class Scalar>
229 const Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >& model,
230 std::string stepperType);
233 template<
class Scalar>
237 template<
class Scalar>
239 Teuchos::RCP<Teuchos::ParameterList> pList,
240 std::vector<Teuchos::RCP<
const Thyra::ModelEvaluator<Scalar> > > models);
virtual Teuchos::RCP< Thyra::VectorBase< Scalar > > getXdotdot() const
Get current the second time derivative of the solution, xdotdot.
virtual void checkTimeStep()
Check if time step has passed or failed.
virtual Teuchos::RCP< TimeStepControl< Scalar > > getNonConstTimeStepControl() override
std::vector< int > outputScreenIndices_
Vector of screen output indices.
virtual void initializeSolutionHistory(Teuchos::RCP< SolutionState< Scalar > > state=Teuchos::null)
Set the initial state which has the initial conditions.
virtual void setSolutionHistory(Teuchos::RCP< SolutionHistory< Scalar > > sh=Teuchos::null)
Set the SolutionHistory.
virtual void startIntegrator()
Perform tasks before start of integrator.
std::string description() const override
virtual void setStepper(Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > model)
Set the Stepper.
virtual Teuchos::RCP< Thyra::VectorBase< Scalar > > getX() const
Get current the solution, x.
virtual Status getStatus() const override
Get Status.
virtual Teuchos::RCP< Teuchos::Time > getStepperTimer() const override
virtual std::string getScreenOutputIndexList() const
Teuchos::RCP< Teuchos::ParameterList > integratorPL_
Teuchos::RCP< TimeStepControl< Scalar > > timeStepControl_
void setParameterList(const Teuchos::RCP< Teuchos::ParameterList > &pl) override
Teuchos::RCP< SolutionHistory< Scalar > > solutionHistory_
Teuchos::RCP< Teuchos::ParameterList > tempusPL_
virtual void setScreenOutputIndexList(std::string s)
virtual Scalar getTime() const override
Get current time.
void parseScreenOutput()
Parse when screen output should be executed.
virtual void setTempusParameterList(Teuchos::RCP< Teuchos::ParameterList > pl) override
virtual void setScreenOutputIndexInterval(int i)
Teuchos::RCP< Teuchos::ParameterList > getIntegratorParameterList()
virtual void setTimeStepControl(Teuchos::RCP< TimeStepControl< Scalar > > tsc=Teuchos::null)
Set the TimeStepControl.
virtual void initialize()
Initializes the Integrator after set* function calls.
virtual Teuchos::RCP< Teuchos::ParameterList > getTempusParameterList() override
Return a copy of the Tempus ParameterList.
virtual void endIntegrator()
Perform tasks after end of integrator.
virtual Teuchos::RCP< Thyra::VectorBase< Scalar > > getXdot() const
Get current the time derivative of the solution, xdot.
IntegratorBasic()
Constructor that requires a subsequent setParameterList, setStepper, and initialize calls.
virtual void startTimeStep()
Start time step.
Teuchos::RCP< Teuchos::ParameterList > getNonconstParameterList() override
virtual Teuchos::RCP< Teuchos::Time > getIntegratorTimer() const override
Returns the IntegratorTimer_ for this Integrator.
virtual Teuchos::RCP< Stepper< Scalar > > getStepper() const override
Get the Stepper.
virtual int getIndex() const override
Get current index.
virtual Teuchos::RCP< IntegratorObserverComposite< Scalar > > getObserver()
Get the Observer.
Teuchos::RCP< Teuchos::Time > integratorTimer_
virtual void setStepperWStepper(Teuchos::RCP< Stepper< Scalar > > stepper)
Set the Stepper.
virtual Teuchos::RCP< const TimeStepControl< Scalar > > getTimeStepControl() const override
Get the TimeStepControl.
virtual int getScreenOutputIndexInterval() const
Teuchos::RCP< Teuchos::ParameterList > unsetParameterList() override
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const override
Create valid IntegratorBasic ParameterList.
Teuchos::RCP< Stepper< Scalar > > stepper_
virtual Teuchos::RCP< SolutionState< Scalar > > getCurrentState()
Get current state.
virtual Teuchos::RCP< const SolutionHistory< Scalar > > getSolutionHistory() const override
Get the SolutionHistory.
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const override
Teuchos::RCP< Teuchos::Time > stepperTimer_
Teuchos::RCP< IntegratorObserverComposite< Scalar > > integratorObserver_
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.
virtual ~IntegratorBasic()
Destructor.
IntegratorObserver class for time integrators.
Thyra Base interface for time integrators. Time integrators are designed to advance the solution from...
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
Solution state for integrators and steppers. SolutionState contains the metadata for solutions and th...
Thyra Base interface for time steppers.
TimeStepControl manages the time step size. There several mechanicisms that effect the time step size...
Status
Status for the Integrator, the Stepper and the SolutionState.
Teuchos::RCP< IntegratorBasic< Scalar > > integratorBasic(Teuchos::RCP< Teuchos::ParameterList > pList, const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &model)
Non-member constructor.