SMAG_NLP Class Reference

A TNLP for Ipopt that uses SMAG to interface the problem formulation. More...

#include <SmagNLP.hpp>

List of all members.

Public Member Functions

 SMAG_NLP (smagHandle_t prob)
 Contructor.
virtual ~SMAG_NLP ()
 Default destructor.
virtual bool get_nlp_info (Index &n, Index &m, Index &nnz_jac_g, Index &nnz_h_lag, IndexStyleEnum &index_style)
 Method to return some info about the nlp.
virtual bool get_bounds_info (Index n, Number *x_l, Number *x_u, Index m, Number *g_l, Number *g_u)
 Method to return the bounds for my problem.
virtual bool get_starting_point (Index n, bool init_x, Number *x, bool init_z, Number *z_L, Number *z_U, Index m, bool init_lambda, Number *lambda)
 Method to return the starting point for the algorithm.
virtual bool eval_f (Index n, const Number *x, bool new_x, Number &obj_value)
 Method to return the objective value.
virtual bool eval_grad_f (Index n, const Number *x, bool new_x, Number *grad_f)
 Method to return the gradient of the objective.
virtual bool eval_g (Index n, const Number *x, bool new_x, Index m, Number *g)
 Method to return the constraint residuals.
virtual bool eval_jac_g (Index n, const Number *x, bool new_x, Index m, Index nele_jac, Index *iRow, Index *jCol, Number *values)
 Method to return: 1) The structure of the jacobian (if "values" is NULL) 2) The values of the jacobian (if "values" is not NULL).
virtual bool eval_h (Index n, const Number *x, bool new_x, Number obj_factor, Index m, const Number *lambda, bool new_lambda, Index nele_hess, Index *iRow, Index *jCol, Number *values)
 Method to return: 1) The structure of the hessian of the lagrangian (if "values" is NULL) 2) The values of the hessian of the lagrangian (if "values" is not NULL).
virtual bool intermediate_callback (AlgorithmMode mode, Index iter, Number obj_value, Number inf_pr, Number inf_du, Number mu, Number d_norm, Number regularization_size, Number alpha_du, Number alpha_pr, Index ls_trials, const IpoptData *ip_data, IpoptCalculatedQuantities *ip_cq)
 Method called by the solver at each iteration.
virtual void finalize_solution (SolverReturn status, Index n, const Number *x, const Number *z_L, const Number *z_U, Index m, const Number *g, const Number *lambda, Number obj_value)
 This method is called when the algorithm is complete so the TNLP can store/write the solution.

Public Attributes

double div_iter_tol
double scaled_conviol_tol
double unscaled_conviol_tol

Private Member Functions

 SMAG_NLP ()
 SMAG_NLP (const SMAG_NLP &)
SMAG_NLPoperator= (const SMAG_NLP &)

Private Attributes

smagHandle_t prob
double clockStart
double * negLambda
double isMin
double timelimit
int domviollimit
long int domviolations
int last_iterationnumber
double last_scaled_conviol
double last_unscaled_conviol


Detailed Description

A TNLP for Ipopt that uses SMAG to interface the problem formulation.

Definition at line 30 of file SmagNLP.hpp.


Constructor & Destructor Documentation

SMAG_NLP::SMAG_NLP ( smagHandle_t  prob  ) 

Contructor.

Parameters:
prob The SMAG handle for the problem.

virtual SMAG_NLP::~SMAG_NLP (  )  [virtual]

Default destructor.

SMAG_NLP::SMAG_NLP (  )  [private]

SMAG_NLP::SMAG_NLP ( const SMAG_NLP  )  [private]


Member Function Documentation

virtual bool SMAG_NLP::get_nlp_info ( Index &  n,
Index &  m,
Index &  nnz_jac_g,
Index &  nnz_h_lag,
IndexStyleEnum &  index_style 
) [virtual]

Method to return some info about the nlp.

virtual bool SMAG_NLP::get_bounds_info ( Index  n,
Number *  x_l,
Number *  x_u,
Index  m,
Number *  g_l,
Number *  g_u 
) [virtual]

Method to return the bounds for my problem.

virtual bool SMAG_NLP::get_starting_point ( Index  n,
bool  init_x,
Number *  x,
bool  init_z,
Number *  z_L,
Number *  z_U,
Index  m,
bool  init_lambda,
Number *  lambda 
) [virtual]

Method to return the starting point for the algorithm.

virtual bool SMAG_NLP::eval_f ( Index  n,
const Number *  x,
bool  new_x,
Number &  obj_value 
) [virtual]

Method to return the objective value.

virtual bool SMAG_NLP::eval_grad_f ( Index  n,
const Number *  x,
bool  new_x,
Number *  grad_f 
) [virtual]

Method to return the gradient of the objective.

virtual bool SMAG_NLP::eval_g ( Index  n,
const Number *  x,
bool  new_x,
Index  m,
Number *  g 
) [virtual]

Method to return the constraint residuals.

virtual bool SMAG_NLP::eval_jac_g ( Index  n,
const Number *  x,
bool  new_x,
Index  m,
Index  nele_jac,
Index *  iRow,
Index *  jCol,
Number *  values 
) [virtual]

Method to return: 1) The structure of the jacobian (if "values" is NULL) 2) The values of the jacobian (if "values" is not NULL).

virtual bool SMAG_NLP::eval_h ( Index  n,
const Number *  x,
bool  new_x,
Number  obj_factor,
Index  m,
const Number *  lambda,
bool  new_lambda,
Index  nele_hess,
Index *  iRow,
Index *  jCol,
Number *  values 
) [virtual]

Method to return: 1) The structure of the hessian of the lagrangian (if "values" is NULL) 2) The values of the hessian of the lagrangian (if "values" is not NULL).

virtual bool SMAG_NLP::intermediate_callback ( AlgorithmMode  mode,
Index  iter,
Number  obj_value,
Number  inf_pr,
Number  inf_du,
Number  mu,
Number  d_norm,
Number  regularization_size,
Number  alpha_du,
Number  alpha_pr,
Index  ls_trials,
const IpoptData *  ip_data,
IpoptCalculatedQuantities *  ip_cq 
) [virtual]

Method called by the solver at each iteration.

Checks the domain violation limit and time limit and stops the solver in case of limit exceedance.

virtual void SMAG_NLP::finalize_solution ( SolverReturn  status,
Index  n,
const Number *  x,
const Number *  z_L,
const Number *  z_U,
Index  m,
const Number *  g,
const Number *  lambda,
Number  obj_value 
) [virtual]

This method is called when the algorithm is complete so the TNLP can store/write the solution.

SMAG_NLP& SMAG_NLP::operator= ( const SMAG_NLP  )  [private]


Member Data Documentation

double SMAG_NLP::div_iter_tol

Definition at line 93 of file SmagNLP.hpp.

double SMAG_NLP::scaled_conviol_tol

Definition at line 94 of file SmagNLP.hpp.

double SMAG_NLP::unscaled_conviol_tol

Definition at line 95 of file SmagNLP.hpp.

smagHandle_t SMAG_NLP::prob [private]

Definition at line 97 of file SmagNLP.hpp.

double SMAG_NLP::clockStart [private]

Definition at line 98 of file SmagNLP.hpp.

double* SMAG_NLP::negLambda [private]

Definition at line 99 of file SmagNLP.hpp.

double SMAG_NLP::isMin [private]

Definition at line 100 of file SmagNLP.hpp.

double SMAG_NLP::timelimit [private]

Definition at line 101 of file SmagNLP.hpp.

int SMAG_NLP::domviollimit [private]

Definition at line 102 of file SmagNLP.hpp.

long int SMAG_NLP::domviolations [private]

Definition at line 103 of file SmagNLP.hpp.

int SMAG_NLP::last_iterationnumber [private]

Definition at line 105 of file SmagNLP.hpp.

double SMAG_NLP::last_scaled_conviol [private]

Definition at line 106 of file SmagNLP.hpp.

double SMAG_NLP::last_unscaled_conviol [private]

Definition at line 107 of file SmagNLP.hpp.


The documentation for this class was generated from the following file:
Generated on Fri May 16 19:23:22 2008 for GAMSlinks by  doxygen 1.4.7