9 #ifndef Tempus_StepperBDF2_decl_hpp 10 #define Tempus_StepperBDF2_decl_hpp 12 #include "Tempus_StepperImplicit.hpp" 43 template<
class Scalar>
50 const Teuchos::RCP<
const Thyra::ModelEvaluator<Scalar> >& appModel,
51 Teuchos::RCP<Teuchos::ParameterList> pList = Teuchos::null);
60 void setStartUpStepper(Teuchos::RCP<Teuchos::ParameterList>startUpStepperPL=Teuchos::null);
88 virtual void setInitialGuess(Teuchos::RCP<
const Thyra::VectorBase<Scalar> > initial_guess)
93 virtual Teuchos::RCP<Thyra::VectorBase<Scalar> >
getXDotTemp(
94 Teuchos::RCP<Thyra::VectorBase<Scalar> > x);
108 virtual void describe(Teuchos::FancyOStream & out,
109 const Teuchos::EVerbosityLevel verbLevel)
const;
145 template <
typename Scalar>
153 Scalar dt, Scalar dtOld, Teuchos::RCP<
const Thyra::VectorBase<Scalar> > xOld,
154 Teuchos::RCP<
const Thyra::VectorBase<Scalar> > xOldOld)
162 Teuchos::RCP<
const Thyra::VectorBase<Scalar> > x,
163 Teuchos::RCP< Thyra::VectorBase<Scalar> > xDot,
164 Teuchos::RCP< Thyra::VectorBase<Scalar> > xDotDot = Teuchos::null)
166 xDotDot = Teuchos::null;
171 Thyra::V_StVpStV(xDot.ptr(),a,*x,-a,*
xOld_);
172 Teuchos::RCP<Thyra::VectorBase<Scalar> > tmp =
173 Thyra::createMember<Scalar>(x->space());
177 Thyra::Vp_StV(xDot.ptr(), -1.0, *tmp);
181 Teuchos::RCP<
const Thyra::VectorBase<Scalar> > xOld,
182 Teuchos::RCP<
const Thyra::VectorBase<Scalar> > xOldOld)
187 Teuchos::RCP<const Thyra::VectorBase<Scalar> >
xOld_;
188 Teuchos::RCP<const Thyra::VectorBase<Scalar> >
xOldOld_;
196 #endif // Tempus_StepperBDF2_decl_hpp virtual Scalar getOrderMin() const
BDF2 (Backward-Difference-Formula-2) time stepper.
Teuchos::RCP< Teuchos::ParameterList > getDefaultParameters() const
Teuchos::RCP< StepperObserver< Scalar > > stepperObserver_
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 void setObserver(Teuchos::RCP< StepperObserver< Scalar > > obs=Teuchos::null)
Set Observer.
Teuchos::RCP< Teuchos::ParameterList > getNonconstParameterList()
virtual Scalar getOrder() const
virtual bool isImplicit() const
Teuchos::RCP< Stepper< Scalar > > startUpStepper_
virtual bool isExplicitImplicit() const
void setParameterList(const Teuchos::RCP< Teuchos::ParameterList > &pl)
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
virtual Teuchos::RCP< Thyra::VectorBase< Scalar > > getXDotTemp(Teuchos::RCP< Thyra::VectorBase< Scalar > > x)
Provide temporary xDot memory for Stepper if SolutionState doesn't.
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.
virtual void setInitialGuess(Teuchos::RCP< const Thyra::VectorBase< Scalar > > initial_guess)
Pass initial guess to Newton solver.
Thyra Base interface for implicit time steppers.
Teuchos::RCP< StepperBDF2Observer< Scalar > > stepperBDF2Observer_
virtual bool isExplicit() const
StepperObserver class for Stepper class.
Teuchos::RCP< SolutionHistory< Scalar > > solutionHistory(Teuchos::RCP< Teuchos::ParameterList > pList=Teuchos::null)
Nonmember constructor.
virtual bool isMultiStepMethod() const
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
Teuchos::RCP< Teuchos::ParameterList > unsetParameterList()
Teuchos::RCP< const Thyra::VectorBase< Scalar > > xOld_
Teuchos::RCP< Thyra::VectorBase< Scalar > > xDotTemp_
StepperBDF2TimeDerivative(Scalar dt, Scalar dtOld, Teuchos::RCP< const Thyra::VectorBase< Scalar > > xOld, Teuchos::RCP< const Thyra::VectorBase< Scalar > > xOldOld)
Constructor.
This interface defines the time derivative connection between an implicit Stepper and WrapperModelEva...
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 > > initial_guess_
virtual Scalar getOrderMax() const
void setStartUpStepper(std::string startupStepperName)
Set the stepper to use in first step.
virtual std::string description() 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.
virtual void initialize()
Initialize during construction and after changing input parameters.
StepperBDF2()
Default Constructor – not allowed.