10#ifndef Tempus_StepperOperatorSplit_decl_hpp
11#define Tempus_StepperOperatorSplit_decl_hpp
13#include "Tempus_config.hpp"
14#include "Tempus_Stepper.hpp"
62template <
class Scalar>
75 std::vector<Teuchos::RCP<
Stepper<Scalar>>> subStepperList,
bool useFSAL,
76 std::string ICConsistency,
bool ICConsistencyCheck,
int order,
77 int orderMin,
int orderMax,
86 virtual Teuchos::RCP<const Thyra::ModelEvaluator<Scalar>>
getModel()
const;
89 Teuchos::RCP<Thyra::NonlinearSolverBase<Scalar>> solver);
91 virtual Teuchos::RCP<Thyra::NonlinearSolverBase<Scalar>>
getSolver()
const
99 virtual Teuchos::RCP<StepperOperatorSplitAppAction<Scalar>>
getAppAction()
136 return Scalar(1.0e+99);
145 typename std::vector<Teuchos::RCP<Stepper<Scalar>>>::const_iterator
148 if ((*subStepperIter)->isExplicit())
isExplicit =
true;
155 typename std::vector<Teuchos::RCP<Stepper<Scalar>>>::const_iterator
158 if ((*subStepperIter)->isImplicit())
isImplicit =
true;
169 typename std::vector<Teuchos::RCP<Stepper<Scalar>>>::const_iterator
189 Teuchos::RCP<Teuchos::ParameterList> pl);
193 virtual void describe(Teuchos::FancyOStream& out,
194 const Teuchos::EVerbosityLevel verbLevel)
const;
197 virtual bool isValidSetup(Teuchos::FancyOStream& out)
const;
214 bool useFSAL =
false);
237template <
class Scalar>
240 Teuchos::RCP<Teuchos::ParameterList> pl);
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
Solution state for integrators and steppers.
StepperOperatorSplitAppAction class for StepperOperatorSplit.
OperatorSplit stepper loops through the Stepper list.
virtual OrderODE getOrderODE() const
std::vector< Teuchos::RCP< Stepper< Scalar > > > subStepperList_
virtual void clearSubStepperList()
virtual void setModels(std::vector< Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > > appModels)
virtual void setOrderMin(Scalar o)
virtual bool isExplicit() const
virtual void setOrderMax(Scalar o)
virtual bool isValidSetup(Teuchos::FancyOStream &out) const
virtual void setUseFSAL(bool a)
virtual void setAppAction(Teuchos::RCP< StepperOperatorSplitAppAction< Scalar > > appAction)
virtual bool isMultiStepMethod() const
virtual void initialize()
Initialize during construction and after changing input parameters.
virtual void setSolver(Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > solver)
Set solver.
virtual void setStepperList(std::vector< Teuchos::RCP< Stepper< Scalar > > > sl)
virtual Teuchos::RCP< StepperOperatorSplitAppAction< Scalar > > getAppAction() const
virtual std::vector< Teuchos::RCP< Stepper< Scalar > > > getStepperList() const
virtual void takeStep(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory)
Take the specified timestep, dt, and return true if successful.
virtual void setSubStepperList(std::vector< Teuchos::RCP< Stepper< Scalar > > > subStepperList)
Teuchos::RCP< StepperOperatorSplitAppAction< Scalar > > stepperOSAppAction_
void createSubSteppers(std::vector< Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > > appModels, Teuchos::RCP< Teuchos::ParameterList > pl)
virtual Scalar getOrderMin() const
virtual bool isExplicitImplicit() const
virtual bool isOneStepMethod() const
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
virtual bool isImplicit() const
virtual Scalar getInitTimeStep(const Teuchos::RCP< SolutionHistory< Scalar > > &) const
virtual void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
virtual void setInitialConditions(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory)
Set the initial conditions and make them consistent.
Teuchos::RCP< SolutionState< Scalar > > tempState_
virtual void setOrder(Scalar o)
Teuchos::RCP< SolutionHistory< Scalar > > OpSpSolnHistory_
virtual void setInitialGuess(Teuchos::RCP< const Thyra::VectorBase< Scalar > >)
Pass initial guess to Newton solver.
virtual Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > getModel() const
virtual Scalar getOrderMax() const
virtual void setModel(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &appModel)
StepperOperatorSplit()
Default constructor.
virtual Teuchos::RCP< Tempus::StepperState< Scalar > > getDefaultStepperState()
Get a default (initial) StepperState.
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 Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > getSolver() const
Get solver.
virtual void setTempState(Teuchos::RCP< Tempus::SolutionState< Scalar > > state)
virtual Scalar getOrder() const
Thyra Base interface for time steppers.
bool isInitialized_
True if stepper's member data is initialized.
bool useFSAL_
Use First-Same-As-Last (FSAL) principle.
Teuchos::RCP< StepperOperatorSplit< Scalar > > createStepperOperatorSplit(std::vector< Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > > appModels, Teuchos::RCP< Teuchos::ParameterList > pl)
Nonmember constructor - ModelEvaluator and ParameterList.
@ FIRST_ORDER_ODE
Stepper integrates first-order ODEs.