42 #ifndef NLP_FIRST_ORDER_DIRECT_H
43 #define NLP_FIRST_ORDER_DIRECT_H
45 #include "NLPInterfacePack_NLPObjGrad.hpp"
46 #include "Teuchos_AbstractFactory.hpp"
48 namespace NLPInterfacePack {
165 virtual Range1D
var_dep()
const;
389 #endif // NLP_FIRST_ORDER_DIRECT_H
NLP interface class that adds gradient information for the objective function {abstract}.
virtual value_type & f()
Returns non-const *this->get_f().
virtual Range1D con_decomp() const
Return the range of decomposed equality constraints.
virtual const mat_fcty_ptr_t factory_GcU() const
Return a matrix factory object for creating GcU.
virtual const mat_fcty_ptr_t factory_Uz() const
Return a matrix factory object for Uz = F + E * D.
void set_factories(const mat_sym_fcty_ptr_t &factory_transDtD, const mat_sym_nonsing_fcty_ptr_t &factory_S)
Initialize the factory objects for the special matrices for D'*D and S = I + D'*D.
virtual 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 =0
Compute all of the needed quanities for direct sensitivities.
virtual size_type r() const
Returns the number of decomposed equality constraints (r <= m).
Interface providing only direct first order sensitivity information.
virtual const mat_fcty_ptr_t factory_GcUD() const
Return a matrix factory object for a mutable matrix compatible with GcU(var_dep). ...
Teuchos::RCP< const Teuchos::AbstractFactory< MatrixOp > > mat_fcty_ptr_t
virtual const mat_sym_fcty_ptr_t factory_transDtD() const
Returns a matrix factory for the result of J = D'*D
virtual Range1D con_undecomp() const
Return the range of undecomposed equality constraints.
void initialize(bool test_setup)
Initialize the NLP for its first use.
Teuchos::RCP< const Teuchos::AbstractFactory< MatrixSymOpNonsing > > mat_sym_nonsing_fcty_ptr_t
Teuchos::RCP< const Teuchos::AbstractFactory< MatrixSymOp > > mat_sym_fcty_ptr_t
virtual Range1D var_dep() const
Return the range of dependent (i.e. basic) variables.
virtual Range1D var_indep() const
Return the range of independent (i.e. nonbasic) variables.
virtual const mat_fcty_ptr_t factory_D() const =0
Return a matrix factory object for D = -inv(C)*N {abstract}.
virtual void calc_semi_newton_step(const Vector &x, VectorMutable *c, bool recalc_c, VectorMutable *py) const =0
Calculate an approximate newton step given the Jacobian computed for the last call to calc_point()...
virtual const mat_sym_nonsing_fcty_ptr_t factory_S() const
Returns a matrix factory for the result of S = I + D'*D
virtual VectorMutable & Gf()
Returns non-const *this->get_Gf().
virtual VectorMutable & c()
Returns non-const *this->get_c().