9#ifndef Tempus_StepperOperatorSplit_decl_hpp
10#define Tempus_StepperOperatorSplit_decl_hpp
12#include "Tempus_config.hpp"
13#include "Tempus_Stepper.hpp"
81 std::string ICConsistency,
82 bool ICConsistencyCheck,
93 virtual Teuchos::RCP<const Thyra::ModelEvaluator<Scalar> >
getModel()
const;
96 Teuchos::RCP<Thyra::NonlinearSolverBase<Scalar> > solver);
98 virtual Teuchos::RCP<Thyra::NonlinearSolverBase<Scalar> >
getSolver()
const
99 {
return Teuchos::null; }
103 virtual Teuchos::RCP<StepperOperatorSplitAppAction<Scalar> >
getAppAction()
const
132 {
return Scalar(1.0e+99);}
140 typename std::vector<Teuchos::RCP<Stepper<Scalar> > >::const_iterator
143 if ( (*subStepperIter)->isExplicit() )
isExplicit =
true;
150 typename std::vector<Teuchos::RCP<Stepper<Scalar> > >::const_iterator
153 if ( (*subStepperIter)->isImplicit() )
isImplicit =
true;
162 typename std::vector<Teuchos::RCP<Stepper<Scalar> > >::const_iterator
178 Teuchos::RCP<Teuchos::ParameterList> pl);
182 virtual void describe(Teuchos::FancyOStream & out,
183 const Teuchos::EVerbosityLevel verbLevel)
const;
186 virtual bool isValidSetup(Teuchos::FancyOStream & out)
const;
199 bool useFSAL =
false);
225template<
class Scalar>
226Teuchos::RCP<StepperOperatorSplit<Scalar> >
229 Teuchos::RCP<Teuchos::ParameterList> pl);
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...
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.