9 #ifndef Tempus_StepperBDF2_decl_hpp 10 #define Tempus_StepperBDF2_decl_hpp 12 #include "Tempus_config.hpp" 13 #include "Tempus_StepperImplicit.hpp" 98 template<
class Scalar>
112 const Teuchos::RCP<Thyra::NonlinearSolverBase<Scalar> >& solver,
115 std::string ICConsistency,
116 bool ICConsistencyCheck,
117 bool zeroInitialGuess,
128 virtual Teuchos::RCP<StepperBDF2AppAction<Scalar> >
getAppAction()
const 163 virtual Scalar
getAlpha(
const Scalar dt,
const Scalar dtOld)
const 164 {
return (Scalar(2.0)*dt + dtOld)/(dt*(dt + dtOld)); }
166 virtual Scalar
getBeta (
const Scalar )
const {
return Scalar(1.0); }
176 virtual void describe(Teuchos::FancyOStream & out,
177 const Teuchos::EVerbosityLevel verbLevel)
const;
180 virtual bool isValidSetup(Teuchos::FancyOStream & out)
const;
205 template <
typename Scalar>
226 xDotDot = Teuchos::null;
231 Thyra::V_StVpStV(xDot.ptr(), a, *x, -(a+b), *
xOld_);
232 Thyra::Vp_StV(xDot.ptr(), b, *
xOldOld_);
242 Teuchos::RCP<const Thyra::VectorBase<Scalar> >
xOld_;
243 Teuchos::RCP<const Thyra::VectorBase<Scalar> >
xOldOld_;
251 template<
class Scalar>
252 Teuchos::RCP<StepperBDF2<Scalar> >
255 Teuchos::RCP<Teuchos::ParameterList> pl);
260 #endif // Tempus_StepperBDF2_decl_hpp virtual Scalar getOrderMin() const
BDF2 (Backward-Difference-Formula-2) time stepper.
virtual Scalar getBeta(const Scalar) const
Return beta = d(x)/dx.
virtual void setInitialConditions(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory)
Set the initial conditions and make them consistent.
virtual bool isOneStepMethod() const
Time-derivative interface for BDF2.
virtual Teuchos::RCP< Tempus::StepperState< Scalar > > getDefaultStepperState()
Get a default (initial) StepperState.
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 OrderODE getOrderODE() const
virtual void setModel(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &appModel)
Set the model.
virtual Scalar getOrder() const
virtual bool isImplicit() const
Teuchos::RCP< StepperBDF2AppAction< Scalar > > stepperBDF2AppAction_
Teuchos::RCP< Stepper< Scalar > > startUpStepper_
virtual bool isExplicitImplicit() const
virtual Scalar getAlpha(const Scalar dt, const Scalar dtOld) const
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
virtual void computeStartUp(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory)
Compute the first time step given the supplied startup stepper.
virtual void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
virtual ~StepperBDF2TimeDerivative()
Destructor.
Thyra Base interface for time steppers.
Thyra Base interface for implicit time steppers.
virtual bool isExplicit() const
virtual bool isValidSetup(Teuchos::FancyOStream &out) const
virtual void setAppAction(Teuchos::RCP< StepperBDF2AppAction< Scalar > > appAction)
virtual bool isMultiStepMethod() const
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
virtual Teuchos::RCP< StepperBDF2AppAction< Scalar > > getAppAction() const
Teuchos::RCP< const Thyra::VectorBase< Scalar > > xOld_
Stepper integrates first-order ODEs.
StepperBDF2TimeDerivative(Scalar dt, Scalar dtOld, Teuchos::RCP< const Thyra::VectorBase< Scalar > > xOld, Teuchos::RCP< const Thyra::VectorBase< Scalar > > xOldOld)
Constructor.
Teuchos::RCP< StepperBDF2< Scalar > > createStepperBDF2(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &model, Teuchos::RCP< Teuchos::ParameterList > pl)
Nonmember constructor - ModelEvaluator and ParameterList.
This interface defines the time derivative connection between an implicit Stepper and WrapperModelEva...
Application Action for StepperBDF2.
virtual void initialize(Scalar dt, Scalar dtOld, Teuchos::RCP< const Thyra::VectorBase< Scalar > > xOld, Teuchos::RCP< const Thyra::VectorBase< Scalar > > xOldOld)
virtual Scalar getAlpha(const Scalar dt) const
Return alpha = d(xDot)/dx.
virtual Scalar getOrderMax() const
Teuchos::RCP< const Thyra::VectorBase< Scalar > > xOldOld_
virtual void takeStep(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory)
Take the specified timestep, dt, and return true if successful.
void setStartUpStepper(std::string startupStepperType)
Set the stepper to use in first step.
virtual void initialize()
Initialize during construction and after changing input parameters.
StepperBDF2()
Default constructor.