59 typedef typename Teuchos::ScalarTraits<Scalar>::magnitudeType
ScalarMag;
69 const RCP<Thyra::ModelEvaluator<Scalar> >& model
70 ,
const RCP<Thyra::NonlinearSolverBase<Scalar> > &solver
75 const RCP<Thyra::ModelEvaluator<Scalar> >& model
76 ,
const RCP<Thyra::NonlinearSolverBase<Scalar> >& solver
77 ,
const RCP<Teuchos::ParameterList>& parameterList
87 const Thyra::VectorBase<Scalar>&
getxHistory(
int index)
const;
99 const RCP<StepControlStrategyBase<Scalar> >& stepControlStrategy
103 RCP<StepControlStrategyBase<Scalar> >
107 RCP<const StepControlStrategyBase<Scalar> >
117 const RCP<Thyra::NonlinearSolverBase<Scalar> > &solver
121 RCP<Thyra::NonlinearSolverBase<Scalar> >
125 RCP<const Thyra::NonlinearSolverBase<Scalar> >
149 void setModel(
const RCP<
const Thyra::ModelEvaluator<Scalar> >& model);
155 RCP<const Thyra::ModelEvaluator<Scalar> >
getModel()
const;
162 const Thyra::ModelEvaluatorBase::InArgs<Scalar> &initialCondition
169 Scalar
takeStep(Scalar dt, StepSizeType flag);
180 RCP<const Thyra::VectorSpaceBase<Scalar> >
185 const Array<Scalar>& time_vec
186 ,
const Array<RCP<
const Thyra::VectorBase<Scalar> > >& x_vec
187 ,
const Array<RCP<
const Thyra::VectorBase<Scalar> > >& xdot_vec
195 const Array<Scalar>& time_vec
196 ,Array<RCP<
const Thyra::VectorBase<Scalar> > >* x_vec
197 ,Array<RCP<
const Thyra::VectorBase<Scalar> > >* xdot_vec
198 ,Array<ScalarMag>* accuracy_vec
202 void getNodes(Array<Scalar>* time_vec)
const;
237 Teuchos::FancyOStream &out,
238 const Teuchos::EVerbosityLevel verbLevel
252 RCP<const Thyra::ModelEvaluator<Scalar> > model_;
253 RCP<Thyra::NonlinearSolverBase<Scalar> > solver_;
254 Rythmos::SingleResidualModelEvaluator<Scalar> neModel_;
256 RCP<Thyra::VectorBase<Scalar> > xn0_;
257 RCP<Thyra::VectorBase<Scalar> > xpn0_;
258 RCP<Thyra::VectorBase<Scalar> > x_dot_base_;
259 Array<RCP<Thyra::VectorBase<Scalar> > > xHistory_;
260 RCP<Thyra::VectorBase<Scalar> > ee_;
261 RCP<Thyra::VectorBase<Scalar> > residual_;
263 RCP<StepControlStrategyBase<Scalar> > stepControl_;
267 Thyra::ModelEvaluatorBase::InArgs<Scalar> basePoint_;
273 Array<Scalar> alpha_;
276 EStepLETStatus stepLETStatus_;
277 Array<Scalar> gamma_;
287 bool haveInitialCondition_;
290 Thyra::SolveStatus<Scalar> nonlinearSolveStatus_;
291 int newtonConvergenceStatus_;
293 RCP<Teuchos::ParameterList> parameterList_;
299 void defaultInitializeAll_();
300 void getInitialCondition_();
301 void obtainPredictor_();
302 void interpolateSolution_(
303 const Scalar& timepoint,
304 Thyra::VectorBase<Scalar>* x_ptr_,
305 Thyra::VectorBase<Scalar>* xdot_ptr_,
308 void updateHistory_();
309 void restoreHistory_();
310 void updateCoeffs_();
312 void completeStep_();