9#ifndef Tempus_TimeStepControl_decl_hpp
10#define Tempus_TimeStepControl_decl_hpp
16#include "Teuchos_VerboseObject.hpp"
17#include "Teuchos_Describable.hpp"
19#include "Tempus_config.hpp"
20#include "Tempus_SolutionHistory.hpp"
51 :
virtual public Teuchos::Describable,
52 virtual public Teuchos::VerboseObject<Tempus::TimeStepControl<Scalar> >
71 int maxConsecFailures,
75 std::vector<int> outputIndices,
76 std::vector<Scalar> outputTimes,
77 int outputIndexInterval,
78 Scalar outputTimeInterval,
79 Teuchos::RCP<TimeEventComposite<Scalar> > timeEvent,
80 Teuchos::RCP<TimeStepControlStrategy<Scalar>> stepControlStrategy);
87 const Teuchos::RCP<SolutionHistory<Scalar> > & solutionHistory,
88 Status & integratorStatus);
102 void describe(Teuchos::FancyOStream &out,
103 const Teuchos::EVerbosityLevel verbLevel)
const;
137 virtual Teuchos::RCP<TimeEventComposite<Scalar> >
139 virtual Teuchos::RCP<TimeStepControlStrategy<Scalar>>
164 Teuchos::RCP<TimeEventComposite<Scalar> > teb = Teuchos::null);
166 Teuchos::RCP<TimeStepControlStrategy<Scalar> > tscs = Teuchos::null);
169 virtual void printDtChanges(
int istep, Scalar dt_old, Scalar dt_new,
170 std::string reason)
const;
205template<
class Scalar>
207 Teuchos::RCP<Teuchos::ParameterList>
const& pList,
208 bool runInitialize =
true);
211template<
class Scalar>
215 return Teuchos::rcp_const_cast<Teuchos::ParameterList> (tsc->getValidParameters());
TimeStepControl manages the time step size. There several mechanisms that effect the time step size a...
virtual void setNextTimeStep(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory, Status &integratorStatus)
Determine the time step size.
virtual std::vector< Scalar > getOutputTimes() const
virtual void setInitTime(Scalar t)
Scalar initTime_
Initial Time.
virtual void setInitTimeStep(Scalar t)
virtual void setOutputTimeInterval(Scalar t)
virtual int getInitIndex() const
virtual bool timeInRange(const Scalar time) const
Check if time is within minimum and maximum time.
virtual void setOutputExactly(bool b)
virtual int getFinalIndex() const
virtual void setMinTimeStep(Scalar t)
virtual void setNumTimeSteps(int numTimeSteps)
virtual Scalar getMaxTimeStep() const
virtual void setTimeEvents(Teuchos::RCP< TimeEventComposite< Scalar > > teb=Teuchos::null)
virtual bool getOutputExactly() const
Return if the output needs to exactly happen on output time.
bool printDtChanges_
Print timestep size when it changes.
Scalar dtAfterTimeEvent_
dt to reinstate after TimeEvent step.
Scalar maxRelError_
Maximum Relative Error.
virtual int getOutputIndexInterval() const
virtual void setMaxTimeStep(Scalar t)
Scalar maxTimeStep_
Maximum Time Step.
Teuchos::RCP< TimeStepControlStrategy< Scalar > > stepControlStrategy_
virtual bool indexInRange(const int iStep) const
Check if time step index is within minimum and maximum index.
std::string description() const
virtual Scalar getMaxAbsError() const
virtual Teuchos::RCP< TimeStepControlStrategy< Scalar > > getTimeStepControlStrategy() const
int numTimeSteps_
Number of time steps for Constant time step.
int finalIndex_
Final Time Index.
int maxConsecFailures_
Maximum Number of Consecutive Stepper Failures.
virtual Scalar getMaxRelError() const
virtual bool getPrintDtChanges() const
virtual void setFinalTime(Scalar t)
virtual int getMaxConsecFailures() const
virtual ~TimeStepControl()
Destructor.
bool teAdjustedDt_
Flag indicating that dt was adjusted for time event.
virtual void setMaxFailures(int i)
virtual Scalar getInitTime() const
virtual void setFinalIndex(int i)
Scalar minTimeStep_
Minimum Time Step.
bool isInitialized_
Bool if TimeStepControl is initialized.
virtual void initialize() const
virtual void setOutputIndices(std::vector< int > v)
virtual Scalar getInitTimeStep() const
virtual std::string getStepType() const
virtual void checkInitialized()
virtual void setMaxAbsError(Scalar e)
Scalar finalTime_
Final Time.
TimeStepControl()
Default Constructor.
virtual Teuchos::RCP< TimeEventComposite< Scalar > > getTimeEvents() const
virtual void setOutputIndexInterval(int i)
Teuchos::RCP< TimeEventComposite< Scalar > > timeEvent_
int maxFailures_
Maximum Number of Stepper Failures.
virtual std::vector< int > getOutputIndices() const
virtual void setTimeStepControlStrategy(Teuchos::RCP< TimeStepControlStrategy< Scalar > > tscs=Teuchos::null)
virtual int getMaxFailures() const
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
virtual void setMaxConsecFailures(int i)
virtual int getNumTimeSteps() const
virtual void setMaxRelError(Scalar e)
virtual void printDtChanges(int istep, Scalar dt_old, Scalar dt_new, std::string reason) const
virtual void setOutputTimes(std::vector< Scalar > outputTimes)
virtual Scalar getOutputTimeInterval() const
virtual Scalar getMinTimeStep() const
virtual bool isInitialized()
virtual Scalar getFinalTime() const
Scalar initTimeStep_
Initial Time Step.
Scalar maxAbsError_
Maximum Absolute Error.
virtual void setInitIndex(int i)
virtual void setPrintDtChanges(bool b)
int initIndex_
Initial Time Index.
virtual Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
Return ParameterList with current values.
Status
Status for the Integrator, the Stepper and the SolutionState.
Teuchos::RCP< TimeStepControl< Scalar > > createTimeStepControl(Teuchos::RCP< Teuchos::ParameterList > const &pList, bool runInitialize=true)
Nonmember constructor from ParameterList.
Teuchos::RCP< Teuchos::ParameterList > getTimeStepControlPL()
Nonmember function to return ParameterList with default values.