GAMSlinks  0.4
Public Member Functions | Public Attributes | Private Member Functions | Private Attributes | List of all members
SMAG_NLP Class Reference

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

#include <SmagNLP.hpp>

Inheritance diagram for SMAG_NLP:
Inheritance graph
[legend]
Collaboration diagram for SMAG_NLP:
Collaboration graph
[legend]

Public Member Functions

 SMAG_NLP (smagHandle_t prob)
 Contructor. More...
 
virtual ~SMAG_NLP ()
 Default destructor. More...
 
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. More...
 
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. More...
 
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. More...
 
virtual bool get_scaling_parameters (Number &obj_scaling, bool &use_x_scaling, Index n, Number *x_scaling, bool &use_g_scaling, Index m, Number *g_scaling)
 
virtual bool get_variables_linearity (Index n, LinearityType *var_types)
 Method to return the variables linearity. More...
 
virtual bool get_constraints_linearity (Index m, LinearityType *const_types)
 Method to return the constraint linearity. More...
 
virtual bool eval_f (Index n, const Number *x, bool new_x, Number &obj_value)
 Method to return the objective value. More...
 
virtual bool eval_grad_f (Index n, const Number *x, bool new_x, Number *grad_f)
 Method to return the gradient of the objective. More...
 
virtual bool eval_g (Index n, const Number *x, bool new_x, Index m, Number *g)
 Method to return the constraint residuals. More...
 
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) More...
 
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) More...
 
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. More...
 
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, const IpoptData *data, IpoptCalculatedQuantities *cq)
 This method is called when the algorithm is complete so the TNLP can store/write the solution. More...
 

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
 

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
probThe 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::get_scaling_parameters ( Number &  obj_scaling,
bool &  use_x_scaling,
Index  n,
Number *  x_scaling,
bool &  use_g_scaling,
Index  m,
Number *  g_scaling 
)
virtual
virtual bool SMAG_NLP::get_variables_linearity ( Index  n,
LinearityType *  var_types 
)
virtual

Method to return the variables linearity.

virtual bool SMAG_NLP::get_constraints_linearity ( Index  m,
LinearityType *  const_types 
)
virtual

Method to return the constraint linearity.

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,
const IpoptData *  data,
IpoptCalculatedQuantities *  cq 
)
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 104 of file SmagNLP.hpp.

double SMAG_NLP::scaled_conviol_tol

Definition at line 105 of file SmagNLP.hpp.

double SMAG_NLP::unscaled_conviol_tol

Definition at line 106 of file SmagNLP.hpp.

smagHandle_t SMAG_NLP::prob
private

Definition at line 111 of file SmagNLP.hpp.

double SMAG_NLP::clockStart
private

Definition at line 112 of file SmagNLP.hpp.

double* SMAG_NLP::negLambda
private

Definition at line 113 of file SmagNLP.hpp.

double SMAG_NLP::isMin
private

Definition at line 114 of file SmagNLP.hpp.

double SMAG_NLP::timelimit
private

Definition at line 115 of file SmagNLP.hpp.

int SMAG_NLP::domviollimit
private

Definition at line 116 of file SmagNLP.hpp.

long int SMAG_NLP::domviolations
private

Definition at line 117 of file SmagNLP.hpp.


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