MOOCHO/Thyra Adapter Software  Version of the Day
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Groups Pages
Public Member Functions | Protected Member Functions | List of all members
NLPInterfacePack::NLPThyraModelEvaluatorBase Class Reference

Implements the base NLP interface using a Thyra::ModelEvaluator object. More...

#include <NLPInterfacePack_NLPThyraModelEvaluatorBase.hpp>

Inheritance diagram for NLPInterfacePack::NLPThyraModelEvaluatorBase:
Inheritance graph
[legend]

Public Member Functions

 STANDARD_MEMBER_COMPOSITION_MEMBERS (bool, showModelEvaluatorTrace)
 Set if a trace of the model evaluations is shown or not. More...
 

Protected Member Functions

void evalModel (const Vector &x, bool newx, const ZeroOrderInfo *zero_order_info, const ObjGradInfo *obj_grad_info) const
 

Overridden public members from NLP

void initialize (bool test_setup)
 
bool is_initialized () const
 
vec_space_ptr_t space_x () const
 
vec_space_ptr_t space_c () const
 
size_type num_bounded_x () const
 
void force_xinit_in_bounds (bool force_xinit_in_bounds)
 
bool force_xinit_in_bounds () const
 
const Vector & xinit () const
 
const Vector & xl () const
 
const Vector & xu () const
 
value_type max_var_bounds_viol () const
 
void set_f (value_type *f)
 
void set_c (VectorMutable *c)
 
void unset_quantities ()
 
void scale_f (value_type scale_f)
 
value_type scale_f () const
 
void report_final_solution (const Vector &x, const Vector *lambda, const Vector *nu, bool optimal)
 

Overridden public members from NLPObjGrad

void set_Gf (VectorMutable *Gf)
 

Overridden protected members from NLP

void imp_calc_f (const Vector &x, bool newx, const ZeroOrderInfo &zero_order_info) const
 
void imp_calc_c (const Vector &x, bool newx, const ZeroOrderInfo &zero_order_info) const
 

Overridden protected members from NLPObjGrad

void imp_calc_Gf (const Vector &x, bool newx, const ObjGradInfo &obj_grad_info) const
 

Protected functions to be used by subclasses

 NLPThyraModelEvaluatorBase ()
 
void initializeBase (const Teuchos::RCP< Thyra::ModelEvaluator< value_type > > &model, const int p_idx, const int g_idx)
 Initialize given a Thyra::ModelEvaluator and a description of how to interpret it. More...
 
void updateInitialGuessAndBounds () const
 Update the initial guess and bounds . More...
 
void assert_is_initialized () const
 
void copy_from_model_x (const Thyra::VectorBase< value_type > *model_x, VectorMutable *x_D) const
 
void copy_from_model_p (const Thyra::VectorBase< value_type > *model_p, VectorMutable *x_I) const
 
void set_x (const Vector &x, Thyra::ModelEvaluatorBase::InArgs< value_type > *model_inArgs_inout) const
 
void preprocessBaseInOutArgs (const Vector &x, bool newx, const ZeroOrderInfo *zero_order_info, const ObjGradInfo *obj_grad_info, const NLPFirstOrder::FirstOrderInfo *first_order_info, Thyra::ModelEvaluatorBase::InArgs< value_type > *model_inArgs_inout, Thyra::ModelEvaluatorBase::OutArgs< value_type > *model_outArgs_inout, MatrixOp **Gc_out, VectorMutable **Gf_out, value_type **f_out, VectorMutable **c_out) const
 
void postprocessBaseOutArgs (Thyra::ModelEvaluatorBase::OutArgs< value_type > *model_outArgs_inout, VectorMutable *Gf, value_type *f, VectorMutable *c) const
 

Detailed Description

Implements the base NLP interface using a Thyra::ModelEvaluator object.

The nonlinear program is mapped as follows:

   min     f(x)
   s.t.    c(x) = 0
           xL <= x <= xu

   where:

       x = [ model.x        ]
           [ model.p(p_idx) ]

       f(x) = model.g(g_idx)

       c(x) = model.f()

where p_idx > 0 and g_idx > 0 are some indexes that specificy the indepenent variables and the objective function.

In addition, the client can also override the bounds on model.x and model.p(p_idx) defined in the object model.

The current implementation of this class does not allow the use of any of the auxiliary functions model.g() as undecomposed equality constraints or extra general inequality constraints. This type of functionality can be added when it is needed (just ask for it).

ToDo: Finish documentation!

Definition at line 92 of file NLPInterfacePack_NLPThyraModelEvaluatorBase.hpp.

Constructor & Destructor Documentation

NLPInterfacePack::NLPThyraModelEvaluatorBase::NLPThyraModelEvaluatorBase ( )
protected

Initialize to uninitialized

Definition at line 233 of file NLPInterfacePack_NLPThyraModelEvaluatorBase.cpp.

Member Function Documentation

NLPInterfacePack::NLPThyraModelEvaluatorBase::STANDARD_MEMBER_COMPOSITION_MEMBERS ( bool  ,
showModelEvaluatorTrace   
)

Set if a trace of the model evaluations is shown or not.

void NLPInterfacePack::NLPThyraModelEvaluatorBase::initialize ( bool  test_setup)
virtual

Reimplemented from NLPInterfacePack::NLP.

Definition at line 68 of file NLPInterfacePack_NLPThyraModelEvaluatorBase.cpp.

bool NLPInterfacePack::NLPThyraModelEvaluatorBase::is_initialized ( ) const
virtual
NLP::vec_space_ptr_t NLPInterfacePack::NLPThyraModelEvaluatorBase::space_x ( ) const
virtual
NLP::vec_space_ptr_t NLPInterfacePack::NLPThyraModelEvaluatorBase::space_c ( ) const
virtual
size_type NLPInterfacePack::NLPThyraModelEvaluatorBase::num_bounded_x ( ) const
virtual
void NLPInterfacePack::NLPThyraModelEvaluatorBase::force_xinit_in_bounds ( bool  force_xinit_in_bounds)
virtual
bool NLPInterfacePack::NLPThyraModelEvaluatorBase::force_xinit_in_bounds ( ) const
virtual
const Vector & NLPInterfacePack::NLPThyraModelEvaluatorBase::xinit ( ) const
virtual
const Vector & NLPInterfacePack::NLPThyraModelEvaluatorBase::xl ( ) const
virtual
const Vector & NLPInterfacePack::NLPThyraModelEvaluatorBase::xu ( ) const
virtual
value_type NLPInterfacePack::NLPThyraModelEvaluatorBase::max_var_bounds_viol ( ) const
virtual
void NLPInterfacePack::NLPThyraModelEvaluatorBase::set_f ( value_type *  f)
virtual

Reimplemented from NLPInterfacePack::NLP.

Definition at line 137 of file NLPInterfacePack_NLPThyraModelEvaluatorBase.cpp.

void NLPInterfacePack::NLPThyraModelEvaluatorBase::set_c ( VectorMutable *  c)
virtual

Reimplemented from NLPInterfacePack::NLP.

Definition at line 143 of file NLPInterfacePack_NLPThyraModelEvaluatorBase.cpp.

void NLPInterfacePack::NLPThyraModelEvaluatorBase::unset_quantities ( )
virtual

Reimplemented from NLPInterfacePack::NLP.

Definition at line 149 of file NLPInterfacePack_NLPThyraModelEvaluatorBase.cpp.

void NLPInterfacePack::NLPThyraModelEvaluatorBase::scale_f ( value_type  scale_f)
virtual
value_type NLPInterfacePack::NLPThyraModelEvaluatorBase::scale_f ( ) const
virtual
void NLPInterfacePack::NLPThyraModelEvaluatorBase::report_final_solution ( const Vector &  x,
const Vector *  lambda,
const Vector *  nu,
bool  optimal 
)
virtual

Reimplemented from NLPInterfacePack::NLP.

Definition at line 164 of file NLPInterfacePack_NLPThyraModelEvaluatorBase.cpp.

void NLPInterfacePack::NLPThyraModelEvaluatorBase::set_Gf ( VectorMutable *  Gf)
void NLPInterfacePack::NLPThyraModelEvaluatorBase::imp_calc_f ( const Vector &  x,
bool  newx,
const ZeroOrderInfo zero_order_info 
) const
protectedvirtual
void NLPInterfacePack::NLPThyraModelEvaluatorBase::imp_calc_c ( const Vector &  x,
bool  newx,
const ZeroOrderInfo zero_order_info 
) const
protectedvirtual
void NLPInterfacePack::NLPThyraModelEvaluatorBase::imp_calc_Gf ( const Vector &  x,
bool  newx,
const ObjGradInfo obj_grad_info 
) const
protected
void NLPInterfacePack::NLPThyraModelEvaluatorBase::initializeBase ( const Teuchos::RCP< Thyra::ModelEvaluator< value_type > > &  model,
const int  p_idx,
const int  g_idx 
)
protected

Initialize given a Thyra::ModelEvaluator and a description of how to interpret it.

Parameters
model[in] NonlinearProblem that defines all of the functions and variables.
p_idx[in] Index of the subset of parameter vectors to use as the independent variables. If p_idx < 0, then no extra parameters are added.
g_idx[in] Index of the subset of auxiliary response functions to use as the objective function. Note, only the first element model.g(g_idx)(1) will be used as the objective function value.
model_xL[in] Pointer to upper bounds for the state variables model.x. If NULL then the default supplied in model->get_x_lower_bounds() will be used.
model_xU[in] Pointer to upper bounds for the state variables x. If NULL then the default supplied in model->get_x_upper_bounds() will be used.
model_x0[in] Pointer to initial guess for the state variables x. If NULL the the default supplied in model->get_x_init() will be used.

ToDo: Finish documentation!

Todo: Add arguments for auxiliary inequalites and equalities

Definition at line 240 of file NLPInterfacePack_NLPThyraModelEvaluatorBase.cpp.

void NLPInterfacePack::NLPThyraModelEvaluatorBase::updateInitialGuessAndBounds ( ) const
protected

Update the initial guess and bounds .

Definition at line 357 of file NLPInterfacePack_NLPThyraModelEvaluatorBase.cpp.

void NLPInterfacePack::NLPThyraModelEvaluatorBase::assert_is_initialized ( ) const
protected
void NLPInterfacePack::NLPThyraModelEvaluatorBase::copy_from_model_x ( const Thyra::VectorBase< value_type > *  model_x,
VectorMutable *  x_D 
) const
protected
void NLPInterfacePack::NLPThyraModelEvaluatorBase::copy_from_model_p ( const Thyra::VectorBase< value_type > *  model_p,
VectorMutable *  x_I 
) const
protected
void NLPInterfacePack::NLPThyraModelEvaluatorBase::set_x ( const Vector &  x,
Thyra::ModelEvaluatorBase::InArgs< value_type > *  model_inArgs_inout 
) const
protected
void NLPInterfacePack::NLPThyraModelEvaluatorBase::preprocessBaseInOutArgs ( const Vector &  x,
bool  newx,
const ZeroOrderInfo zero_order_info,
const ObjGradInfo obj_grad_info,
const NLPFirstOrder::FirstOrderInfo first_order_info,
Thyra::ModelEvaluatorBase::InArgs< value_type > *  model_inArgs_inout,
Thyra::ModelEvaluatorBase::OutArgs< value_type > *  model_outArgs_inout,
MatrixOp **  Gc_out,
VectorMutable **  Gf_out,
value_type **  f_out,
VectorMutable **  c_out 
) const
protected
void NLPInterfacePack::NLPThyraModelEvaluatorBase::postprocessBaseOutArgs ( Thyra::ModelEvaluatorBase::OutArgs< value_type > *  model_outArgs_inout,
VectorMutable *  Gf,
value_type *  f,
VectorMutable *  c 
) const
protected
void NLPInterfacePack::NLPThyraModelEvaluatorBase::evalModel ( const Vector &  x,
bool  newx,
const ZeroOrderInfo zero_order_info,
const ObjGradInfo obj_grad_info 
) const
protected

The documentation for this class was generated from the following files: