9 #ifndef Tempus_Stepper_decl_hpp
10 #define Tempus_Stepper_decl_hpp
13 #include "Teuchos_TimeMonitor.hpp"
16 #include "Thyra_ModelEvaluator.hpp"
17 #include "Thyra_NonlinearSolverBase.hpp"
20 #include "Tempus_config.hpp"
21 #include "Tempus_SolutionHistory.hpp"
66 template<
class Scalar>
68 :
virtual public Teuchos::Describable,
69 virtual public Teuchos::VerboseObject<Stepper<Scalar> >,
70 virtual public Teuchos::ParameterListAcceptor
77 const Teuchos::RCP<
const Thyra::ModelEvaluator<Scalar> >& appModel) = 0;
79 const Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >& appModel) = 0;
80 virtual Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >
getModel() = 0;
83 virtual void setSolver(std::string solverName) = 0;
86 Teuchos::RCP<Teuchos::ParameterList> solverPL=Teuchos::null) = 0;
89 Teuchos::RCP<Thyra::NonlinearSolverBase<Scalar> > solver) = 0;
91 virtual Teuchos::RCP<Thyra::NonlinearSolverBase<Scalar> >
96 Teuchos::RCP<StepperObserver<Scalar> > obs = Teuchos::null) = 0;
112 Teuchos::RCP<
const Thyra::VectorBase<Scalar> > initial_guess = Teuchos::null) = 0;
116 virtual Teuchos::RCP<Tempus::StepperState<Scalar> >
118 virtual Scalar
getOrder()
const = 0;
122 const Teuchos::RCP<SolutionHistory<Scalar> >&
solutionHistory)
const = 0;
151 std::vector<Teuchos::RCP<
const Thyra::ModelEvaluator<Scalar> > > ){}
162 const Teuchos::RCP<
const Thyra::ModelEvaluator<Scalar> >& model)
const;
170 const Teuchos::RCP<
const Thyra::ModelEvaluator<Scalar> >& model)
const;
174 const Teuchos::RCP<
const Thyra::ModelEvaluator<Scalar> >& model)
const;
178 const Teuchos::RCP<
const Thyra::ModelEvaluator<Scalar> >& model)
const;
185 #endif // Tempus_Stepper_decl_hpp
virtual void setObserver(Teuchos::RCP< StepperObserver< Scalar > > obs=Teuchos::null)=0
Set Observer.
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 Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > getModel()=0
void validSecondOrderODE_DAE(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model) const
Validate ME supports 2nd order implicit ODE/DAE evaluation, f(xdotdot,xdot,x,t) [= 0]...
virtual OrderODE getOrderODE() const =0
virtual std::string getStepperType() const =0
virtual void modelWarning() const
Teuchos::RCP< Teuchos::ParameterList > defaultSolverParameters() const
virtual std::string getICConsistency() const =0
virtual bool isExplicit() const =0
void validSecondOrderExplicitODE(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model) const
Validate that the model supports explicit second order ODE evaluation, f(x,xdot,t) [=xdotdot]...
virtual void setModel(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &appModel)=0
virtual bool isOneStepMethod() const =0
virtual void setInitialGuess(Teuchos::RCP< const Thyra::VectorBase< Scalar > > initial_guess=Teuchos::null)=0
Pass initial guess to Newton solver (for implicit schemes)
virtual void initialize()=0
Initialize during construction and after changing input parameters.
virtual void setSolver(std::string solverName)=0
Set solver via ParameterList solver name.
virtual Scalar getOrderMin() const =0
virtual bool isMultiStepMethod() const =0
Stepper integrates second-order ODEs.
void getValidParametersBasic(Teuchos::RCP< Teuchos::ParameterList > pl) const
virtual Scalar getInitTimeStep(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory) const =0
void validImplicitODE_DAE(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model) const
Validate ME supports implicit ODE/DAE evaluation, f(xdot,x,t) [= 0].
Teuchos::RCP< SolutionHistory< Scalar > > solutionHistory(Teuchos::RCP< Teuchos::ParameterList > pList=Teuchos::null)
Nonmember constructor.
virtual Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > getSolver() const =0
Get solver.
virtual void setUseFSAL(bool a)=0
void validExplicitODE(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model) const
Validate that the model supports explicit ODE evaluation, f(x,t) [=xdot].
virtual void setNonConstModel(const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &appModel)=0
virtual Teuchos::RCP< Tempus::StepperState< Scalar > > getDefaultStepperState()=0
Stepper integrates first-order ODEs.
virtual void setInitialConditions(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory)=0
Set initial conditions, make them consistent, and set stepper memory.
virtual bool getICConsistencyCheck() const =0
virtual Teuchos::RCP< Teuchos::ParameterList > getDefaultParameters() const =0
virtual bool getUseFSAL() const =0
virtual void setICConsistencyCheck(bool c)=0
virtual bool isImplicit() const =0
virtual void createSubSteppers(std::vector< Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > >)
virtual void setICConsistency(std::string s)=0
virtual bool isExplicitImplicit() const =0
virtual Scalar getOrder() const =0