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
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
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.
TimeStepControl manages the time step size. There several mechanisms that effect the time step size a...
Status
Status for the Integrator, the Stepper and the SolutionState.