Tempus
Version of the Day
Time Integration
|
Thyra Base interface for implicit time steppers. More...
#include <Tempus_StepperImplicit_decl.hpp>
Public Member Functions | |
Basic implicit 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 Teuchos::RCP< const WrapperModelEvaluator< Scalar > > | getWrapperModel () |
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 std::string | getStepperType () const |
virtual void | setInitialConditions (const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory) |
Set the initial conditions and make them consistent. More... | |
virtual Scalar | getAlpha (const Scalar dt) const =0 |
Return alpha = d(xDot)/dx. More... | |
virtual Scalar | getBeta (const Scalar dt) const =0 |
Return beta = d(x)/dx. More... | |
const Thyra::SolveStatus< Scalar > | solveImplicitODE (const Teuchos::RCP< Thyra::VectorBase< Scalar > > &x) |
Solve problem using x in-place. (Needs to be deprecated!) 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) |
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, f(x, xDot, t, p), residual. 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 void | setZeroInitialGuess (bool zIG) |
Set parameter so that the initial guess is set to zero (=True) or use last timestep (=False). More... | |
virtual bool | getZeroInitialGuess () const |
virtual Scalar | getInitTimeStep (const Teuchos::RCP< SolutionHistory< Scalar > > &) const |
virtual bool | getEmbedded () const |
virtual void | setUseFSAL (bool a) |
virtual bool | getUseFSAL () const |
virtual void | setICConsistency (std::string s) |
virtual std::string | getICConsistency () const |
virtual void | setICConsistencyCheck (bool c) |
virtual bool | getICConsistencyCheck () const |
virtual void | setStepperXDot (Teuchos::RCP< Thyra::VectorBase< Scalar > > xDot) |
Set xDot for Stepper storage. More... | |
virtual Teuchos::RCP < Thyra::VectorBase< Scalar > > | getStepperXDot (Teuchos::RCP< SolutionState< Scalar > > state) |
Get xDot from SolutionState or Stepper storage. More... | |
virtual Teuchos::RCP < Thyra::VectorBase< Scalar > > | getStepperXDotDot (Teuchos::RCP< SolutionState< Scalar > > state) |
Get xDotDot from SolutionState or Stepper storage. More... | |
Public Member Functions inherited from Tempus::Stepper< Scalar > | |
virtual void | modelWarning () const |
virtual void | setObserver (Teuchos::RCP< StepperObserver< Scalar > > obs=Teuchos::null)=0 |
Set Observer. More... | |
virtual void | initialize ()=0 |
Initialize during construction and after changing input parameters. More... | |
virtual void | takeStep (const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory)=0 |
Take the specified timestep, dt, and return true if successful. More... | |
virtual Teuchos::RCP < Tempus::StepperState< Scalar > > | getDefaultStepperState ()=0 |
virtual Scalar | getOrder () const =0 |
virtual Scalar | getOrderMin () const =0 |
virtual Scalar | getOrderMax () const =0 |
virtual Teuchos::RCP < Teuchos::ParameterList > | getDefaultParameters () const =0 |
virtual bool | isExplicit () const =0 |
virtual bool | isImplicit () const =0 |
virtual bool | isExplicitImplicit () const =0 |
virtual bool | isOneStepMethod () const =0 |
virtual bool | isMultiStepMethod () const =0 |
virtual OrderODE | getOrderODE () const =0 |
void | getValidParametersBasic (Teuchos::RCP< Teuchos::ParameterList > pl) const |
virtual void | createSubSteppers (std::vector< Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > >) |
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 |
Protected Attributes | |
Teuchos::RCP < Teuchos::ParameterList > | stepperPL_ |
Teuchos::RCP < WrapperModelEvaluator < Scalar > > | wrapperModel_ |
Teuchos::RCP < Thyra::NonlinearSolverBase < Scalar > > | solver_ |
Teuchos::RCP< const Thyra::VectorBase< Scalar > > | initial_guess_ |
Teuchos::RCP< StepperObserver < Scalar > > | stepperObserver_ |
Teuchos::RCP < Thyra::VectorBase< Scalar > > | stepperXDot_ |
Teuchos::RCP < Thyra::VectorBase< Scalar > > | stepperXDotDot_ |
Thyra Base interface for implicit time steppers.
Definition at line 49 of file Tempus_StepperImplicit_decl.hpp.
void Tempus::StepperImplicit< Scalar >::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, f(x, xDot, t, p), residual.
Definition at line 396 of file Tempus_StepperImplicit_impl.hpp.
|
pure virtual |
Return alpha = d(xDot)/dx.
Implemented in Tempus::StepperIMEX_RK< Scalar >, Tempus::StepperIMEX_RK_Partition< Scalar >, Tempus::StepperDIRK< Scalar >, Tempus::StepperNewmarkImplicitAForm< Scalar >, Tempus::StepperNewmarkImplicitDForm< Scalar >, Tempus::StepperBDF2< Scalar >, Tempus::StepperHHTAlpha< Scalar >, Tempus::StepperBackwardEuler< Scalar >, and Tempus::StepperTrapezoidal< Scalar >.
|
pure virtual |
Return beta = d(x)/dx.
Implemented in Tempus::StepperIMEX_RK< Scalar >, Tempus::StepperIMEX_RK_Partition< Scalar >, Tempus::StepperDIRK< Scalar >, Tempus::StepperNewmarkImplicitAForm< Scalar >, Tempus::StepperNewmarkImplicitDForm< Scalar >, Tempus::StepperBDF2< Scalar >, Tempus::StepperHHTAlpha< Scalar >, Tempus::StepperBackwardEuler< Scalar >, and Tempus::StepperTrapezoidal< Scalar >.
|
inlinevirtual |
Definition at line 120 of file Tempus_StepperImplicit_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 133 of file Tempus_StepperImplicit_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 143 of file Tempus_StepperImplicit_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 116 of file Tempus_StepperImplicit_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Reimplemented in Tempus::StepperIMEX_RK< Scalar >, and Tempus::StepperIMEX_RK_Partition< Scalar >.
Definition at line 60 of file Tempus_StepperImplicit_decl.hpp.
|
inlinevirtual |
Get solver.
Implements Tempus::Stepper< Scalar >.
Definition at line 72 of file Tempus_StepperImplicit_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 75 of file Tempus_StepperImplicit_decl.hpp.
|
virtual |
Get xDot from SolutionState or Stepper storage.
Definition at line 303 of file Tempus_StepperImplicit_impl.hpp.
|
virtual |
Get xDotDot from SolutionState or Stepper storage.
Definition at line 320 of file Tempus_StepperImplicit_impl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 124 of file Tempus_StepperImplicit_decl.hpp.
|
inlinevirtual |
Definition at line 62 of file Tempus_StepperImplicit_decl.hpp.
|
inlinevirtual |
Definition at line 114 of file Tempus_StepperImplicit_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 131 of file Tempus_StepperImplicit_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 141 of file Tempus_StepperImplicit_decl.hpp.
|
virtual |
Set the initial conditions and make them consistent.
Implements Tempus::Stepper< Scalar >.
Reimplemented in Tempus::StepperIMEX_RK< Scalar >, Tempus::StepperIMEX_RK_Partition< Scalar >, Tempus::StepperDIRK< Scalar >, Tempus::StepperNewmarkImplicitAForm< Scalar >, Tempus::StepperBDF2< Scalar >, Tempus::StepperHHTAlpha< Scalar >, Tempus::StepperNewmarkImplicitDForm< Scalar >, Tempus::StepperBackwardEuler< Scalar >, and Tempus::StepperTrapezoidal< Scalar >.
Definition at line 44 of file Tempus_StepperImplicit_impl.hpp.
|
inlinevirtual |
Pass initial guess to Newton solver (only relevant for implicit solvers)
Implements Tempus::Stepper< Scalar >.
Definition at line 107 of file Tempus_StepperImplicit_decl.hpp.
|
virtual |
Implements Tempus::Stepper< Scalar >.
Reimplemented in Tempus::StepperIMEX_RK< Scalar >, Tempus::StepperIMEX_RK_Partition< Scalar >, Tempus::StepperNewmarkImplicitAForm< Scalar >, and Tempus::StepperHHTAlpha< Scalar >.
Definition at line 26 of file Tempus_StepperImplicit_impl.hpp.
|
virtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 36 of file Tempus_StepperImplicit_impl.hpp.
|
virtual |
Set solver via ParameterList solver name.
Set the solver to a pre-defined solver in the ParameterList.
The solver is set to solverName sublist in the Stepper's ParameterList. The solverName sublist should already be defined in the Stepper's ParameterList. Otherwise it will fail.
Implements Tempus::Stepper< Scalar >.
Definition at line 242 of file Tempus_StepperImplicit_impl.hpp.
|
virtual |
Set solver via solver ParameterList.
Set the solver to the supplied Parameter sublist.
This adds a new solver Parameter sublist to the Stepper's ParameterList. If the solver sublist is null, the solver is set to the solver name in the Stepper's ParameterList.
Implements Tempus::Stepper< Scalar >.
Definition at line 257 of file Tempus_StepperImplicit_impl.hpp.
|
virtual |
Set solver.
Set the solver.
This sets the solver to supplied solver and adds solver's ParameterList to the Stepper ParameterList.
Implements Tempus::Stepper< Scalar >.
Definition at line 292 of file Tempus_StepperImplicit_impl.hpp.
|
inlinevirtual |
Set xDot for Stepper storage.
Definition at line 152 of file Tempus_StepperImplicit_decl.hpp.
|
inlinevirtual |
Implements Tempus::Stepper< Scalar >.
Definition at line 123 of file Tempus_StepperImplicit_decl.hpp.
|
inlinevirtual |
Set parameter so that the initial guess is set to zero (=True) or use last timestep (=False).
Definition at line 112 of file Tempus_StepperImplicit_decl.hpp.
const Thyra::SolveStatus< Scalar > Tempus::StepperImplicit< Scalar >::solveImplicitODE | ( | const Teuchos::RCP< Thyra::VectorBase< Scalar > > & | x | ) |
Solve problem using x in-place. (Needs to be deprecated!)
Definition at line 336 of file Tempus_StepperImplicit_impl.hpp.
const Thyra::SolveStatus< Scalar > Tempus::StepperImplicit< 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 | ||
) |
Solve implicit ODE, f(x, xDot, t, p) = 0.
Definition at line 350 of file Tempus_StepperImplicit_impl.hpp.
|
protected |
Definition at line 169 of file Tempus_StepperImplicit_decl.hpp.
|
protected |
Definition at line 168 of file Tempus_StepperImplicit_decl.hpp.
|
protected |
Definition at line 171 of file Tempus_StepperImplicit_decl.hpp.
|
protected |
Definition at line 166 of file Tempus_StepperImplicit_decl.hpp.
|
protected |
Definition at line 174 of file Tempus_StepperImplicit_decl.hpp.
|
protected |
Definition at line 175 of file Tempus_StepperImplicit_decl.hpp.
|
protected |
Definition at line 167 of file Tempus_StepperImplicit_decl.hpp.