Tempus
Version of the Day
Time Integration
|
General Implicit Runge-Kutta Butcher Tableau. More...
#include <Tempus_StepperRKButcherTableau.hpp>
Public Member Functions | |
StepperDIRK_General () | |
Default constructor. More... | |
StepperDIRK_General (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &appModel, const Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > &solver, bool useFSAL, std::string ICConsistency, bool ICConsistencyCheck, bool useEmbedded, bool zeroInitialGuess, const Teuchos::RCP< StepperRKAppAction< Scalar > > &stepperRKAppAction, const Teuchos::SerialDenseMatrix< int, Scalar > &A, const Teuchos::SerialDenseVector< int, Scalar > &b, const Teuchos::SerialDenseVector< int, Scalar > &c, const int order, const int orderMin, const int orderMax, const Teuchos::SerialDenseVector< int, Scalar > &bstar) | |
std::string | getDescription () const |
void | setupTableau () |
void | setTableau (const Teuchos::SerialDenseMatrix< int, Scalar > &A, const Teuchos::SerialDenseVector< int, Scalar > &b, const Teuchos::SerialDenseVector< int, Scalar > &c, const int order, const int orderMin, const int orderMax, const Teuchos::SerialDenseVector< int, Scalar > &bstar=Teuchos::SerialDenseVector< int, Scalar >()) |
Teuchos::RCP< const Teuchos::ParameterList > | getValidParameters () const |
Public Member Functions inherited from Tempus::StepperDIRK< Scalar > | |
std::vector< Teuchos::RCP < Thyra::VectorBase< Scalar > > > & | getStageXDot () |
Teuchos::RCP < Thyra::VectorBase< Scalar > > & | getXTilde () |
virtual Scalar | getAlpha (const Scalar dt) const override |
Return alpha = d(xDot)/dx. More... | |
virtual Scalar | getBeta (const Scalar) const override |
Return beta = d(x)/dx. More... | |
virtual Scalar | getAlpha (const Scalar dt, int i) const |
Return alpha = d(xDot)/dx for stage i. More... | |
Teuchos::RCP < Teuchos::ParameterList > | getValidParametersBasicDIRK () const |
virtual bool | isValidSetup (Teuchos::FancyOStream &out) const override |
virtual void | setStepperDIRKValues (Teuchos::RCP< Teuchos::ParameterList > pl) |
Set StepperDIRK member data from the ParameterList. More... | |
virtual void | initialize () override |
Initialize after construction and changing input parameters. More... | |
virtual void | setModel (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &appModel) override |
Set the model. More... | |
virtual void | setInitialConditions (const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory) override |
Set the initial conditions and make them consistent. More... | |
virtual void | setResetInitialGuess (bool reset_guess) |
virtual bool | getResetInitialGuess () const |
virtual void | takeStep (const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory) override |
Take the specified timestep, dt, and return true if successful. More... | |
virtual Teuchos::RCP < Tempus::StepperState< Scalar > > | getDefaultStepperState () override |
Get a default (initial) StepperState. More... | |
virtual bool | isExplicit () const override |
virtual bool | isImplicit () const override |
virtual bool | isExplicitImplicit () const override |
virtual bool | isOneStepMethod () const override |
virtual bool | isMultiStepMethod () const override |
virtual OrderODE | getOrderODE () const override |
virtual void | describe (Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const override |
Public Member Functions inherited from Tempus::StepperImplicit< Scalar > | |
Teuchos::RCP < Teuchos::ParameterList > | getValidParametersBasicImplicit () const |
void | setStepperImplicitValues (Teuchos::RCP< Teuchos::ParameterList > pl) |
Set StepperImplicit member data from the ParameterList. More... | |
void | setStepperSolverValues (Teuchos::RCP< Teuchos::ParameterList > pl) |
Set solver from ParameterList. More... | |
void | setSolverName (std::string i) |
Set the Solver Name. More... | |
std::string | getSolverName () const |
Get the Solver Name. More... | |
virtual Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > | getModel () const override |
virtual Teuchos::RCP< const WrapperModelEvaluator< Scalar > > | getWrapperModel () |
virtual void | setDefaultSolver () |
virtual void | setSolver (Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > solver) override |
Set solver. More... | |
virtual Teuchos::RCP < Thyra::NonlinearSolverBase < Scalar > > | getSolver () const override |
Get solver. More... | |
const Thyra::SolveStatus< Scalar > | solveImplicitODE (const Teuchos::RCP< Thyra::VectorBase< Scalar > > &x, const Teuchos::RCP< Thyra::VectorBase< Scalar > > &xDot, const Scalar time, const Teuchos::RCP< ImplicitODEParameters< Scalar > > &p, const Teuchos::RCP< Thyra::VectorBase< Scalar > > &y=Teuchos::null, const int index=-1) |
Solve implicit ODE, f(x, xDot, t, p) = 0. More... | |
void | evaluateImplicitODE (Teuchos::RCP< Thyra::VectorBase< Scalar > > &f, const Teuchos::RCP< Thyra::VectorBase< Scalar > > &x, const Teuchos::RCP< Thyra::VectorBase< Scalar > > &xDot, const Scalar time, const Teuchos::RCP< ImplicitODEParameters< Scalar > > &p) |
Evaluate implicit ODE residual, f(x, xDot, t, p). More... | |
virtual void | setInitialGuess (Teuchos::RCP< const Thyra::VectorBase< Scalar > > initialGuess) override |
Pass initial guess to Newton solver (only relevant for implicit solvers) More... | |
virtual void | setZeroInitialGuess (bool zIG) |
virtual bool | getZeroInitialGuess () const |
virtual Scalar | getInitTimeStep (const Teuchos::RCP< SolutionHistory< Scalar > > &) const override |
Public Member Functions inherited from Tempus::Stepper< Scalar > | |
void | setStepperValues (const Teuchos::RCP< Teuchos::ParameterList > pl) |
Set Stepper member data from ParameterList. More... | |
Teuchos::RCP < Teuchos::ParameterList > | getValidParametersBasic () const |
Add basic parameters to Steppers ParameterList. More... | |
virtual bool | isInitialized () |
True if stepper's member data is initialized. More... | |
virtual void | checkInitialized () |
Check initialization, and error out on failure. More... | |
void | setStepperName (std::string s) |
Set the stepper name. More... | |
std::string | getStepperName () const |
Get the stepper name. More... | |
std::string | getStepperType () const |
Get the stepper type. The stepper type is used as an identifier for the stepper, and can only be set by the derived Stepper class. More... | |
virtual void | setUseFSAL (bool a) |
void | setUseFSALTrueOnly (bool a) |
void | setUseFSALFalseOnly (bool a) |
bool | getUseFSAL () const |
void | setICConsistency (std::string s) |
std::string | getICConsistency () const |
void | setICConsistencyCheck (bool c) |
bool | getICConsistencyCheck () const |
virtual Teuchos::RCP < Thyra::VectorBase< Scalar > > | getStepperX () |
Get Stepper x. More... | |
virtual Teuchos::RCP < Thyra::VectorBase< Scalar > > | getStepperXDot () |
Get Stepper xDot. More... | |
virtual Teuchos::RCP < Thyra::VectorBase< Scalar > > | getStepperXDotDot () |
Get Stepper xDotDot. More... | |
virtual Teuchos::RCP < Thyra::VectorBase< Scalar > > | getStepperXDotDot (Teuchos::RCP< SolutionState< Scalar > > state) |
Get xDotDot from SolutionState or Stepper storage. More... | |
virtual std::string | description () 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< Stepper< 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 |
Public Member Functions inherited from Tempus::StepperRKBase< Scalar > | |
virtual Teuchos::RCP< const RKButcherTableau< Scalar > > | getTableau () const |
virtual Scalar | getOrder () const |
virtual Scalar | getOrderMin () const |
virtual Scalar | getOrderMax () const |
virtual int | getNumberOfStages () const |
virtual int | getStageNumber () const |
virtual void | setStageNumber (int s) |
virtual void | setUseEmbedded (bool a) |
virtual bool | getUseEmbedded () const |
virtual void | setErrorNorm (const Teuchos::RCP< Stepper_ErrorNorm< Scalar >> &errCalculator=Teuchos::null) |
virtual void | setAppAction (Teuchos::RCP< StepperRKAppAction< Scalar >> appAction) |
virtual Teuchos::RCP < StepperRKAppAction< Scalar > > | getAppAction () const |
virtual void | setStepperRKValues (Teuchos::RCP< Teuchos::ParameterList > pl) |
Set StepperRK member data from the ParameterList. More... | |
virtual Teuchos::RCP < RKButcherTableau< Scalar > > | createTableau (Teuchos::RCP< Teuchos::ParameterList > pl) |
Additional Inherited Members | |
Static Public Member Functions inherited from Teuchos::VerboseObject< Stepper< 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::StepperDIRK< Scalar > | |
virtual void | setupDefault () |
Default setup for constructor. More... | |
virtual void | setup (const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &wrapperModel, const Teuchos::RCP< Thyra::NonlinearSolverBase< Scalar > > &solver, bool useFSAL, std::string ICConsistency, bool ICConsistencyCheck, bool useEmbedded, bool zeroInitialGuess, const Teuchos::RCP< StepperRKAppAction< Scalar > > &stepperRKAppAction) |
Setup for constructor. More... | |
virtual void | setEmbeddedMemory () override |
Protected Member Functions inherited from Tempus::Stepper< Scalar > | |
virtual void | setStepperX (Teuchos::RCP< Thyra::VectorBase< Scalar > > x) |
Set x for Stepper storage. More... | |
virtual void | setStepperXDot (Teuchos::RCP< Thyra::VectorBase< Scalar > > xDot) |
Set xDot for Stepper storage. More... | |
virtual void | setStepperXDotDot (Teuchos::RCP< Thyra::VectorBase< Scalar > > xDotDot) |
Set x for Stepper storage. More... | |
void | setStepperType (std::string s) |
Set the stepper type. More... | |
Protected Member Functions inherited from Teuchos::VerboseObject< Stepper< 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::StepperDIRK< Scalar > | |
std::vector< Teuchos::RCP < Thyra::VectorBase< Scalar > > > | stageXDot_ |
Teuchos::RCP < Thyra::VectorBase< Scalar > > | xTilde_ |
bool | resetGuess_ = true |
Protected Attributes inherited from Tempus::StepperImplicit< Scalar > | |
Teuchos::RCP < WrapperModelEvaluator < Scalar > > | wrapperModel_ |
Teuchos::RCP < Thyra::NonlinearSolverBase < Scalar > > | solver_ |
Teuchos::RCP< const Thyra::VectorBase< Scalar > > | initialGuess_ |
bool | zeroInitialGuess_ |
std::string | solverName_ |
Protected Attributes inherited from Tempus::Stepper< Scalar > | |
bool | useFSAL_ = false |
Use First-Same-As-Last (FSAL) principle. More... | |
bool | isInitialized_ |
True if stepper's member data is initialized. More... | |
Protected Attributes inherited from Tempus::StepperRKBase< Scalar > | |
Teuchos::RCP< RKButcherTableau < Scalar > > | tableau_ |
bool | useEmbedded_ |
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 < Stepper_ErrorNorm< Scalar > > | stepperErrorNormCalculator_ |
int | stageNumber_ |
Teuchos::RCP < StepperRKAppAction< Scalar > > | stepperRKAppAction_ |
General Implicit Runge-Kutta Butcher Tableau.
The format of the Butcher Tableau parameter list is
<Parameter name="A" type="string" value="# # # ; # # # ; # # #"> <Parameter name="b" type="string" value="# # #"> <Parameter name="c" type="string" value="# # #">
Note the number of stages is implicit in the number of entries. The number of stages must be consistent.
Default tableau is "SDIRK 2 Stage 2nd order":
where . This will produce an L-stable 2nd order method.
Reference: U. M. Ascher and L. R. Petzold, Computer Methods for ODEs and DAEs, p. 106.
See StepperDIRK for additional details.
Definition at line 4953 of file Tempus_StepperRKButcherTableau.hpp.
|
inline |
Default constructor.
Requires subsequent setModel() and initialize() calls before calling takestep().
Definition at line 4960 of file Tempus_StepperRKButcherTableau.hpp.
|
inline |
Definition at line 4971 of file Tempus_StepperRKButcherTableau.hpp.
|
inlinevirtual |
Implements Tempus::StepperDIRK< Scalar >.
Definition at line 4995 of file Tempus_StepperRKButcherTableau.hpp.
|
inlinevirtual |
Implements Tempus::StepperDIRK< Scalar >.
Definition at line 5021 of file Tempus_StepperRKButcherTableau.hpp.
|
inline |
Definition at line 5034 of file Tempus_StepperRKButcherTableau.hpp.
|
inlinevirtual |
Reimplemented from Tempus::StepperDIRK< Scalar >.
Definition at line 5046 of file Tempus_StepperRKButcherTableau.hpp.