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: Time Integration and Sensitivity Analysis Package
4//
5// Copyright 2017 NTESS and the Tempus contributors.
6// SPDX-License-Identifier: BSD-3-Clause
7// *****************************************************************************
8//@HEADER
9
10#ifndef Tempus_TimeStepControlStrategy_hpp
11#define Tempus_TimeStepControlStrategy_hpp
12
13#include "Tempus_config.hpp"
14#include "Tempus_SolutionHistory.hpp"
15
16namespace Tempus {
17
18template <class Scalar>
19class TimeStepControl;
20
31template <class Scalar>
32class TimeStepControlStrategy : virtual public Teuchos::Describable,
33 virtual public Teuchos::VerboseObject<
34 Tempus::TimeStepControlStrategy<Scalar> > {
35 public:
38 : strategyType_("Base Strategy"),
39 stepType_("Constant"),
40 name_("Base Strategy"),
41 isInitialized_(false)
42 {
43 }
44
47
49 virtual void setNextTimeStep(const TimeStepControl<Scalar>& /* tsc */,
50 Teuchos::RCP<SolutionHistory<Scalar> > /* sh */,
51 Status& /* integratorStatus */)
52 {
53 }
54
55 virtual void initialize() const { isInitialized_ = true; }
56 virtual bool isInitialized() { return isInitialized_; }
57 virtual void checkInitialized()
58 {
59 if (!isInitialized_) {
60 this->describe(*(this->getOStream()), Teuchos::VERB_MEDIUM);
61 TEUCHOS_TEST_FOR_EXCEPTION(
62 !isInitialized_, std::logic_error,
63 "Error - " << this->description() << " is not initialized!");
64 }
65 }
66
67 virtual void setName(std::string s) { name_ = s; }
68
69 virtual std::string getStrategyType() const { return strategyType_; }
70 virtual std::string getStepType() const { return stepType_; }
71 virtual std::string getName() const { return name_; }
72
74 virtual Teuchos::RCP<const Teuchos::ParameterList> getValidParameters() const
75 {
76 return Teuchos::parameterList();
77 }
78
79 protected:
80 virtual void setStrategyType(std::string s) { strategyType_ = s; }
81 virtual void setStepType(std::string s) { stepType_ = s; }
82
83 std::string strategyType_;
84 std::string stepType_;
85 std::string name_;
86 mutable bool isInitialized_;
87};
88
89} // namespace Tempus
90#endif // Tempus_TimeStepControlStrategy_hpp
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
TimeStepControl manages the time step size. There several mechanisms that effect the time step size a...
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.