42 #ifndef NLPIP_NLP_DIRECT_THYRA_MODEL_EVALUATOR_HPP
43 #define NLPIP_NLP_DIRECT_THYRA_MODEL_EVALUATOR_HPP
45 #include "NLPInterfacePack_NLPThyraModelEvaluatorBase.hpp"
46 #include "NLPInterfacePack_NLPDirect.hpp"
47 #include "Thyra_DirectionalFiniteDiffCalculator.hpp"
48 #include "Teuchos_StandardCompositionMacros.hpp"
49 #include "Teuchos_StandardMemberCompositionMacros.hpp"
51 namespace NLPInterfacePack {
81 ,
const objDirecFiniteDiffCalculator_ptr_t objDirecFiniteDiffCalculator = Teuchos::null
82 ,
const conDirecFiniteDiffCalculator_ptr_t conDirecFiniteDiffCalculator = Teuchos::null
94 ,
const objDirecFiniteDiffCalculator_ptr_t objDirecFiniteDiffCalculator = Teuchos::null
95 ,
const conDirecFiniteDiffCalculator_ptr_t conDirecFiniteDiffCalculator = Teuchos::null
116 value_type
calc_Gf_prod(
const Vector& x,
const Vector& d,
bool newx)
const;
163 #endif // NLPIP_NLP_DIRECT_THYRA_MODEL_EVALUATOR_HPP
const mat_sym_nonsing_fcty_ptr_t factory_S() const
const mat_fcty_ptr_t factory_D() const
void initialize(const Teuchos::RCP< Thyra::ModelEvaluator< value_type > > &model, const int p_idx, const int g_idx, const objDirecFiniteDiffCalculator_ptr_t objDirecFiniteDiffCalculator=Teuchos::null, const conDirecFiniteDiffCalculator_ptr_t conDirecFiniteDiffCalculator=Teuchos::null)
.Initialize given a Thyra::ModelEvaluator and a description of how to interpret it.
STANDARD_COMPOSITION_MEMBERS(Thyra::DirectionalFiniteDiffCalculator< value_type >, objDirecFiniteDiffCalculator)
Utility object that computes directional finite differences for objective.
Implements the base NLP interface using a Thyra::ModelEvaluator object.
Implement the NLPFirstOrder interface using a Thyra::ModelEvaluator object.
value_type calc_Gf_prod(const Vector &x, const Vector &d, bool newx) const
bool supports_Gf_prod() const
NLPDirectThyraModelEvaluator()
Initialize to uninitialized.
void calc_point(const Vector &x, value_type *f, VectorMutable *c, bool recalc_c, VectorMutable *Gf, VectorMutable *py, VectorMutable *rGf, MatrixOp *GcU, MatrixOp *D, MatrixOp *Uz) const
void calc_semi_newton_step(const Vector &x, VectorMutable *c, bool recalc_c, VectorMutable *py) const
virtual VectorMutable & Gf()
STANDARD_MEMBER_COMPOSITION_MEMBERS(bool, DfDp_is_const)
Set if model.DfDp is constant or not.
Range1D var_indep() const
virtual VectorMutable & c()