|
Tempus
Version of the Day
Time Integration
|
Go to the documentation of this file.
9 #ifndef Tempus_TimeStepControl_decl_hpp
10 #define Tempus_TimeStepControl_decl_hpp
13 #include "Teuchos_VerboseObject.hpp"
14 #include "Teuchos_Describable.hpp"
15 #include "Teuchos_ParameterListAcceptorDefaultBase.hpp"
17 #include "Tempus_config.hpp"
18 #include "Tempus_SolutionHistory.hpp"
42 template<
class Scalar>
44 :
virtual public Teuchos::Describable,
45 virtual public Teuchos::ParameterListAcceptor,
46 virtual public Teuchos::VerboseObject<Tempus::TimeStepControl<Scalar> >
51 TimeStepControl(Teuchos::RCP<Teuchos::ParameterList> pList = Teuchos::null);
59 virtual void initialize(Teuchos::RCP<Teuchos::ParameterList> pList =
65 Status & integratorStatus);
88 void describe(Teuchos::FancyOStream &out,
89 const Teuchos::EVerbosityLevel verbLevel)
const;
95 {
return tscPL_->get<
double>(
"Initial Time"); }
97 {
return tscPL_->get<
double>(
"Final Time"); }
99 {
return tscPL_->get<
double>(
"Minimum Time Step"); }
101 {
return tscPL_->get<
double>(
"Initial Time Step"); }
103 {
return tscPL_->get<
double>(
"Maximum Time Step"); }
105 {
return tscPL_->get<
int> (
"Initial Time Index"); }
107 {
return tscPL_->get<
int> (
"Final Time Index"); }
109 {
return tscPL_->get<
double>(
"Maximum Absolute Error"); }
111 {
return tscPL_->get<
double>(
"Maximum Relative Error"); }
113 {
return tscPL_->get<
int> (
"Minimum Order"); }
115 {
return tscPL_->get<
int> (
"Initial Order"); }
117 {
return tscPL_->get<
int> (
"Maximum Order"); }
119 {
return tscPL_->get<std::string>(
"Integrator Step Type"); }
125 {
return tscPL_->get<
int>(
"Maximum Number of Stepper Failures"); }
128 get<int>(
"Maximum Number of Consecutive Stepper Failures"); }
130 {
return tscPL_->get<
int>(
"Number of Time Steps"); }
131 virtual Teuchos::RCP<TimeStepControlStrategyComposite<Scalar>>
138 {
tscPL_->set<
double>(
"Initial Time" , InitTime ); }
140 {
tscPL_->set<
double>(
"Final Time" , FinalTime ); }
142 {
tscPL_->set<
double>(
"Minimum Time Step" , MinTimeStep ); }
144 {
tscPL_->set<
double>(
"Initial Time Step" , InitTimeStep); }
146 {
tscPL_->set<
double>(
"Maximum Time Step" , MaxTimeStep ); }
148 {
tscPL_->set<
int> (
"Initial Time Index" , InitIndex ); }
150 {
tscPL_->set<
int> (
"Final Time Index" , FinalIndex ); }
152 {
tscPL_->set<
double>(
"Maximum Absolute Error" , MaxAbsError ); }
154 {
tscPL_->set<
double>(
"Maximum Relative Error" , MaxRelError ); }
156 {
tscPL_->set<
int> (
"Minimum Order" , MinOrder ); }
158 {
tscPL_->set<
int> (
"Initial Order" , InitOrder ); }
160 {
tscPL_->set<
int> (
"Maximum Order" , MaxOrder ); }
162 {
tscPL_->set<std::string>(
"Integrator Step Type", StepType ); }
165 std::ostringstream ss;
166 std::copy(OutputIndices.begin(), OutputIndices.end()-1,
167 std::ostream_iterator<int>(ss,
","));
168 ss << OutputIndices.back();
169 tscPL_->set<std::string>(
"Output Index List", ss.str());
173 std::ostringstream ss;
174 std::copy(OutputTimes.begin(), OutputTimes.end()-1,
175 std::ostream_iterator<Scalar>(ss,
","));
176 ss << OutputTimes.back();
177 tscPL_->set<std::string>(
"Output Time List", ss.str());
180 {
tscPL_->set<
int>(
"Maximum Number of Stepper Failures", MaxFailures); }
183 (
"Maximum Number of Consecutive Stepper Failures", MaxConsecFailures); }
189 Teuchos::RCP<Teuchos::ParameterList>
tscPL_;
202 #endif // Tempus_TimeStepControl_decl_hpp
virtual void setOutputTimes(std::vector< Scalar > OutputTimes)
virtual int getInitOrder() const
virtual std::vector< Scalar > getOutputTimes() const
virtual void setInitIndex(int InitIndex)
virtual Scalar getMaxRelError() const
virtual int getMaxOrder() const
Scalar dtAfterOutput_
dt to reinstate after output step.
Teuchos::RCP< Teuchos::ParameterList > unsetParameterList()
Teuchos::RCP< SolutionHistory< Scalar > > solutionHistory(Teuchos::RCP< Teuchos::ParameterList > pList=Teuchos::null)
Nonmember constructor.
virtual std::vector< int > getOutputIndices() const
virtual ~TimeStepControl()
Destructor.
virtual void setTimeStepControlStrategy(Teuchos::RCP< TimeStepControlStrategy< Scalar > > tscs=Teuchos::null)
Set the TimeStepControlStrategy.
virtual void setOutputIndices(std::vector< int > OutputIndices)
virtual bool timeInRange(const Scalar time) const
Check if time is within minimum and maximum time.
virtual void setMaxOrder(int MaxOrder)
virtual void initialize(Teuchos::RCP< Teuchos::ParameterList > pList=Teuchos::null)
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
virtual int getMinOrder() const
virtual void setNumTimeSteps(int numTimeSteps)
virtual void setMinOrder(int MinOrder)
virtual void setFinalIndex(int FinalIndex)
virtual void getNextTimeStep(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory, Status &integratorStatus)
Determine the time step size.
virtual Teuchos::RCP< TimeStepControlStrategyComposite< Scalar > > getTimeStepControlStrategy() const
virtual void setInitTimeStep(Scalar InitTimeStep)
Teuchos::RCP< Teuchos::ParameterList > tscPL_
virtual void setMaxFailures(int MaxFailures)
virtual void setMaxConsecFailures(int MaxConsecFailures)
virtual std::string getStepType() const
virtual void setInitTime(Scalar InitTime)
virtual int getFinalIndex() const
virtual Scalar getMinTimeStep() const
virtual int getInitIndex() const
virtual bool indexInRange(const int iStep) const
Check if time step index is within minimum and maximum index.
virtual void setFinalTime(Scalar FinalTime)
std::vector< Scalar > outputTimes_
Vector of output times.
TimeStepControl(Teuchos::RCP< Teuchos::ParameterList > pList=Teuchos::null)
Constructor.
virtual Scalar getFinalTime() const
virtual Scalar getInitTimeStep() const
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
virtual void setStepType(std::string StepType)
virtual void setMaxAbsError(Scalar MaxAbsError)
virtual int getMaxFailures() const
bool outputAdjustedDt_
Flag indicating that dt was adjusted for output.
virtual void setMaxTimeStep(Scalar MaxTimeStep)
virtual Scalar getInitTime() const
virtual void setInitOrder(int InitOrder)
Teuchos::RCP< TimeStepControlStrategyComposite< Scalar > > stepControlStrategy_
virtual Scalar getMaxAbsError() const
virtual int getMaxConsecFailures() const
StepControlStrategy class for TimeStepControl.
virtual void setMaxRelError(Scalar MaxRelError)
Teuchos::RCP< Teuchos::ParameterList > getNonconstParameterList()
std::vector< int > outputIndices_
Vector of output indices.
void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
virtual int getNumTimeSteps() const
std::string description() const
Status
Status for the Integrator, the Stepper and the SolutionState.
void setParameterList(const Teuchos::RCP< Teuchos::ParameterList > &pl)
virtual void setMinTimeStep(Scalar MinTimeStep)
virtual Scalar getMaxTimeStep() const