void PolynomialModel::initialize_() { if (!isInitialized_) { { // Set up prototypical InArgs ModelEvaluatorBase::InArgsSetup<double> inArgs; inArgs.setModelEvalDescription(this->description()); inArgs.setSupports( ModelEvaluatorBase::IN_ARG_t ); inArgs_ = inArgs; } { // Set up prototypical OutArgs ModelEvaluatorBase::OutArgsSetup<double> outArgs; outArgs.setModelEvalDescription(this->description()); outArgs.setSupports( ModelEvaluatorBase::OUT_ARG_f ); outArgs_ = outArgs; } // Set up nominal values nominalValues_ = inArgs_; double t_ic = 0.0; nominalValues_.set_t(t_ic); isInitialized_ = true; } }
ModelEvaluatorBase::OutArgs<Scalar> ModelEvaluatorDelegatorBase<Scalar>::createOutArgsImpl() const { ModelEvaluatorBase::OutArgsSetup<Scalar> outArgs = getUnderlyingModel()->createOutArgs(); outArgs.setModelEvalDescription(this->description()); return outArgs; }
void VanderPolModel::setupInOutArgs_() { if (!isInitialized_) { { // Set up prototypical InArgs ModelEvaluatorBase::InArgsSetup<double> inArgs; inArgs.setModelEvalDescription(this->description()); inArgs.setSupports( ModelEvaluatorBase::IN_ARG_t ); inArgs.setSupports( ModelEvaluatorBase::IN_ARG_x ); if (isImplicit_) { inArgs.setSupports( ModelEvaluatorBase::IN_ARG_x_dot ); inArgs.setSupports( ModelEvaluatorBase::IN_ARG_alpha ); inArgs.setSupports( ModelEvaluatorBase::IN_ARG_beta ); } if (acceptModelParams_) { inArgs.set_Np(Np_); } inArgs_ = inArgs; } { // Set up prototypical OutArgs ModelEvaluatorBase::OutArgsSetup<double> outArgs; outArgs.setModelEvalDescription(this->description()); outArgs.setSupports( ModelEvaluatorBase::OUT_ARG_f ); //if (isImplicit_) { // Thyra_ModelEvaluatorBase requires this outArgs.setSupports( ModelEvaluatorBase::OUT_ARG_W_op ); //} if (acceptModelParams_) { outArgs.set_Np_Ng(Np_,Ng_); outArgs.setSupports( ModelEvaluatorBase::OUT_ARG_DfDp,0,DERIV_MV_BY_COL ); } outArgs_ = outArgs; } // Set up nominal values nominalValues_ = inArgs_; if (haveIC_) { nominalValues_.set_t(t0_ic_); const RCP<VectorBase<double> > x_ic = createMember(x_space_); { // scope to delete DetachedVectorView Thyra::DetachedVectorView<double> x_ic_view( *x_ic ); x_ic_view[0] = x0_ic_; x_ic_view[1] = x1_ic_; } nominalValues_.set_x(x_ic); if (acceptModelParams_) { const RCP<VectorBase<double> > p_ic = createMember(p_space_); { Thyra::DetachedVectorView<double> p_ic_view( *p_ic ); p_ic_view[0] = epsilon_; } nominalValues_.set_p(0,p_ic); } if (isImplicit_) { const RCP<VectorBase<double> > x_dot_ic = createMember(x_space_); { // scope to delete DetachedVectorView Thyra::DetachedVectorView<double> x_dot_ic_view( *x_dot_ic ); x_dot_ic_view[0] = 0.0; x_dot_ic_view[1] = 0.0; } nominalValues_.set_x_dot(x_dot_ic); } } isInitialized_ = true; } }