9 #ifndef Tempus_StepperHHTAlpha_decl_hpp
10 #define Tempus_StepperHHTAlpha_decl_hpp
12 #include "Tempus_StepperImplicit.hpp"
13 #include "Tempus_WrapperModelEvaluatorSecondOrder.hpp"
43 template<
class Scalar>
57 const Teuchos::RCP<
const Thyra::ModelEvaluator<Scalar> >& appModel,
59 const Teuchos::RCP<Thyra::NonlinearSolverBase<Scalar> >& solver,
61 std::string ICConsistency,
62 bool ICConsistencyCheck,
63 bool zeroInitialGuess,
64 std::string schemeName,
73 const Teuchos::RCP<
const Thyra::ModelEvaluator<Scalar> >& appModel);
78 virtual Teuchos::RCP<StepperObserver<Scalar> >
getObserver()
const
79 {
return Teuchos::null; }
92 if (
gamma_ == 0.5)
return 2.0;
110 {
return Scalar(1.0)/(
beta_*dt*dt); }
114 virtual Scalar
getBeta (
const Scalar )
const {
return Scalar(1.0); }
120 virtual void describe(Teuchos::FancyOStream & out,
121 const Teuchos::EVerbosityLevel verbLevel)
const;
124 virtual bool isValidSetup(Teuchos::FancyOStream & out)
const;
127 const Thyra::VectorBase<Scalar>& v,
128 const Thyra::VectorBase<Scalar>& a,
129 const Scalar dt)
const;
132 const Thyra::VectorBase<Scalar>& d,
133 const Thyra::VectorBase<Scalar>& v,
134 const Thyra::VectorBase<Scalar>& a,
135 const Scalar dt)
const;
138 const Thyra::VectorBase<Scalar>& v)
const;
141 const Thyra::VectorBase<Scalar>& d)
const;
144 const Thyra::VectorBase<Scalar>& a_n)
const;
147 const Thyra::VectorBase<Scalar>& vPred,
148 const Thyra::VectorBase<Scalar>& a,
149 const Scalar dt)
const;
152 const Thyra::VectorBase<Scalar>& dPred,
153 const Thyra::VectorBase<Scalar>& a,
154 const Scalar dt)
const;
170 Teuchos::RCP<Teuchos::FancyOStream>
out_;
175 #endif // Tempus_StepperHHTAlpha_decl_hpp
void setBeta(Scalar beta)
void correctDisplacement(Thyra::VectorBase< Scalar > &d, const Thyra::VectorBase< Scalar > &dPred, const Thyra::VectorBase< Scalar > &a, const Scalar dt) const
virtual Scalar getW_xDotDot_coeff(const Scalar dt) const
Return W_xDotxDot_coeff = d(xDotDot)/d(x).
virtual bool isExplicitImplicit() const
virtual bool isValidSetup(Teuchos::FancyOStream &out) const
Teuchos::RCP< const Teuchos::ParameterList > getValidParameters() const
void correctVelocity(Thyra::VectorBase< Scalar > &v, const Thyra::VectorBase< Scalar > &vPred, const Thyra::VectorBase< Scalar > &a, const Scalar dt) const
virtual OrderODE getOrderODE() const
virtual Scalar getOrderMin() const
void correctAcceleration(Thyra::VectorBase< Scalar > &a_n_plus1, const Thyra::VectorBase< Scalar > &a_n) const
void setAlphaF(Scalar alpha_f)
virtual Teuchos::RCP< Tempus::StepperState< Scalar > > getDefaultStepperState()
Get a default (initial) StepperState.
StepperHHTAlpha()
Default constructor.
virtual void setObserver(Teuchos::RCP< StepperObserver< Scalar > >=Teuchos::null)
Set Observer.
Stepper integrates second-order ODEs.
virtual Scalar getAlpha(const Scalar dt) const
Return alpha = d(xDot)/d(x).
Thyra Base interface for implicit time steppers.
void setAlphaM(Scalar alpha_m)
void predictVelocity_alpha_f(Thyra::VectorBase< Scalar > &vPred, const Thyra::VectorBase< Scalar > &v) const
void setSchemeName(std::string schemeName)
StepperObserver class for Stepper class.
virtual void describe(Teuchos::FancyOStream &out, const Teuchos::EVerbosityLevel verbLevel) const
SolutionHistory is basically a container of SolutionStates. SolutionHistory maintains a collection of...
void predictDisplacement_alpha_f(Thyra::VectorBase< Scalar > &dPred, const Thyra::VectorBase< Scalar > &d) const
virtual Scalar getBeta(const Scalar) const
Return beta = d(x)/d(x).
virtual bool isOneStepMethod() const
void predictDisplacement(Thyra::VectorBase< Scalar > &dPred, const Thyra::VectorBase< Scalar > &d, const Thyra::VectorBase< Scalar > &v, const Thyra::VectorBase< Scalar > &a, const Scalar dt) const
virtual Scalar getOrderMax() const
virtual Teuchos::RCP< StepperObserver< Scalar > > getObserver() const
Get Observer.
Teuchos::RCP< Teuchos::FancyOStream > out_
void predictVelocity(Thyra::VectorBase< Scalar > &vPred, const Thyra::VectorBase< Scalar > &v, const Thyra::VectorBase< Scalar > &a, const Scalar dt) const
virtual void setInitialConditions(const Teuchos::RCP< SolutionHistory< Scalar > > &)
Set the initial conditions and make them consistent.
virtual bool isImplicit() const
void setGamma(Scalar gamma)
virtual bool isMultiStepMethod() const
virtual Scalar getOrder() const
virtual bool isExplicit() const
virtual void setModel(const Teuchos::RCP< const Thyra::ModelEvaluator< Scalar > > &appModel)
virtual void takeStep(const Teuchos::RCP< SolutionHistory< Scalar > > &solutionHistory)
Take the specified timestep, dt, and return true if successful.