|
Tempus Version of the Day
Time Integration
|
StepControlStrategy class for TimeStepControl. More...
#include <Tempus_TimeStepControlStrategyIntegralController.hpp>
Public Member Functions | |
| TimeStepControlStrategyIntegralController () | |
| Default Constructor. | |
| TimeStepControlStrategyIntegralController (std::string controller, Scalar KI, Scalar KP, Scalar KD, Scalar safetyFactor, Scalar safetyFactorAfterReject, Scalar facMax, Scalar facMin, std::string name="Integral Controller") | |
| Full Constructor. | |
| virtual | ~TimeStepControlStrategyIntegralController () |
| Destructor. | |
| virtual void | setNextTimeStep (const TimeStepControl< Scalar > &tsc, Teuchos::RCP< SolutionHistory< Scalar > > solutionHistory, Status &) override |
| Set the time step size. | |
Public Member Functions inherited from Tempus::TimeStepControlStrategy< Scalar > | |
| TimeStepControlStrategy () | |
| Constructor. | |
| virtual | ~TimeStepControlStrategy () |
| Destructor. | |
| virtual bool | isInitialized () |
| virtual void | checkInitialized () |
| virtual void | setName (std::string s) |
| virtual std::string | getStrategyType () const |
| virtual std::string | getStepType () const |
| virtual std::string | getName () const |
Overridden from Teuchos::Describable | |
| std::string | controller_ |
| Control type ['I', 'PI', 'PID']. | |
| Scalar | KI_ |
| Integral gain. | |
| Scalar | KP_ |
| Proportional gain. | |
| Scalar | KD_ |
| Derivative gain. | |
| Scalar | safetyFactor_ |
| Safety Factor. | |
| Scalar | safetyFactorAfterReject_ |
| Safety Factor Following Step Rejection. | |
| Scalar | facMaxINPUT_ |
| Maximum Safety Factor from input. | |
| Scalar | facMax_ |
| Maximum Safety Factor. | |
| Scalar | facMin_ |
| Minimum Safety Factor. | |
| bool | firstSuccessfulStep_ = false |
| bool | lastStepRejected_ = false |
| std::string | description () const override |
| void | describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const override |
| virtual Teuchos::RCP< const Teuchos::ParameterList > | getValidParameters () const override |
| Return ParameterList with current values. | |
| virtual void | initialize () const override |
| virtual std::string | getController () const |
| virtual Scalar | getKI () const |
| virtual Scalar | getKP () const |
| virtual Scalar | getKD () const |
| virtual Scalar | getSafetyFactor () const |
| virtual Scalar | getSafetyFactorAfterReject () const |
| virtual Scalar | getFacMax () const |
| virtual Scalar | getFacMin () const |
| virtual void | setController (std::string c) |
| virtual void | setKI (Scalar k) |
| virtual void | setKP (Scalar k) |
| virtual void | setKD (Scalar k) |
| virtual void | setSafetyFactor (Scalar f) |
| virtual void | setSafetyFactorAfterReject (Scalar f) |
| virtual void | setFacMax (Scalar f) |
| virtual void | setFacMin (Scalar f) |
Additional Inherited Members | |
Protected Member Functions inherited from Tempus::TimeStepControlStrategy< Scalar > | |
| virtual void | setStrategyType (std::string s) |
| virtual void | setStepType (std::string s) |
Protected Attributes inherited from Tempus::TimeStepControlStrategy< Scalar > | |
| std::string | strategyType_ |
| Strategy type. | |
| std::string | stepType_ |
| Step Type - "Constant" or "Variable". | |
| std::string | name_ |
| Name of strategy. | |
| bool | isInitialized_ |
| Bool if strategy is initialized. | |
StepControlStrategy class for TimeStepControl.
Gustaf Soderlind. Automatic control and adaptive time-stepping. Numerical Algorithms, 31(1):281–310, Dec 2002.
The step size is chosen based on "Controller Type":
PID = Proportional-Integral-Derivative Controller
![\[
(\Delta t)_{n+1} =
(\Delta t)_n \left( \epsilon_n ^{-k_I / p}
\epsilon_{n-1}^{k_P / p} \epsilon_{n-2}^{-k_D / p} \right)
\]](form_341.png)
PI = Proportional-Integral Controller
![\[
(\Delta t)_{n+1} =
(\Delta t)_n \left( \epsilon_n ^{-k_I / p}
\epsilon_{n-1}^{k_P / p} \right)
\]](form_342.png)
I = Integral Controller
![\[
(\Delta t)_{n+1} =
(\Delta t)_n \left( \epsilon_n ^{-k_I / p} \right)
\]](form_343.png)
where 


Appropriate for Explicit Methods
Definition at line 59 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inline |
Default Constructor.
Definition at line 63 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inline |
Full Constructor.
Definition at line 82 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inlinevirtual |
Destructor.
Definition at line 104 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inlineoverridevirtual |
Set the time step size.
Reimplemented from Tempus::TimeStepControlStrategy< Scalar >.
Definition at line 107 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inlineoverride |
Definition at line 182 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inlineoverride |
Definition at line 187 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inlineoverridevirtual |
Return ParameterList with current values.
Reimplemented from Tempus::TimeStepControlStrategy< Scalar >.
Definition at line 225 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inlineoverridevirtual |
Reimplemented from Tempus::TimeStepControlStrategy< Scalar >.
Definition at line 249 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inlinevirtual |
Definition at line 278 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inlinevirtual |
Definition at line 279 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inlinevirtual |
Definition at line 280 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inlinevirtual |
Definition at line 281 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inlinevirtual |
Definition at line 282 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inlinevirtual |
Definition at line 283 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inlinevirtual |
Definition at line 287 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inlinevirtual |
Definition at line 288 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inlinevirtual |
Definition at line 290 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inlinevirtual |
Definition at line 295 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inlinevirtual |
Definition at line 300 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inlinevirtual |
Definition at line 305 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inlinevirtual |
Definition at line 310 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inlinevirtual |
Definition at line 315 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inlinevirtual |
Definition at line 320 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
inlinevirtual |
Definition at line 326 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
private |
Control type ['I', 'PI', 'PID'].
Definition at line 333 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
private |
Integral gain.
Definition at line 334 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
private |
Proportional gain.
Definition at line 335 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
private |
Derivative gain.
Definition at line 336 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
private |
Safety Factor.
Definition at line 337 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
private |
Safety Factor Following Step Rejection.
Definition at line 338 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
private |
Maximum Safety Factor from input.
Definition at line 339 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
private |
Maximum Safety Factor.
Definition at line 340 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
private |
Minimum Safety Factor.
Definition at line 341 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
private |
Definition at line 342 of file Tempus_TimeStepControlStrategyIntegralController.hpp.
|
private |
Definition at line 343 of file Tempus_TimeStepControlStrategyIntegralController.hpp.