9 #ifndef Tempus_StepperOperatorSplit_decl_hpp
10 #define Tempus_StepperOperatorSplit_decl_hpp
12 #include "Tempus_config.hpp"
13 #include "Tempus_Stepper.hpp"
38 template<
class Scalar>
54 std::vector<Teuchos::RCP<
const Thyra::ModelEvaluator<Scalar> > > appModels,
55 Teuchos::RCP<Teuchos::ParameterList> pList);
60 const Teuchos::RCP<
const Thyra::ModelEvaluator<Scalar> >& appModel);
62 const Teuchos::RCP<Thyra::ModelEvaluator<Scalar> >& appModel);
63 virtual Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >
66 virtual void setSolver(std::string solverName);
68 Teuchos::RCP<Teuchos::ParameterList> solverPL=Teuchos::null);
70 Teuchos::RCP<Thyra::NonlinearSolverBase<Scalar> > solver);
71 virtual Teuchos::RCP<Thyra::NonlinearSolverBase<Scalar> >
getSolver()
const
72 {
return Teuchos::null; }
91 Teuchos::RCP<
const Thyra::VectorBase<Scalar> > ){}
94 {
return stepperPL_->get<std::string>(
"Stepper Type"); }
101 {
return stepperPL_->get<
int>(
"Minimum Order");}
103 {
return stepperPL_->get<
int>(
"Maximum Order");}
106 {
return Scalar(1.0e+99);}
117 typename std::vector<Teuchos::RCP<Stepper<Scalar> > >::const_iterator
120 if ( (*subStepperIter)->isExplicit() ) isExplicit =
true;
127 typename std::vector<Teuchos::RCP<Stepper<Scalar> > >::const_iterator
130 if ( (*subStepperIter)->isImplicit() ) isImplicit =
true;
139 typename std::vector<Teuchos::RCP<Stepper<Scalar> > >::const_iterator
142 if ( !(*subStepperIter)->isOneStepMethod() ) isOneStepMethod =
false;
152 {
return stepperPL_->get<
bool>(
"Use FSAL",
false);}
155 {
stepperPL_->set<std::string>(
"Initial Condition Consistency", s);}
157 {
return stepperPL_->get<std::string>(
"Initial Condition Consistency",
161 {
stepperPL_->set<
bool>(
"Initial Condition Consistency Check", c);}
163 {
return stepperPL_->get<
bool>(
"Initial Condition Consistency Check",
179 virtual void describe(Teuchos::FancyOStream & out,
180 const Teuchos::EVerbosityLevel verbLevel)
const;
193 bool useFSAL =
false)
195 stepper->setUseFSAL(useFSAL);
201 std::vector<Teuchos::RCP<
const Thyra::ModelEvaluator<Scalar> > > appModels);
215 #endif // Tempus_StepperOperatorSplit_decl_hpp
virtual std::string getICConsistency() const
virtual Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > getSolver() const
Get solver.
Teuchos::RCP< Teuchos::ParameterList > unsetParameterList()
virtual std::string getStepperType() const
virtual void setSolver(std::string solverName)
Set solver via ParameterList solver name.
virtual void setInitialGuess(Teuchos::RCP< const Thyra::VectorBase< Scalar > >)
Pass initial guess to Newton solver.
Teuchos::RCP< Teuchos::ParameterList > getNonconstParameterList()
virtual void setOrderMin(Scalar ord)
virtual Scalar getInitTimeStep(const Teuchos::RCP< SolutionHistory< Scalar > > &) const
virtual Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > getModel()
virtual void setObserver(Teuchos::RCP< StepperObserver< Scalar > > obs=Teuchos::null)
Set Observer.
std::vector< Teuchos::RCP< Stepper< Scalar > > > subStepperList_
virtual bool getICConsistencyCheck() const
virtual bool isOneStepMethod() const
virtual void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
virtual void clearStepperList()
virtual void setModel(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &appModel)
virtual void setNonConstModel(const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &appModel)
virtual void createSubSteppers(std::vector< Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > > appModels)
Take models and ParameterList and create subSteppers.
virtual Scalar getOrder() const
virtual Teuchos::RCP< Tempus::StepperState< Scalar > > getDefaultStepperState()
Get a default (initial) StepperState.
virtual bool isExplicit() const
virtual Scalar getOrderMax() const
void setParameterList(const Teuchos::RCP< Teuchos::ParameterList > &pl)
virtual void setOrder(Scalar ord)
virtual void setICConsistency(std::string s)
virtual void setUseFSAL(bool a)
Teuchos::RCP< Teuchos::ParameterList > stepperPL_
OperatorSplit stepper loops through the Stepper list.
Thyra Base interface for time steppers.
virtual void setOrderMax(Scalar ord)
virtual bool isMultiStepMethod() const
StepperOperatorSplit()
Default constructor.
Teuchos::RCP< SolutionState< Scalar > > tempState_
virtual bool isImplicit() const
virtual void setTempState(Teuchos::RCP< Tempus::SolutionState< Scalar >> state)
virtual bool isExplicitImplicit() const
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
StepperObserver class for Stepper class.
Teuchos::RCP< SolutionHistory< Scalar > > solutionHistory(Teuchos::RCP< Teuchos::ParameterList > pList=Teuchos::null)
Nonmember constructor.
virtual void setStepperList(std::vector< Teuchos::RCP< Stepper< Scalar > > > sl)
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
Teuchos::RCP< Teuchos::ParameterList > getDefaultParameters() const
Teuchos::RCP< StepperOperatorSplitObserver< Scalar > > stepperOSObserver_
virtual void setInitialConditions(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory)
Set the initial conditions and make them consistent.
Teuchos::RCP< SolutionHistory< Scalar > > OpSpSolnHistory_
Stepper integrates first-order ODEs.
virtual Scalar getOrderMin() const
virtual OrderODE getOrderODE() const
virtual void setICConsistencyCheck(bool c)
virtual std::string description() const
virtual void takeStep(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory)
Take the specified timestep, dt, and return true if successful.
virtual void initialize()
Initialize during construction and after changing input parameters.
Solution state for integrators and steppers. SolutionState contains the metadata for solutions and th...
virtual std::vector< Teuchos::RCP< Stepper< Scalar > > > getStepperList() const
virtual void addStepper(Teuchos::RCP< Stepper< Scalar > > stepper, bool useFSAL=false)
Add Stepper to subStepper list. In most cases, subSteppers cannot use xDotOld (thus the default)...
virtual bool getUseFSAL() const