45 #ifndef DUMMY_TEST_MODEL_EVALUATOR_DEF_HPP 46 #define DUMMY_TEST_MODEL_EVALUATOR_DEF_HPP 49 #include "Thyra_DummyTestModelEvaluator_decl.hpp" 50 #include "Thyra_SimpleDenseLinearOp.hpp" 51 #include "Thyra_DefaultSpmdVectorSpace.hpp" 52 #include "Thyra_DefaultSerialDenseLinearOpWithSolveFactory.hpp" 53 #include "Thyra_DefaultPreconditioner.hpp" 54 #include "Thyra_DetachedMultiVectorView.hpp" 55 #include "Thyra_DetachedVectorView.hpp" 56 #include "Thyra_MultiVectorStdOps.hpp" 57 #include "Thyra_VectorStdOps.hpp" 66 template<
class Scalar>
68 dummyTestModelEvaluator(
81 template<
class Scalar>
92 x_space_ = defaultSpmdVectorSpace<Scalar>(x_size);
94 p_space_.resize(p_sizes.
size());
96 p_space_[l] = defaultSpmdVectorSpace<Scalar>(p_sizes[l]);
101 g_space_.resize(g_sizes.
size());
103 g_space_[j] = defaultSpmdVectorSpace<Scalar>(g_sizes[j]);
106 W_factory_ = defaultSerialDenseLinearOpWithSolveFactory<Scalar>();
108 MEB::InArgsSetup<Scalar> inArgs;
109 inArgs.setModelEvalDescription(this->description());
110 inArgs.set_Np(p_space_.size());
111 inArgs.setSupports(MEB::IN_ARG_x);
112 inArgs.setSupports(MEB::IN_ARG_step_size);
113 inArgs.setSupports(MEB::IN_ARG_stage_number);
114 prototypeInArgs_ = inArgs;
116 MEB::OutArgsSetup<Scalar> outArgs;
117 outArgs.setModelEvalDescription(this->description());
118 outArgs.set_Np_Ng(p_space_.size(), g_space_.size());
119 outArgs.setSupports(MEB::OUT_ARG_f);
120 outArgs.setSupports(MEB::OUT_ARG_W_op);
121 outArgs.setSupports(MEB::OUT_ARG_W_prec);
122 prototypeOutArgs_ = outArgs;
124 nominalValues_ = inArgs;
126 V_S(x0.
ptr(), ST::zero());
127 nominalValues_.set_x(x0);
135 template<
class Scalar>
143 template<
class Scalar>
151 template<
class Scalar>
155 return Teuchos::null;
159 template<
class Scalar>
167 template<
class Scalar>
175 template<
class Scalar>
183 template<
class Scalar>
187 return nominalValues_;
191 template<
class Scalar>
199 template<
class Scalar>
207 template<
class Scalar>
211 return createNonconstSimpleDenseLinearOp<Scalar>(
212 createMembers<Scalar>(f_space_, x_space_->dim())
217 template<
class Scalar>
221 return nonconstUnspecifiedPrec<Scalar>(
222 createNonconstSimpleDenseLinearOp<Scalar>(
223 createMembers<Scalar>(f_space_, x_space_->dim())
229 template<
class Scalar>
237 template<
class Scalar>
241 return prototypeInArgs_;
245 template<
class Scalar>
258 template<
class Scalar>
262 return prototypeOutArgs_;
266 template<
class Scalar>
267 void DummyTestModelEvaluator<Scalar>::evalModelImpl(
268 const ModelEvaluatorBase::InArgs<Scalar> &inArgs,
269 const ModelEvaluatorBase::OutArgs<Scalar> &outArgs
285 #define DUMMY_TEST_MODEL_EVALUATOR_INSTANT(SCALAR) \ 287 template class DummyTestModelEvaluator<SCALAR >; \ 289 template Teuchos::RCP<DummyTestModelEvaluator<SCALAR > > \ 290 dummyTestModelEvaluator( \ 291 const Ordinal x_size, \ 292 const ArrayView<const Ordinal> &p_sizes, \ 293 const ArrayView<const Ordinal> &g_sizes \ 297 #endif // DUMMY_TEST_MODEL_EVALUATOR_DEF_HPP ModelEvaluatorBase::InArgs< Scalar > getUpperBounds() const
RCP< const VectorSpaceBase< Scalar > > get_f_space() const
RCP< const Teuchos::Array< std::string > > get_p_names(int l) const
ModelEvaluatorBase::InArgs< Scalar > getNominalValues() const
Concrete aggregate class for all output arguments computable by a ModelEvaluator subclass object...
DummyTestModelEvaluator(const Ordinal x_size, const ArrayView< const Ordinal > &p_sizes, const ArrayView< const Ordinal > &g_sizes)
void reportFinalPoint(const ModelEvaluatorBase::InArgs< Scalar > &finalPoint, const bool wasSolved)
RCP< const LinearOpWithSolveFactoryBase< Scalar > > get_W_factory() const
Test helper ModelEvaluator.
RCP< LinearOpBase< Scalar > > create_W_op() const
Teuchos::Ordinal Ordinal
Type for the dimension of a vector space. `*.
RCP< PreconditionerBase< Scalar > > create_W_prec() const
RCP< const VectorSpaceBase< Scalar > > get_p_space(int l) const
ModelEvaluatorBase::InArgs< Scalar > createInArgs() const
RCP< const VectorSpaceBase< Scalar > > get_g_space(int j) const
Base subclass for ModelEvaluator that defines some basic types.
ModelEvaluatorBase::InArgs< Scalar > getLowerBounds() const
Teuchos::ArrayView< const std::string > get_g_names(int j) const
#define TEUCHOS_TEST_FOR_EXCEPT(throw_exception_test)
RCP< const VectorSpaceBase< Scalar > > get_x_space() const
Concrete aggregate class for all output arguments computable by a ModelEvaluator subclass object...