9#ifndef Tempus_StepperBackwardEuler_decl_hpp
10#define Tempus_StepperBackwardEuler_decl_hpp
12#include "Tempus_config.hpp"
13#include "Tempus_StepperImplicit.hpp"
91 const Teuchos::RCP<Thyra::NonlinearSolverBase<Scalar> >& solver,
94 std::string ICConsistency,
95 bool ICConsistencyCheck,
96 bool zeroInitialGuess,
104 virtual Teuchos::RCP<StepperBackwardEulerAppAction<Scalar> >
getAppAction()
const
125 virtual Scalar
getOrder()
const override {
return 1.0;}
139 virtual Scalar
getAlpha(
const Scalar dt)
const override {
return Scalar(1.0)/dt; }
141 virtual Scalar
getBeta (
const Scalar )
const override {
return Scalar(1.0); }
152 virtual void describe(Teuchos::FancyOStream & out,
153 const Teuchos::EVerbosityLevel verbLevel)
const override;
156 virtual bool isValidSetup(Teuchos::FancyOStream & out)
const override;
164 const Teuchos::Array<Scalar>& t,
166 const int param_index)
const override;
170 const Teuchos::Array<Scalar>& t,
172 const int param_index,
173 const int deriv_index)
const override;
177 const Teuchos::Array<Scalar>& t,
179 const int param_index)
const override;
183 const Teuchos::Array<Scalar>& t,
185 const int param_index)
const override;
192 const Thyra::ModelEvaluatorBase::OutArgs<Scalar>& outArgs,
194 const Teuchos::Array<Scalar>& t,
196 const int param_index,
197 const int deriv_index = 0)
const;
214template <
typename Scalar>
234 xDotDot = Teuchos::null;
236 Thyra::V_StVpStV(xDot.ptr(),
s_,*x,-
s_,*
xOld_);
245 Teuchos::RCP<const Thyra::VectorBase<Scalar> >
xOld_;
252template<
class Scalar>
253Teuchos::RCP<StepperBackwardEuler<Scalar> >
256 Teuchos::RCP<Teuchos::ParameterList> pl);
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
Application Action for StepperBackwardEuler.
Time-derivative interface for Backward Euler.
Teuchos::RCP< const Thyra::VectorBase< Scalar > > xOld_
virtual void initialize(Scalar s, Teuchos::RCP< const Thyra::VectorBase< Scalar > > xOld)
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.
StepperBackwardEulerTimeDerivative(Scalar s, Teuchos::RCP< const Thyra::VectorBase< Scalar > > xOld)
Constructor.
virtual ~StepperBackwardEulerTimeDerivative()
Destructor.
Backward Euler time stepper.
virtual bool isMultiStepMethod() const override
virtual Teuchos::RCP< StepperBackwardEulerAppAction< Scalar > > getAppAction() const
virtual Scalar getAlpha(const Scalar dt) const override
Return alpha = d(xDot)/dx.
virtual Teuchos::RCP< Tempus::StepperState< Scalar > > getDefaultStepperState() override
Get a default (initial) StepperState.
virtual void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const override
virtual void setAppAction(Teuchos::RCP< StepperBackwardEulerAppAction< Scalar > > appAction)
virtual Scalar getBeta(const Scalar) const override
Return beta = d(x)/dx.
virtual bool isExplicit() const override
virtual int stencilLength() const override
Return the number of solution vectors in the time step stencil.
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 override
Compute time step residual.
virtual void setModel(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &appModel) override
Set the model.
virtual void computePredictor(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory)
Compute predictor given the supplied stepper.
Teuchos::RCP< StepperBackwardEulerAppAction< Scalar > > stepperBEAppAction_
void setPredictor(std::string predictorType="None")
Set the predictor.
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 override
Compute time step Jacobian solver.
virtual bool isImplicit() const override
Teuchos::RCP< Stepper< Scalar > > predictorStepper_
virtual Scalar getOrderMin() const override
virtual Scalar getOrderMax() const override
virtual OrderODE getOrderODE() const override
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 override
Compute time step Jacobian.
virtual Scalar getOrder() const override
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 override
Compute time step derivative w.r.t. model parameters.
StepperBackwardEuler()
Default constructor.
virtual bool isExplicitImplicit() const override
virtual bool isValidSetup(Teuchos::FancyOStream &out) const override
virtual void setInitialConditions(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory) override
Set the initial conditions and make them consistent.
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const override
Return a valid ParameterList with current settings.
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.
virtual bool isOneStepMethod() const override
virtual void takeStep(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory) override
Take the specified timestep, dt, and return true if successful.
Thyra Base interface for implicit time steppers.
Stepper interface to support full-space optimization.
Thyra Base interface for time steppers.
This interface defines the time derivative connection between an implicit Stepper and WrapperModelEva...
Teuchos::RCP< StepperBackwardEuler< Scalar > > createStepperBackwardEuler(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model, Teuchos::RCP< Teuchos::ParameterList > pl)
Nonmember constructor - ModelEvaluator and ParameterList.
@ FIRST_ORDER_ODE
Stepper integrates first-order ODEs.