Tempus  Version of the Day
Time Integration
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
Tempus::TimeStepControlStrategyIntegralController< Scalar > Class Template Reference

StepControlStrategy class for TimeStepControl. More...

#include <Tempus_TimeStepControlStrategyIntegralController.hpp>

Inheritance diagram for Tempus::TimeStepControlStrategyIntegralController< Scalar >:
Tempus::TimeStepControlStrategy< Scalar >

Public Member Functions

 TimeStepControlStrategyIntegralController (Teuchos::RCP< Teuchos::ParameterList > pList=Teuchos::null)
 Constructor. More...
 
virtual ~TimeStepControlStrategyIntegralController ()
 Destructor. More...
 
virtual void getNextTimeStep (const TimeStepControl< Scalar > tsc, Teuchos::RCP< SolutionHistory< Scalar > > solutionHistory, Status &) override
 Determine the time step size. More...
 
Overridden from Teuchos::ParameterListAcceptor
void setParameterList (const Teuchos::RCP< Teuchos::ParameterList > &pList) override
 
Teuchos::RCP< const
Teuchos::ParameterList > 
getValidParameters () const override
 
Teuchos::RCP
< Teuchos::ParameterList > 
getNonconstParameterList () override
 
Teuchos::RCP
< Teuchos::ParameterList > 
unsetParameterList () override
 
- Public Member Functions inherited from Tempus::TimeStepControlStrategy< Scalar >
 TimeStepControlStrategy ()
 Constructor. More...
 
virtual ~TimeStepControlStrategy ()
 Destructor. More...
 
void setParameterList (const Teuchos::RCP< Teuchos::ParameterList > &)
 
Teuchos::RCP< const
Teuchos::ParameterList > 
getValidParameters () const
 
Teuchos::RCP
< Teuchos::ParameterList > 
getNonconstParameterList ()
 
Teuchos::RCP
< Teuchos::ParameterList > 
unsetParameterList ()
 

Private Attributes

Teuchos::RCP
< Teuchos::ParameterList > 
tscsPL_
 
Scalar k1_
 
Scalar k2_
 
Scalar k3_
 
Scalar errN_
 
Scalar errNm1_
 
Scalar errNm2_
 
Scalar safetyFactor_
 
Scalar facMax_
 
Scalar facMin_
 
bool firstSuccessfulStep_ = false
 
bool lastStepRejected_ = false
 
std::string controller_
 

Detailed Description

template<class Scalar>
class Tempus::TimeStepControlStrategyIntegralController< Scalar >

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_1 / p} \epsilon_{n-1}^{k_2 / p} \epsilon_{n-2}^{-k_3 / p} \right) \]

PI = Proportional-Integral Controller

\[ (\Delta t)_{n+1} = (\Delta t)_n \left( \epsilon_n ^{-k_1 / p} \epsilon_{n-1}^{k_2 / p} \right) \]

I = Integral Controller

\[ (\Delta t)_{n+1} = (\Delta t)_n \left( \epsilon_n ^{-k_1 / p} \right) \]

where $\epsilon_n $ is the error at time step $n$.

Appropriate for Explicit Methods

Definition at line 53 of file Tempus_TimeStepControlStrategyIntegralController.hpp.

Constructor & Destructor Documentation

template<class Scalar >
Tempus::TimeStepControlStrategyIntegralController< Scalar >::TimeStepControlStrategyIntegralController ( Teuchos::RCP< Teuchos::ParameterList >  pList = Teuchos::null)
inline

Constructor.

Definition at line 59 of file Tempus_TimeStepControlStrategyIntegralController.hpp.

template<class Scalar >
virtual Tempus::TimeStepControlStrategyIntegralController< Scalar >::~TimeStepControlStrategyIntegralController ( )
inlinevirtual

Destructor.

Definition at line 64 of file Tempus_TimeStepControlStrategyIntegralController.hpp.

Member Function Documentation

template<class Scalar >
virtual void Tempus::TimeStepControlStrategyIntegralController< Scalar >::getNextTimeStep ( const TimeStepControl< Scalar >  tsc,
Teuchos::RCP< SolutionHistory< Scalar > >  solutionHistory,
Status  
)
inlineoverridevirtual

Determine the time step size.

Reimplemented from Tempus::TimeStepControlStrategy< Scalar >.

Definition at line 67 of file Tempus_TimeStepControlStrategyIntegralController.hpp.

template<class Scalar >
Teuchos::RCP<Teuchos::ParameterList> Tempus::TimeStepControlStrategyIntegralController< Scalar >::getNonconstParameterList ( )
inlineoverride
template<class Scalar >
Teuchos::RCP<const Teuchos::ParameterList> Tempus::TimeStepControlStrategyIntegralController< Scalar >::getValidParameters ( ) const
inlineoverride
template<class Scalar >
void Tempus::TimeStepControlStrategyIntegralController< Scalar >::setParameterList ( const Teuchos::RCP< Teuchos::ParameterList > &  pList)
inlineoverride
template<class Scalar >
Teuchos::RCP<Teuchos::ParameterList> Tempus::TimeStepControlStrategyIntegralController< Scalar >::unsetParameterList ( )
inlineoverride

Member Data Documentation

template<class Scalar >
std::string Tempus::TimeStepControlStrategyIntegralController< Scalar >::controller_
private
template<class Scalar >
Scalar Tempus::TimeStepControlStrategyIntegralController< Scalar >::errN_
private
template<class Scalar >
Scalar Tempus::TimeStepControlStrategyIntegralController< Scalar >::errNm1_
private
template<class Scalar >
Scalar Tempus::TimeStepControlStrategyIntegralController< Scalar >::errNm2_
private
template<class Scalar >
Scalar Tempus::TimeStepControlStrategyIntegralController< Scalar >::facMax_
private
template<class Scalar >
Scalar Tempus::TimeStepControlStrategyIntegralController< Scalar >::facMin_
private
template<class Scalar >
bool Tempus::TimeStepControlStrategyIntegralController< Scalar >::firstSuccessfulStep_ = false
private
template<class Scalar >
Scalar Tempus::TimeStepControlStrategyIntegralController< Scalar >::k1_
private
template<class Scalar >
Scalar Tempus::TimeStepControlStrategyIntegralController< Scalar >::k2_
private
template<class Scalar >
Scalar Tempus::TimeStepControlStrategyIntegralController< Scalar >::k3_
private
template<class Scalar >
bool Tempus::TimeStepControlStrategyIntegralController< Scalar >::lastStepRejected_ = false
private
template<class Scalar >
Scalar Tempus::TimeStepControlStrategyIntegralController< Scalar >::safetyFactor_
private
template<class Scalar >
Teuchos::RCP<Teuchos::ParameterList> Tempus::TimeStepControlStrategyIntegralController< Scalar >::tscsPL_
private

The documentation for this class was generated from the following file: