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...
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.