|
Tempus
Version of the Day
Time Integration
|
Go to the documentation of this file.
9 #ifndef Tempus_StepperBackwardEuler_decl_hpp
10 #define Tempus_StepperBackwardEuler_decl_hpp
12 #include "Tempus_StepperImplicit.hpp"
32 template<
class Scalar>
41 const Teuchos::RCP<
const Thyra::ModelEvaluator<Scalar> >& appModel,
42 Teuchos::RCP<Teuchos::ParameterList> pList = Teuchos::null);
51 void setPredictor(Teuchos::RCP<Teuchos::ParameterList>predPL=Teuchos::null);
61 virtual void setInitialGuess(Teuchos::RCP<
const Thyra::VectorBase<Scalar> > initial_guess)
83 virtual Teuchos::RCP<Thyra::VectorBase<Scalar> >
getXDotTemp(
84 Teuchos::RCP<
const Thyra::VectorBase<Scalar> > x)
const;
98 virtual void describe(Teuchos::FancyOStream & out,
99 const Teuchos::EVerbosityLevel verbLevel)
const;
106 Thyra::VectorBase<Scalar>& residual,
107 const Teuchos::Array< Teuchos::RCP<
const Thyra::VectorBase<Scalar> > >& x,
108 const Teuchos::Array<Scalar>& t,
109 const Thyra::VectorBase<Scalar>& p,
110 const int param_index)
const;
112 Thyra::LinearOpBase<Scalar>& jacobian,
113 const Teuchos::Array< Teuchos::RCP<
const Thyra::VectorBase<Scalar> > >& x,
114 const Teuchos::Array<Scalar>& t,
115 const Thyra::VectorBase<Scalar>& p,
116 const int param_index,
117 const int deriv_index)
const;
119 Thyra::LinearOpBase<Scalar>& deriv,
120 const Teuchos::Array< Teuchos::RCP<
const Thyra::VectorBase<Scalar> > >& x,
121 const Teuchos::Array<Scalar>& t,
122 const Thyra::VectorBase<Scalar>& p,
123 const int param_index)
const;
125 Thyra::LinearOpWithSolveBase<Scalar>& jacobian_solver,
126 const Teuchos::Array< Teuchos::RCP<
const Thyra::VectorBase<Scalar> > >& x,
127 const Teuchos::Array<Scalar>& t,
128 const Thyra::VectorBase<Scalar>& p,
129 const int param_index)
const;
139 const Thyra::ModelEvaluatorBase::OutArgs<Scalar>& outArgs,
140 const Teuchos::Array< Teuchos::RCP<
const Thyra::VectorBase<Scalar> > >& x,
141 const Teuchos::Array<Scalar>& t,
142 const Thyra::VectorBase<Scalar>& p,
143 const int param_index,
144 const int deriv_index = 0)
const;
152 mutable Teuchos::RCP<Thyra::VectorBase<Scalar> >
xDotTemp_;
164 template <
typename Scalar>
172 Scalar s, Teuchos::RCP<
const Thyra::VectorBase<Scalar> > xOld)
180 Teuchos::RCP<
const Thyra::VectorBase<Scalar> > x,
181 Teuchos::RCP< Thyra::VectorBase<Scalar> > xDot,
182 Teuchos::RCP< Thyra::VectorBase<Scalar> > xDotDot = Teuchos::null)
184 xDotDot = Teuchos::null;
186 Thyra::V_StVpStV(xDot.ptr(),
s_,*x,-
s_,*
xOld_);
190 Teuchos::RCP<
const Thyra::VectorBase<Scalar> > xOld)
195 Teuchos::RCP<const Thyra::VectorBase<Scalar> >
xOld_;
202 #endif // Tempus_StepperBackwardEuler_decl_hpp
virtual void computeStepParamDeriv(Thyra::LinearOpBase< Scalar > &deriv, const Teuchos::Array< Teuchos::RCP< const Thyra::VectorBase< Scalar > > > &x, const Teuchos::Array< Scalar > &t, const Thyra::VectorBase< Scalar > &p, const int param_index) const
Compute time step derivative w.r.t. model parameters.
virtual void compute(Teuchos::RCP< const Thyra::VectorBase< Scalar > > x, Teuchos::RCP< Thyra::VectorBase< Scalar > > xDot, Teuchos::RCP< Thyra::VectorBase< Scalar > > xDotDot=Teuchos::null)
Compute the time derivative.
virtual Scalar getOrder() const
void computeStepResidDerivImpl(const Thyra::ModelEvaluatorBase::OutArgs< Scalar > &outArgs, const Teuchos::Array< Teuchos::RCP< const Thyra::VectorBase< Scalar > > > &x, const Teuchos::Array< Scalar > &t, const Thyra::VectorBase< Scalar > &p, const int param_index, const int deriv_index=0) const
Implementation of computeStep*() methods.
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
Teuchos::RCP< SolutionHistory< Scalar > > solutionHistory(Teuchos::RCP< Teuchos::ParameterList > pList=Teuchos::null)
Nonmember constructor.
virtual void setObserver(Teuchos::RCP< StepperObserver< Scalar > > obs=Teuchos::null)
Set Observer.
Teuchos::RCP< const Thyra::VectorBase< Scalar > > xOld_
Teuchos::RCP< Teuchos::ParameterList > getDefaultParameters() const
virtual bool isExplicit() const
virtual bool isImplicit() const
virtual Scalar getOrderMax() const
Stepper interface to support full-space optimization.
virtual bool isOneStepMethod() const
virtual int stencilLength() const
Return the number of solution vectors in the time step stencil.
Time-derivative interface for Backward Euler.
Teuchos::RCP< Teuchos::ParameterList > unsetParameterList()
StepperBackwardEuler()
Default Constructor – not allowed.
Teuchos::RCP< const Thyra::VectorBase< Scalar > > initial_guess_
Teuchos::RCP< StepperBackwardEulerObserver< Scalar > > stepperBEObserver_
StepperBackwardEulerTimeDerivative(Scalar s, Teuchos::RCP< const Thyra::VectorBase< Scalar > > xOld)
Constructor.
virtual void initialize(Scalar s, Teuchos::RCP< const Thyra::VectorBase< Scalar > > xOld)
virtual bool isMultiStepMethod() const
virtual void initialize()
Initialize during construction and after changing input parameters.
StepperObserver class for Stepper class.
Teuchos::RCP< Thyra::VectorBase< Scalar > > xDotTemp_
void setPredictor(std::string predictorName)
Set the predictor.
virtual std::string description() const
Backward Euler time stepper.
Thyra Base interface for implicit time steppers.
virtual void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
virtual bool isExplicitImplicit() const
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
Teuchos::RCP< StepperObserver< Scalar > > stepperObserver_
virtual void takeStep(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory)
Take the specified timestep, dt, and return true if successful.
virtual Scalar getOrderMin() const
virtual void computePredictor(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory)
Compute predictor given the supplied stepper.
virtual void computeStepSolver(Thyra::LinearOpWithSolveBase< Scalar > &jacobian_solver, const Teuchos::Array< Teuchos::RCP< const Thyra::VectorBase< Scalar > > > &x, const Teuchos::Array< Scalar > &t, const Thyra::VectorBase< Scalar > &p, const int param_index) const
Compute time step Jacobian solver.
This interface defines the time derivative connection between an implicit Stepper and WrapperModelEva...
virtual void setInitialGuess(Teuchos::RCP< const Thyra::VectorBase< Scalar > > initial_guess)
Pass initial guess to Newton solver.
virtual Teuchos::RCP< Thyra::VectorBase< Scalar > > getXDotTemp(Teuchos::RCP< const Thyra::VectorBase< Scalar > > x) const
Provide temporary xDot memory for Stepper if SolutionState doesn't.
virtual void computeStepJacobian(Thyra::LinearOpBase< Scalar > &jacobian, const Teuchos::Array< Teuchos::RCP< const Thyra::VectorBase< Scalar > > > &x, const Teuchos::Array< Scalar > &t, const Thyra::VectorBase< Scalar > &p, const int param_index, const int deriv_index) const
Compute time step Jacobian.
Teuchos::RCP< Teuchos::ParameterList > getNonconstParameterList()
Teuchos::RCP< Stepper< Scalar > > predictorStepper_
virtual ~StepperBackwardEulerTimeDerivative()
Destructor.
virtual Teuchos::RCP< Tempus::StepperState< Scalar > > getDefaultStepperState()
Get a default (initial) StepperState.
virtual void computeStepResidual(Thyra::VectorBase< Scalar > &residual, const Teuchos::Array< Teuchos::RCP< const Thyra::VectorBase< Scalar > > > &x, const Teuchos::Array< Scalar > &t, const Thyra::VectorBase< Scalar > &p, const int param_index) const
Compute time step residual.
void setParameterList(const Teuchos::RCP< Teuchos::ParameterList > &pl)