Tempus
Version of the Day
Time Integration
|
StepControlStrategy class for TimeStepControl. More...
#include <Tempus_TimeStepControlStrategyBasicVS.hpp>
Public Member Functions | |
TimeStepControlStrategyBasicVS () | |
Default Constructor. More... | |
TimeStepControlStrategyBasicVS (Scalar rho, Scalar sigma, Scalar minEta, Scalar maxEta, std::string name="Basic VS") | |
Full Constructor. More... | |
virtual | ~TimeStepControlStrategyBasicVS () |
Destructor. More... | |
virtual void | setNextTimeStep (const TimeStepControl< Scalar > &tsc, Teuchos::RCP< SolutionHistory< Scalar > > solutionHistory, Status &) override |
Set the time step size. More... | |
virtual Teuchos::RCP< const Teuchos::ParameterList > | getValidParameters () const override |
Return ParameterList with current values. More... | |
virtual void | initialize () const override |
virtual Scalar | getAmplFactor () const |
virtual Scalar | getReductFactor () const |
virtual Scalar | getMinEta () const |
virtual Scalar | getMaxEta () const |
virtual void | setAmplFactor (Scalar rho) |
virtual void | setReductFactor (Scalar sigma) |
virtual void | setMinEta (Scalar minEta) |
virtual void | setMaxEta (Scalar maxEta) |
Public Member Functions inherited from Tempus::TimeStepControlStrategy< Scalar > | |
TimeStepControlStrategy () | |
Constructor. More... | |
virtual | ~TimeStepControlStrategy () |
Destructor. More... | |
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 |
Public Member Functions inherited from Teuchos::Describable | |
void | describe (std::ostream &out, const EVerbosityLevel verbLevel=verbLevel_default) const |
virtual | ~Describable () |
LabeledObject () | |
virtual | ~LabeledObject () |
virtual void | setObjectLabel (const std::string &objectLabel) |
virtual std::string | getObjectLabel () const |
DescribableStreamManipulatorState | describe (const Describable &describable, const EVerbosityLevel verbLevel=Describable::verbLevel_default) |
std::ostream & | operator<< (std::ostream &os, const DescribableStreamManipulatorState &d) |
Public Member Functions inherited from Teuchos::VerboseObject< Tempus::TimeStepControlStrategy< Scalar > > | |
VerboseObject (const EVerbosityLevel verbLevel=VERB_DEFAULT, const RCP< FancyOStream > &oStream=Teuchos::null) | |
virtual const VerboseObject & | setVerbLevel (const EVerbosityLevel verbLevel) const |
virtual const VerboseObject & | setOverridingVerbLevel (const EVerbosityLevel verbLevel) const |
virtual EVerbosityLevel | getVerbLevel () const |
TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT RCP< const ParameterList > | getValidVerboseObjectSublist () |
TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT void | setupVerboseObjectSublist (ParameterList *paramList) |
TEUCHOSPARAMETERLIST_LIB_DLL_EXPORT void | readVerboseObjectSublist (ParameterList *paramList, RCP< FancyOStream > *oStream, EVerbosityLevel *verbLevel) |
void | readVerboseObjectSublist (ParameterList *paramList, VerboseObject< ObjectType > *verboseObject) |
Public Member Functions inherited from Teuchos::VerboseObjectBase | |
virtual | ~VerboseObjectBase () |
VerboseObjectBase (const RCP< FancyOStream > &oStream=Teuchos::null) | |
virtual const VerboseObjectBase & | setOStream (const RCP< FancyOStream > &oStream) const |
virtual const VerboseObjectBase & | setOverridingOStream (const RCP< FancyOStream > &oStream) const |
virtual VerboseObjectBase & | setLinePrefix (const std::string &linePrefix) |
virtual RCP< FancyOStream > | getOStream () const |
virtual RCP< FancyOStream > | getOverridingOStream () const |
virtual std::string | getLinePrefix () const |
virtual OSTab | getOSTab (const int tabs=1, const std::string &linePrefix="") const |
Private Attributes | |
Scalar | rho_ |
Amplification Factor. More... | |
Scalar | sigma_ |
Reduction Factor. More... | |
Scalar | minEta_ |
Minimum Value Monitoring Function. More... | |
Scalar | maxEta_ |
Maximum Value Monitoring Function. More... | |
Overridden from Teuchos::Describable | |
std::string | description () const override |
void | describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const override |
Additional Inherited Members | |
Static Public Member Functions inherited from Teuchos::VerboseObject< Tempus::TimeStepControlStrategy< Scalar > > | |
static void | setDefaultVerbLevel (const EVerbosityLevel defaultVerbLevel) |
static EVerbosityLevel | getDefaultVerbLevel () |
Static Public Member Functions inherited from Teuchos::VerboseObjectBase | |
static void | setDefaultOStream (const RCP< FancyOStream > &defaultOStream) |
static RCP< FancyOStream > | getDefaultOStream () |
Static Public Attributes inherited from Teuchos::Describable | |
static const EVerbosityLevel | verbLevel_default |
Protected Member Functions inherited from Tempus::TimeStepControlStrategy< Scalar > | |
virtual void | setStrategyType (std::string s) |
virtual void | setStepType (std::string s) |
Protected Member Functions inherited from Teuchos::VerboseObject< Tempus::TimeStepControlStrategy< Scalar > > | |
void | initializeVerboseObject (const EVerbosityLevel verbLevel=VERB_DEFAULT, const RCP< FancyOStream > &oStream=Teuchos::null) |
Protected Member Functions inherited from Teuchos::VerboseObjectBase | |
void | initializeVerboseObjectBase (const RCP< FancyOStream > &oStream=Teuchos::null) |
virtual void | informUpdatedVerbosityState () const |
Protected Attributes inherited from Tempus::TimeStepControlStrategy< Scalar > | |
std::string | strategyType_ |
Strategy type. More... | |
std::string | stepType_ |
Step Type - "Constant" or "Variable". More... | |
std::string | name_ |
Name of strategy. More... | |
bool | isInitialized_ |
Bool if strategy is initialized. More... | |
StepControlStrategy class for TimeStepControl.
This TimeStepControlStrategy primarily tries to maintain a certain level of change in the solution ill-respective of the error involved, e.g., the solution should change between 1% and 3% ( and ) every time step. The relative solution change is measured by
where is a small constant to ensure that remains finite. The user can select the desired relative change in the solution by choosing a range for
If the solution change is outside this range, an amplification ( ) or reduction factor ( ) is applied to the timestep to bring the solution change back into the desired range. This can be written as
In the full implementation, several other mechanisms can amplify or reduce the timestep.
Note
Section 2.2.1 / Algorithm 2.4 of A. Denner, "Experiments on Temporal Variable Step BDF2 Algorithms", Masters Thesis, U Wisconsin-Madison, 2014.
Definition at line 104 of file Tempus_TimeStepControlStrategyBasicVS.hpp.
|
inline |
Default Constructor.
Definition at line 108 of file Tempus_TimeStepControlStrategyBasicVS.hpp.
|
inline |
Full Constructor.
Definition at line 118 of file Tempus_TimeStepControlStrategyBasicVS.hpp.
|
inlinevirtual |
Destructor.
Definition at line 129 of file Tempus_TimeStepControlStrategyBasicVS.hpp.
|
inlineoverridevirtual |
Set the time step size.
Reimplemented from Tempus::TimeStepControlStrategy< Scalar >.
Definition at line 132 of file Tempus_TimeStepControlStrategyBasicVS.hpp.
|
inlineoverridevirtual |
Reimplemented from Teuchos::Describable.
Definition at line 208 of file Tempus_TimeStepControlStrategyBasicVS.hpp.
|
inlineoverridevirtual |
Reimplemented from Teuchos::Describable.
Definition at line 213 of file Tempus_TimeStepControlStrategyBasicVS.hpp.
|
inlineoverridevirtual |
Return ParameterList with current values.
Reimplemented from Tempus::TimeStepControlStrategy< Scalar >.
Definition at line 241 of file Tempus_TimeStepControlStrategyBasicVS.hpp.
|
inlineoverridevirtual |
Reimplemented from Tempus::TimeStepControlStrategy< Scalar >.
Definition at line 258 of file Tempus_TimeStepControlStrategyBasicVS.hpp.
|
inlinevirtual |
Definition at line 281 of file Tempus_TimeStepControlStrategyBasicVS.hpp.
|
inlinevirtual |
Definition at line 282 of file Tempus_TimeStepControlStrategyBasicVS.hpp.
|
inlinevirtual |
Definition at line 283 of file Tempus_TimeStepControlStrategyBasicVS.hpp.
|
inlinevirtual |
Definition at line 284 of file Tempus_TimeStepControlStrategyBasicVS.hpp.
|
inlinevirtual |
Definition at line 286 of file Tempus_TimeStepControlStrategyBasicVS.hpp.
|
inlinevirtual |
Definition at line 291 of file Tempus_TimeStepControlStrategyBasicVS.hpp.
|
inlinevirtual |
Definition at line 296 of file Tempus_TimeStepControlStrategyBasicVS.hpp.
|
inlinevirtual |
Definition at line 301 of file Tempus_TimeStepControlStrategyBasicVS.hpp.
|
private |
Amplification Factor.
Definition at line 308 of file Tempus_TimeStepControlStrategyBasicVS.hpp.
|
private |
Reduction Factor.
Definition at line 309 of file Tempus_TimeStepControlStrategyBasicVS.hpp.
|
private |
Minimum Value Monitoring Function.
Definition at line 310 of file Tempus_TimeStepControlStrategyBasicVS.hpp.
|
private |
Maximum Value Monitoring Function.
Definition at line 311 of file Tempus_TimeStepControlStrategyBasicVS.hpp.