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