|
Tempus
Version of the Day
Time Integration
|
Explicit Runge-Kutta time stepper. More...
#include <Tempus_StepperExplicitRK_decl.hpp>
Public Member Functions | |
| StepperExplicitRK (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &appModel, std::string stepperType="RK Explicit 4 Stage") | |
| Constructor to use default Stepper parameters. More... | |
| StepperExplicitRK (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &appModel, Teuchos::RCP< Teuchos::ParameterList > pList) | |
| Constructor to specialize Stepper parameters. More... | |
| StepperExplicitRK (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &appModel, std::string stepperType, Teuchos::RCP< Teuchos::ParameterList > pList) | |
| Constructor for StepperFactory. More... | |
Basic stepper methods | |
| virtual void | setModel (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &appModel) |
| virtual void | setNonConstModel (const Teuchos::RCP< Thyra::ModelEvaluator< Scalar > > &appModel) |
| virtual Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > | getModel () |
| virtual void | setSolver (std::string solverName) |
| Set solver via ParameterList solver name. More... | |
| virtual void | setSolver (Teuchos::RCP< Teuchos::ParameterList > solverPL=Teuchos::null) |
| Set solver via solver ParameterList. More... | |
| virtual void | setSolver (Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > solver) |
| Set solver. More... | |
| virtual Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > | getSolver () const |
| Get solver. More... | |
| virtual void | setObserver (Teuchos::RCP< StepperObserver< Scalar > > obs=Teuchos::null) |
| Set Observer. More... | |
| virtual void | setTableau (std::string stepperType) |
| virtual void | setTableau (Teuchos::RCP< Teuchos::ParameterList > pList=Teuchos::null) |
| virtual void | initialize () |
| Initialize during construction and after changing input parameters. More... | |
| virtual void | takeStep (const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory) |
| Take the specified timestep, dt, and return true if successful. More... | |
| virtual void | setInitialGuess (Teuchos::RCP< const Thyra::VectorBase< Scalar > > initial_guess) |
| Pass initial guess to Newton solver (only relevant for implicit solvers) More... | |
| virtual std::string | getStepperType () const |
| virtual Teuchos::RCP< Tempus::StepperState< Scalar > > | getDefaultStepperState () |
| Get a default (initial) StepperState. More... | |
| virtual Scalar | getOrder () const |
| virtual Scalar | getOrderMin () const |
| virtual Scalar | getOrderMax () const |
| virtual Scalar | getInitTimeStep (const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory) const |
| virtual bool | isExplicit () const |
| virtual bool | isImplicit () const |
| virtual bool | isExplicitImplicit () const |
| virtual bool | isOneStepMethod () const |
| virtual bool | isMultiStepMethod () const |
ParameterList methods | |
| void | setParameterList (const Teuchos::RCP< Teuchos::ParameterList > &pl) |
| Teuchos::RCP< Teuchos::ParameterList > | getNonconstParameterList () |
| Teuchos::RCP< Teuchos::ParameterList > | unsetParameterList () |
| Teuchos::RCP< const Teuchos::ParameterList > | getValidParameters () const |
| Teuchos::RCP< Teuchos::ParameterList > | getDefaultParameters () const |
Public Member Functions inherited from Tempus::Stepper< Scalar > | |
| virtual void | createSubSteppers (std::vector< Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > > models) |
| void | validExplicitODE (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model) const |
| Validate that the model supports explicit ODE evaluation, f(x,t) [=xdot]. More... | |
| void | validSecondOrderExplicitODE (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model) const |
| Validate that the model supports explicit second order ODE evaluation, f(x,xdot,t) [=xdotdot]. More... | |
| void | validImplicitODE_DAE (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model) const |
| Validate ME supports implicit ODE/DAE evaluation, f(xdot,x,t) [= 0]. More... | |
| void | validSecondOrderODE_DAE (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model) const |
| Validate ME supports 2nd order implicit ODE/DAE evaluation, f(xdotdot,xdot,x,t) [= 0]. More... | |
| Teuchos::RCP< Teuchos::ParameterList > | defaultSolverParameters () const |
Overridden from Teuchos::Describable | |
| std::string | description_ |
| Teuchos::RCP< Teuchos::ParameterList > | stepperPL_ |
| Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > | appModel_ |
| Explicit ODE ModelEvaluator. More... | |
| Thyra::ModelEvaluatorBase::InArgs< Scalar > | inArgs_ |
| Thyra::ModelEvaluatorBase::OutArgs< Scalar > | outArgs_ |
| Teuchos::RCP< const RKButcherTableau< Scalar > > | ERK_ButcherTableau_ |
| std::vector< Teuchos::RCP< Thyra::VectorBase< Scalar > > > | stageXDot_ |
| Teuchos::RCP< Thyra::VectorBase< Scalar > > | stageX_ |
| Teuchos::RCP< StepperObserver< Scalar > > | stepperObserver_ |
| Teuchos::RCP< StepperExplicitRKObserver< Scalar > > | stepperExplicitRKObserver_ |
| Teuchos::RCP< Thyra::VectorBase< Scalar > > | ee_ |
| Teuchos::RCP< Thyra::VectorBase< Scalar > > | abs_u0 |
| Teuchos::RCP< Thyra::VectorBase< Scalar > > | abs_u |
| Teuchos::RCP< Thyra::VectorBase< Scalar > > | sc |
| Teuchos::RCP< const Thyra::VectorBase< Scalar > > | initial_guess_ |
| virtual std::string | description () const |
| virtual void | describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const |
| StepperExplicitRK () | |
| Default Constructor – not allowed. More... | |
Explicit Runge-Kutta time stepper.
For the explicit ODE system,
the general explicit Runge-Kutta method for
-stages can be written as
where
are intermediate approximations to the solution at times,
, (stage solutions) which may be correct to a lower order of accuracy than the solution,
. We should note that these lower-order approximations are combined through
so that error terms cancel out and produce a more accurate solution. Note for explicit RK that
for
and does not require any solves. Note that the stage time derivatives are
and the time derivative by definition is
Algorithm The single-timestep algorithm for Explicit RK is simply,
do



[Optional] Definition at line 64 of file Tempus_StepperExplicitRK_decl.hpp.
| Tempus::StepperExplicitRK< Scalar >::StepperExplicitRK | ( | const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > & | appModel, |
| std::string | stepperType = "RK Explicit 4 Stage" |
||
| ) |
Constructor to use default Stepper parameters.
Definition at line 21 of file Tempus_StepperExplicitRK_impl.hpp.
| Tempus::StepperExplicitRK< Scalar >::StepperExplicitRK | ( | const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > & | appModel, |
| Teuchos::RCP< Teuchos::ParameterList > | pList | ||
| ) |
Constructor to specialize Stepper parameters.
Definition at line 31 of file Tempus_StepperExplicitRK_impl.hpp.
| Tempus::StepperExplicitRK< Scalar >::StepperExplicitRK | ( | const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > & | appModel, |
| std::string | stepperType, | ||
| Teuchos::RCP< Teuchos::ParameterList > | pList | ||
| ) |
Constructor for StepperFactory.
Definition at line 42 of file Tempus_StepperExplicitRK_impl.hpp.
|
private |
Default Constructor – not allowed.
|
virtual |
Definition at line 417 of file Tempus_StepperExplicitRK_impl.hpp.
|
virtual |
Definition at line 410 of file Tempus_StepperExplicitRK_impl.hpp.
|
virtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 472 of file Tempus_StepperExplicitRK_impl.hpp.
|
virtual |
Get a default (initial) StepperState.
Provide a StepperState to the SolutionState. This Stepper does not have any special state data, so just provide the base class StepperState with the Stepper description. This can be checked to ensure that the input StepperState can be used by this Stepper.
Implements Tempus::Stepper< Scalar >.
Definition at line 401 of file Tempus_StepperExplicitRK_impl.hpp.
|
virtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 104 of file Tempus_StepperExplicitRK_impl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 90 of file Tempus_StepperExplicitRK_decl.hpp.
| Teuchos::RCP< Teuchos::ParameterList > Tempus::StepperExplicitRK< Scalar >::getNonconstParameterList | ( | ) |
Definition at line 492 of file Tempus_StepperExplicitRK_impl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 123 of file Tempus_StepperExplicitRK_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 125 of file Tempus_StepperExplicitRK_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 124 of file Tempus_StepperExplicitRK_decl.hpp.
|
inlinevirtual |
Get solver.
Implements Tempus::Stepper< Scalar >.
Definition at line 97 of file Tempus_StepperExplicitRK_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 118 of file Tempus_StepperExplicitRK_decl.hpp.
| Teuchos::RCP< const Teuchos::ParameterList > Tempus::StepperExplicitRK< Scalar >::getValidParameters | ( | ) | const |
Definition at line 443 of file Tempus_StepperExplicitRK_impl.hpp.
|
virtual |
Initialize during construction and after changing input parameters.
Implements Tempus::Stepper< Scalar >.
Definition at line 250 of file Tempus_StepperExplicitRK_impl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 129 of file Tempus_StepperExplicitRK_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 131 of file Tempus_StepperExplicitRK_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 130 of file Tempus_StepperExplicitRK_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 134 of file Tempus_StepperExplicitRK_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 133 of file Tempus_StepperExplicitRK_decl.hpp.
|
inlinevirtual |
Pass initial guess to Newton solver (only relevant for implicit solvers)
Implements Tempus::Stepper< Scalar >.
Definition at line 115 of file Tempus_StepperExplicitRK_decl.hpp.
|
virtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 54 of file Tempus_StepperExplicitRK_impl.hpp.
|
virtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 65 of file Tempus_StepperExplicitRK_impl.hpp.
|
virtual |
Set Observer.
Implements Tempus::Stepper< Scalar >.
Definition at line 228 of file Tempus_StepperExplicitRK_impl.hpp.
| void Tempus::StepperExplicitRK< Scalar >::setParameterList | ( | const Teuchos::RCP< Teuchos::ParameterList > & | pl | ) |
Definition at line 427 of file Tempus_StepperExplicitRK_impl.hpp.
|
virtual |
Set solver via ParameterList solver name.
Implements Tempus::Stepper< Scalar >.
Definition at line 72 of file Tempus_StepperExplicitRK_impl.hpp.
|
virtual |
Set solver via solver ParameterList.
Implements Tempus::Stepper< Scalar >.
Definition at line 82 of file Tempus_StepperExplicitRK_impl.hpp.
|
virtual |
Set solver.
Implements Tempus::Stepper< Scalar >.
Definition at line 93 of file Tempus_StepperExplicitRK_impl.hpp.
|
virtual |
Definition at line 187 of file Tempus_StepperExplicitRK_impl.hpp.
|
virtual |
Definition at line 203 of file Tempus_StepperExplicitRK_impl.hpp.
|
virtual |
Take the specified timestep, dt, and return true if successful.
Implements Tempus::Stepper< Scalar >.
Definition at line 283 of file Tempus_StepperExplicitRK_impl.hpp.
| Teuchos::RCP< Teuchos::ParameterList > Tempus::StepperExplicitRK< Scalar >::unsetParameterList | ( | ) |
Definition at line 500 of file Tempus_StepperExplicitRK_impl.hpp.
|
protected |
Definition at line 179 of file Tempus_StepperExplicitRK_decl.hpp.
|
protected |
Definition at line 178 of file Tempus_StepperExplicitRK_decl.hpp.
|
protected |
Explicit ODE ModelEvaluator.
Definition at line 163 of file Tempus_StepperExplicitRK_decl.hpp.
|
protected |
Definition at line 160 of file Tempus_StepperExplicitRK_decl.hpp.
|
protected |
Definition at line 177 of file Tempus_StepperExplicitRK_decl.hpp.
|
protected |
Definition at line 168 of file Tempus_StepperExplicitRK_decl.hpp.
|
protected |
Definition at line 165 of file Tempus_StepperExplicitRK_decl.hpp.
|
protected |
Definition at line 182 of file Tempus_StepperExplicitRK_decl.hpp.
|
protected |
Definition at line 166 of file Tempus_StepperExplicitRK_decl.hpp.
|
protected |
Definition at line 180 of file Tempus_StepperExplicitRK_decl.hpp.
|
protected |
Definition at line 171 of file Tempus_StepperExplicitRK_decl.hpp.
|
protected |
Definition at line 170 of file Tempus_StepperExplicitRK_decl.hpp.
|
protected |
Definition at line 174 of file Tempus_StepperExplicitRK_decl.hpp.
|
protected |
Definition at line 173 of file Tempus_StepperExplicitRK_decl.hpp.
|
protected |
Definition at line 161 of file Tempus_StepperExplicitRK_decl.hpp.