IpoptProblem Class Reference

#include <OSIpoptSolver.h>

List of all members.

Public Member Functions

 IpoptProblem (OSInstance *osinstance_, OSResult *osresult_)
 the IpoptProblemclass constructor
virtual ~IpoptProblem ()
 the IpoptProblem class destructor
virtual bool get_nlp_info (Index &n, Index &m, Index &nnz_jac_g, Index &nnz_h_lag, IndexStyleEnum &index_style)
 IPOpt specific methods for defining the nlp problem.
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 get_scaling_parameters (Number &obj_scaling, bool &use_x_scaling, Index n, Number *x_scaling, bool &use_g_scaling, Index m, Number *g_scaling)
Solution Methods
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 *ip_data, IpoptCalculatedQuantities *ip_cq)
 This method is called when the algorithm is complete so the TNLP can store/write the solution.

Public Attributes

OSResultosresult
OSInstanceosinstance

Private Member Functions

Methods to block default compiler methods.
The compiler automatically generates the following three methods.

Since the default compiler implementation is generally not what you want (for all but the most simple classes), we usually put the declarations of these methods in the private section and never implement them. This prevents the compiler from implementing an incorrect "default" behavior without us knowing. (See Scott Meyers book, "Effective C++")

 IpoptProblem (const IpoptProblem &)
IpoptProblemoperator= (const IpoptProblem &)

Private Attributes

std::string ipoptErrorMsg


Detailed Description

Definition at line 77 of file OSIpoptSolver.h.


Constructor & Destructor Documentation

IpoptProblem::IpoptProblem ( OSInstance osinstance_,
OSResult osresult_ 
)

the IpoptProblemclass constructor

Definition at line 618 of file OSIpoptSolver.cpp.

References osinstance, and osresult.

IpoptProblem::~IpoptProblem (  )  [virtual]

the IpoptProblem class destructor

Definition at line 623 of file OSIpoptSolver.cpp.

IpoptProblem::IpoptProblem ( const IpoptProblem  )  [private]


Member Function Documentation

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

IPOpt specific methods for defining the nlp problem.

Definition at line 56 of file OSIpoptSolver.cpp.

References OSInstance::bUseExpTreeForFunEval, ErrorClass::errormsg, OSInstance::getConstraintNumber(), OSInstance::getJacobianSparsityPattern(), OSInstance::getLagrangianHessianSparsityPattern(), OSInstance::getNumberOfNonlinearExpressions(), OSInstance::getNumberOfQuadraticTerms(), OSInstance::getObjectiveNumber(), OSInstance::getVariableNumber(), SparseHessianMatrix::hessDimension, OSInstance::initForAlgDiff(), ipoptErrorMsg, osinstance, and SparseJacobianMatrix::valueSize.

bool IpoptProblem::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.

Definition at line 109 of file OSIpoptSolver.cpp.

References OSInstance::getConstraintLowerBounds(), OSInstance::getConstraintUpperBounds(), OSInstance::getVariableLowerBounds(), OSInstance::getVariableUpperBounds(), and osinstance.

bool IpoptProblem::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.

Definition at line 144 of file OSIpoptSolver.cpp.

References OSInstance::getVariableInitialValues(), CommonUtil::ISOSNAN(), and osinstance.

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

Method to return the objective value.

Definition at line 176 of file OSIpoptSolver.cpp.

References OSInstance::calculateAllObjectiveFunctionValues(), ErrorClass::errormsg, ipoptErrorMsg, CommonUtil::ISOSNAN(), and osinstance.

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

Method to return the gradient of the objective.

Definition at line 188 of file OSIpoptSolver.cpp.

References OSInstance::calculateObjectiveFunctionGradient(), ErrorClass::errormsg, ipoptErrorMsg, and osinstance.

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

Method to return the constraint residuals.

Definition at line 206 of file OSIpoptSolver.cpp.

References OSInstance::calculateAllConstraintFunctionValues(), ErrorClass::errormsg, ipoptErrorMsg, CommonUtil::ISOSNAN(), and osinstance.

bool IpoptProblem::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).

Definition at line 224 of file OSIpoptSolver.cpp.

References OSInstance::calculateAllConstraintFunctionGradients(), ErrorClass::errormsg, OSInstance::getJacobianSparsityPattern(), SparseJacobianMatrix::indexes, ipoptErrorMsg, osinstance, SparseJacobianMatrix::starts, and SparseJacobianMatrix::values.

bool IpoptProblem::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).

Definition at line 274 of file OSIpoptSolver.cpp.

References OSInstance::calculateLagrangianHessian(), ErrorClass::errormsg, OSInstance::getLagrangianHessianSparsityPattern(), SparseHessianMatrix::hessColIdx, SparseHessianMatrix::hessRowIdx, SparseHessianMatrix::hessValues, ipoptErrorMsg, and osinstance.

bool IpoptProblem::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]

Definition at line 323 of file OSIpoptSolver.cpp.

References OSInstance::instanceData, Objective::maxOrMin, Objectives::obj, InstanceData::objectives, and osinstance.

void IpoptProblem::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 *  ip_data,
IpoptCalculatedQuantities *  ip_cq 
) [virtual]

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

Definition at line 337 of file OSIpoptSolver.cpp.

References ErrorClass::errormsg, OSInstance::getConstraintNumber(), OSInstance::getInstanceName(), OSInstance::getVariableNumber(), osinstance, osresult, OSResult::setConstraintNumber(), OSResult::setDualVariableValues(), OSResult::setGeneralMessage(), OSResult::setGeneralStatusType(), OSResult::setInstanceName(), OSResult::setObjectiveNumber(), OSResult::setObjectiveValues(), OSResult::setPrimalVariableValues(), OSResult::setServiceName(), OSResult::setSolutionNumber(), OSResult::setSolutionStatus(), OSResult::setVariableNumber(), and OSrLWriter::writeOSrL().

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


Member Data Documentation

OSResult* IpoptProblem::osresult

Definition at line 86 of file OSIpoptSolver.h.

Referenced by finalize_solution(), and IpoptProblem().

OSInstance* IpoptProblem::osinstance

Definition at line 88 of file OSIpoptSolver.h.

Referenced by eval_f(), eval_g(), eval_grad_f(), eval_h(), eval_jac_g(), finalize_solution(), get_bounds_info(), get_nlp_info(), get_scaling_parameters(), get_starting_point(), and IpoptProblem().

std::string IpoptProblem::ipoptErrorMsg [private]

Definition at line 171 of file OSIpoptSolver.h.

Referenced by eval_f(), eval_g(), eval_grad_f(), eval_h(), eval_jac_g(), and get_nlp_info().


The documentation for this class was generated from the following files:
Generated on Sat Mar 29 22:38:05 2008 by  doxygen 1.5.3