Tempus  Version of the Day
Time Integration
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Tempus_TimeStepControlStrategy.hpp
Go to the documentation of this file.
1 // @HEADER
2 // ****************************************************************************
3 // Tempus: Copyright (2017) Sandia Corporation
4 //
5 // Distributed under BSD 3-clause license (See accompanying file Copyright.txt)
6 // ****************************************************************************
7 // @HEADER
8 
9 #ifndef Tempus_TimeStepControlStrategy_hpp
10 #define Tempus_TimeStepControlStrategy_hpp
11 
12 #include "Tempus_config.hpp"
13 #include "Tempus_SolutionHistory.hpp"
14 
15 namespace Tempus {
16 
17 template <class Scalar>
18 class TimeStepControl;
19 
30 template <class Scalar>
32  virtual public Teuchos::VerboseObject<
33  Tempus::TimeStepControlStrategy<Scalar> > {
34  public:
37  : strategyType_("Base Strategy"),
38  stepType_("Constant"),
39  name_("Base Strategy"),
40  isInitialized_(false)
41  {
42  }
43 
46 
48  virtual void setNextTimeStep(const TimeStepControl<Scalar>& /* tsc */,
50  Status& /* integratorStatus */)
51  {
52  }
53 
54  virtual void initialize() const { isInitialized_ = true; }
55  virtual bool isInitialized() { return isInitialized_; }
56  virtual void checkInitialized()
57  {
58  if (!isInitialized_) {
59  this->describe(*(this->getOStream()), Teuchos::VERB_MEDIUM);
61  !isInitialized_, std::logic_error,
62  "Error - " << this->description() << " is not initialized!");
63  }
64  }
65 
66  virtual void setName(std::string s) { name_ = s; }
67 
68  virtual std::string getStrategyType() const { return strategyType_; }
69  virtual std::string getStepType() const { return stepType_; }
70  virtual std::string getName() const { return name_; }
71 
74  {
75  return Teuchos::parameterList();
76  }
77 
78  protected:
79  virtual void setStrategyType(std::string s) { strategyType_ = s; }
80  virtual void setStepType(std::string s) { stepType_ = s; }
81 
82  std::string strategyType_;
83  std::string stepType_;
84  std::string name_;
85  mutable bool isInitialized_;
86 };
87 
88 } // namespace Tempus
89 #endif // Tempus_TimeStepControlStrategy_hpp
virtual Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
Return ParameterList with current values.
#define TEUCHOS_TEST_FOR_EXCEPTION(throw_exception_test, Exception, msg)
virtual void setNextTimeStep(const TimeStepControl< Scalar > &, Teuchos::RCP< SolutionHistory< Scalar > >, Status &)
Set the time step size.
Status
Status for the Integrator, the Stepper and the SolutionState.
bool isInitialized_
Bool if strategy is initialized.
virtual std::string description() const
TimeStepControl manages the time step size. There several mechanisms that effect the time step size a...
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
std::string stepType_
Step Type - &quot;Constant&quot; or &quot;Variable&quot;.
TimeStepControlStrategy class for TimeStepControl.
virtual RCP< FancyOStream > getOStream() const
virtual void describe(FancyOStream &out, const EVerbosityLevel verbLevel=verbLevel_default) const