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 Teuchos::RCP< const Thyra::VectorBase< Scalar > > xOld_
virtual std::string description() const
virtual void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
virtual bool isImplicit() const
StepperBackwardEuler()
Default Constructor – not allowed.
Teuchos::RCP< const Thyra::VectorBase< Scalar > > initial_guess_
virtual ~StepperBackwardEulerTimeDerivative()
Destructor.
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 void takeStep(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory)
Take the specified timestep, dt, and return true if successful.
virtual void setInitialGuess(Teuchos::RCP< const Thyra::VectorBase< Scalar > > initial_guess)
Pass initial guess to Newton solver.
virtual void computePredictor(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory)
Compute predictor given the supplied stepper.
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 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.
virtual Teuchos::RCP< Tempus::StepperState< Scalar > > getDefaultStepperState()
Get a default (initial) StepperState.
void setPredictor(std::string predictorName)
Set the predictor.
virtual void setObserver(Teuchos::RCP< StepperObserver< Scalar > > obs=Teuchos::null)
Set Observer.
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.
virtual bool isExplicit() const
virtual int stencilLength() const
Return the number of solution vectors in the time step stencil.
Thyra Base interface for implicit time steppers.
virtual Scalar getOrder() const
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.
Teuchos::RCP< StepperObserver< Scalar > > stepperObserver_
virtual bool isExplicitImplicit() const
StepperObserver class for Stepper class.
Teuchos::RCP< SolutionHistory< Scalar > > solutionHistory(Teuchos::RCP< Teuchos::ParameterList > pList=Teuchos::null)
Nonmember constructor.
Backward Euler time stepper.
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
Teuchos::RCP< Stepper< Scalar > > predictorStepper_
virtual bool isMultiStepMethod() const
Teuchos::RCP< Teuchos::ParameterList > getNonconstParameterList()
Teuchos::RCP< Teuchos::ParameterList > getDefaultParameters() const
StepperBackwardEulerTimeDerivative(Scalar s, Teuchos::RCP< const Thyra::VectorBase< Scalar > > xOld)
Constructor.
virtual bool isOneStepMethod() const
This interface defines the time derivative connection between an implicit Stepper and WrapperModelEva...
Teuchos::RCP< StepperBackwardEulerObserver< Scalar > > stepperBEObserver_
virtual Scalar getOrderMax() const
Teuchos::RCP< Teuchos::ParameterList > unsetParameterList()
void setParameterList(const Teuchos::RCP< Teuchos::ParameterList > &pl)
virtual void initialize(Scalar s, Teuchos::RCP< const Thyra::VectorBase< Scalar > > xOld)
Stepper interface to support full-space optimization.
Time-derivative interface for Backward Euler.
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 Scalar getOrderMin() const
virtual void initialize()
Initialize during construction and after changing input parameters.
Teuchos::RCP< Thyra::VectorBase< Scalar > > xDotTemp_
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