Tempus Version of the Day
Time Integration
Loading...
Searching...
No Matches
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
16namespace Tempus {
17
18template<class Scalar> class TimeStepControl;
19
30template<class Scalar>
32 : virtual public Teuchos::Describable,
33 virtual public Teuchos::VerboseObject<Tempus::TimeStepControlStrategy<Scalar> >
34{
35public:
36
39 : strategyType_("Base Strategy"), stepType_("Constant"),
40 name_("Base Strategy"), isInitialized_(false)
41 {}
42
45
47 virtual void setNextTimeStep(
48 const TimeStepControl<Scalar> & /* tsc */,
49 Teuchos::RCP<SolutionHistory<Scalar> > /* sh */,
50 Status & /* integratorStatus */) {}
51
52 virtual void initialize() const { isInitialized_ = true; }
53 virtual bool isInitialized() { return isInitialized_; }
54 virtual void checkInitialized()
55 {
56 if ( !isInitialized_ ) {
57 this->describe( *(this->getOStream()), Teuchos::VERB_MEDIUM);
58 TEUCHOS_TEST_FOR_EXCEPTION( !isInitialized_, std::logic_error,
59 "Error - " << this->description() << " is not initialized!");
60 }
61 }
62
63 virtual void setName(std::string s) { name_ = s; }
64
65 virtual std::string getStrategyType() const { return strategyType_; }
66 virtual std::string getStepType() const { return stepType_; }
67 virtual std::string getName() const { return name_; }
68
70 virtual Teuchos::RCP<const Teuchos::ParameterList> getValidParameters() const
71 { return Teuchos::parameterList(); }
72
73protected:
74
75 virtual void setStrategyType(std::string s) { strategyType_ = s; }
76 virtual void setStepType(std::string s) { stepType_ = s; }
77
78 std::string strategyType_;
79 std::string stepType_;
80 std::string name_;
81 mutable bool isInitialized_;
82
83};
84
85
86} // namespace Tempus
87#endif // Tempus_TimeStepControlStrategy_hpp
TimeStepControlStrategy class for TimeStepControl.
bool isInitialized_
Bool if strategy is initialized.
virtual Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
Return ParameterList with current values.
std::string stepType_
Step Type - "Constant" or "Variable".
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.