9 #ifndef Tempus_Stepper_decl_hpp 10 #define Tempus_Stepper_decl_hpp 12 #include "Teuchos_TimeMonitor.hpp" 14 #include "Thyra_ModelEvaluator.hpp" 15 #include "Thyra_NonlinearSolverBase.hpp" 17 #include "Tempus_config.hpp" 18 #include "Tempus_SolutionHistory.hpp" 56 template<
class Scalar>
58 :
virtual public Teuchos::Describable,
59 virtual public Teuchos::VerboseObject<Stepper<Scalar> >
68 #ifndef TEMPUS_HIDE_DEPRECATED_CODE 73 virtual Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >
getModel()
const 74 {
return Teuchos::null; }
78 Teuchos::RCP<Thyra::NonlinearSolverBase<Scalar> > solver) {}
81 virtual Teuchos::RCP<Thyra::NonlinearSolverBase<Scalar> >
getSolver()
const 82 {
return Teuchos::null; }
103 initialGuess = Teuchos::null) = 0;
105 virtual Teuchos::RCP<Tempus::StepperState<Scalar> >
107 virtual Scalar
getOrder()
const = 0;
164 virtual Teuchos::RCP<Thyra::VectorBase<Scalar> >
getStepperX();
167 virtual Teuchos::RCP<Thyra::VectorBase<Scalar> >
getStepperXDot();
184 virtual void describe(Teuchos::FancyOStream & out,
185 const Teuchos::EVerbosityLevel verbLevel)
const;
188 virtual bool isValidSetup(Teuchos::FancyOStream & out)
const;
236 template<
class Scalar>
245 template<
class Scalar>
250 template<
class Scalar>
255 template<
class Scalar>
265 #endif // Tempus_Stepper_decl_hpp Teuchos::RCP< Teuchos::ParameterList > getValidParametersBasic() const
Add basic parameters to Steppers ParameterList.
virtual bool isInitialized()
True if stepper's member data is initialized.
virtual Scalar getOrderMax() const =0
virtual void takeStep(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory)=0
Take the specified timestep, dt, and return true if successful.
virtual OrderODE getOrderODE() const =0
virtual Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > getSolver() const
Get solver.
virtual void setNonConstModel(const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &)
std::string getICConsistency() const
virtual bool isValidSetup(Teuchos::FancyOStream &out) const
std::string getStepperType() const
Get the stepper type. The stepper type is used as an identifier for the stepper, and can only be set ...
virtual void setSolver(Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > solver)
Set solver.
void setStepperName(std::string s)
Set the stepper name.
virtual bool isExplicit() const =0
Teuchos::RCP< Teuchos::ParameterList > defaultSolverParameters()
Returns the default solver ParameterList for implicit Steppers.
virtual void setStepperXDot(Teuchos::RCP< Thyra::VectorBase< Scalar > > xDot)
Set xDot for Stepper storage.
void validExplicitODE(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model)
Validate that the model supports explicit ODE evaluation, f(x,t) [=xdot].
virtual void initialize()
Initialize after construction and changing input parameters.
bool isInitialized_
True if stepper's member data is initialized.
virtual bool isOneStepMethod() const =0
virtual Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
std::string stepperName_
Name used for output and ParameterLists.
virtual void setModel(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &appModel)
virtual void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
virtual Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > getModel() const
virtual Scalar getOrderMin() const =0
virtual bool isMultiStepMethod() const =0
void setUseFSALFalseOnly(bool a)
std::string getStepperName() const
Get the stepper name.
Stepper integrates second-order ODEs.
virtual void checkInitialized()
Check initialization, and error out on failure.
Teuchos::RCP< Thyra::VectorBase< Scalar > > stepperXDot_
void setUseFSALTrueOnly(bool a)
bool useFSAL_
Use First-Same-As-Last (FSAL) principle.
virtual void setStepperX(Teuchos::RCP< Thyra::VectorBase< Scalar > > x)
Set x for Stepper storage.
virtual Scalar getInitTimeStep(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory) const =0
virtual void setInitialGuess(Teuchos::RCP< const Thyra::VectorBase< Scalar > > initialGuess=Teuchos::null)=0
Pass initial guess to Newton solver (for implicit schemes)
void setICConsistencyCheck(bool c)
Teuchos::RCP< Thyra::VectorBase< Scalar > > stepperXDotDot_
virtual Teuchos::RCP< Thyra::VectorBase< Scalar > > getStepperX()
Get Stepper x.
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
virtual void setStepperXDotDot(Teuchos::RCP< Thyra::VectorBase< Scalar > > xDotDot)
Set x for Stepper storage.
void setStepperValues(const Teuchos::RCP< Teuchos::ParameterList > pl)
Set Stepper member data from ParameterList.
virtual Teuchos::RCP< Tempus::StepperState< Scalar > > getDefaultStepperState()=0
std::string ICConsistency_
Type of consistency to apply to ICs.
Stepper integrates first-order ODEs.
virtual std::string description() const
void validSecondOrderExplicitODE(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model)
Validate that the model supports explicit second order ODE evaluation, f(x,xdot,t) [=xdotdot]...
virtual void setInitialConditions(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory)=0
Set initial conditions, make them consistent, and set stepper memory.
void validSecondOrderODE_DAE(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model)
Validate ME supports 2nd order implicit ODE/DAE evaluation, f(xdotdot,xdot,x,t) [= 0]...
bool ICConsistencyCheck_
Check if the initial condition is consistent.
virtual Teuchos::RCP< Thyra::VectorBase< Scalar > > getStepperXDotDot()
Get Stepper xDotDot.
Teuchos::RCP< Thyra::VectorBase< Scalar > > stepperX_
std::string stepperType_
Name of stepper type.
bool getICConsistencyCheck() const
virtual void setUseFSAL(bool a)
void validImplicitODE_DAE(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model)
Validate ME supports implicit ODE/DAE evaluation, f(xdot,x,t) [= 0].
virtual bool isImplicit() const =0
void setStepperType(std::string s)
Set the stepper type.
Solution state for integrators and steppers. SolutionState contains the metadata for solutions and th...
virtual bool isExplicitImplicit() const =0
virtual Teuchos::RCP< Thyra::VectorBase< Scalar > > getStepperXDot()
Get Stepper xDot.
virtual Scalar getOrder() const =0
void setICConsistency(std::string s)