27 epsilon_(Scalar(1.0e-01)),
32 typedef ::Thyra::ModelEvaluatorBase MEB;
40 MEB::InArgsSetup<Scalar> inArgs;
41 inArgs.setModelEvalDescription(this->description());
42 inArgs.setSupports( MEB::IN_ARG_t );
43 inArgs.setSupports( MEB::IN_ARG_x );
44 inArgs.setSupports( MEB::IN_ARG_x_dot );
50 MEB::OutArgsSetup<Scalar> outArgs;
51 outArgs.setModelEvalDescription(this->description());
52 outArgs.setSupports( MEB::OUT_ARG_f );
59 const RCP<Thyra::VectorBase<Scalar> > x_ic = createMember(
x_space_);
61 Thyra::DetachedVectorView<Scalar> x_ic_view( *x_ic );
67 const RCP<Thyra::VectorBase<Scalar> > xDot_ic = createMember(
x_space_);
69 Thyra::DetachedVectorView<Scalar> xDot_ic_view( *xDot_ic );
82 const Thyra::ModelEvaluatorBase::InArgs<Scalar> &inArgs,
83 const Thyra::ModelEvaluatorBase::OutArgs<Scalar> &outArgs
88 const RCP<const Thyra::VectorBase<Scalar> > x_in =
89 inArgs.get_x().assert_not_null();
90 Thyra::ConstDetachedVectorView<Scalar> x_in_view( *x_in );
92 const RCP<Thyra::VectorBase<Scalar> > f_out =
93 outArgs.get_f().assert_not_null();
95 if (inArgs.get_x_dot().is_null()) {
97 Thyra::DetachedVectorView<Scalar> f_out_view( *f_out );
98 f_out_view[0] = x_in_view[1];
100 ((1.0-x_in_view[0]*x_in_view[0])*x_in_view[1]-x_in_view[0])/epsilon_;
104 RCP<const Thyra::VectorBase<Scalar> > x_dot_in;
105 x_dot_in = inArgs.get_x_dot().assert_not_null();
106 Thyra::DetachedVectorView<Scalar> f_out_view( *f_out );
107 Thyra::ConstDetachedVectorView<Scalar> x_dot_in_view( *x_dot_in );
108 f_out_view[0] = x_dot_in_view[0] - x_in_view[1];
109 f_out_view[1] = x_dot_in_view[1]
110 - ((1.0-x_in_view[0]*x_in_view[0])*x_in_view[1]-x_in_view[0])/epsilon_;