- Main Page
- Namespaces
- Classes
- Files
- Related Pages

- Alphabetical List
- Class List
- Class Hierarchy
- Class Members

# IpoptProblem Class Reference

`#include <OSIpoptSolver.h>`

Collaboration diagram for IpoptProblem:

[legend]
List of all members.

## Public Member Functions
| IpoptProblem (OSInstance *osinstance_, OSOption *osoption_, OSResult *osresult_, std::string *ipoptErrorMsg_)
| 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
OSInstance * | osinstance
OSOption * | osoption
OSResult * | osresult
std::string * | ipoptErrorMsg
## 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 &)
IpoptProblem & | operator= (const IpoptProblem &)

## Detailed Description

Definition at line 79 of file OSIpoptSolver.h.

## Constructor & Destructor Documentation

IpoptProblem::IpoptProblem | ( | OSInstance * | osinstance_,
|  | OSOption * | osoption_,
|  | OSResult * | osresult_,
|  | std::string * | ipoptErrorMsg_ |
| ) |  |  |

the IpoptProblemclass constructor

Definition at line 926 of file OSIpoptSolver.cpp.

References ipoptErrorMsg, osinstance, osoption, and osresult.

IpoptProblem::~IpoptProblem | ( |  | ) | `[virtual]`

the IpoptProblem class destructor

Definition at line 933 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 62 of file OSIpoptSolver.cpp.

References OSInstance::bUseExpTreeForFunEval, ErrorClass::errormsg, OSInstance::getConstraintNumber(), OSInstance::getJacobianSparsityPattern(), OSInstance::getLagrangianHessianSparsityPattern(), OSInstance::getNumberOfBinaryVariables(), OSInstance::getNumberOfIntegerVariables(), OSInstance::getNumberOfNonlinearExpressions(), OSInstance::getNumberOfQuadraticTerms(), 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 153 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 188 of file OSIpoptSolver.cpp.

References DEBUG, OSOption::getInitVarValuesSparse(), OSOption::getNumberOfInitVarValues(), OSInstance::getVariableNumber(), InitVarValue::idx, OSInstance::instanceData, Variable::lb, OSDBL_MAX, osinstance, osoption, Variable::ub, InitVarValue::value, Variables::var, and InstanceData::variables.

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 311 of file OSIpoptSolver.cpp.

References OSInstance::calculateAllObjectiveFunctionValues(), ErrorClass::errormsg, OSInstance::getObjectiveNumber(), ipoptErrorMsg, 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 332 of file OSIpoptSolver.cpp.

References OSInstance::calculateObjectiveFunctionGradient(), ErrorClass::errormsg, OSInstance::getObjectiveNumber(), 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 355 of file OSIpoptSolver.cpp.

References OSInstance::calculateAllConstraintFunctionValues(), DEBUG, ErrorClass::errormsg, ipoptErrorMsg, 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 376 of file OSIpoptSolver.cpp.

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

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 432 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 485 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 499 of file OSIpoptSolver.cpp.

References OSInstance::calculateAllObjectiveFunctionValues(), ErrorClass::errormsg, OSInstance::getConstraintNumber(), OSInstance::getInstanceName(), OSInstance::getObjectiveNumber(), OSInstance::getVariableNumber(), getVersionInfo(), os_dtoa_format(), osinstance, osresult, OSResult::setAnOtherVariableResultSparse(), OSResult::setConstraintNumber(), OSResult::setDualVariableValuesDense(), OSResult::setGeneralMessage(), OSResult::setGeneralStatusType(), OSResult::setInstanceName(), OSResult::setNumberOfOtherVariableResults(), OSResult::setObjectiveNumber(), OSResult::setObjectiveValuesDense(), OSResult::setPrimalVariableValuesDense(), OSResult::setServiceName(), OSResult::setSolutionMessage(), OSResult::setSolutionNumber(), OSResult::setSolutionStatus(), OSResult::setSolverInvoked(), OSResult::setVariableNumber(), and OSrLWriter::writeOSrL().

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

## Member Data Documentation

OSInstance* IpoptProblem::osinstance

Definition at line 89 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().

OSOption* IpoptProblem::osoption

Definition at line 91 of file OSIpoptSolver.h.

Referenced by get_starting_point(), and IpoptProblem().

OSResult* IpoptProblem::osresult

Definition at line 93 of file OSIpoptSolver.h.

Referenced by finalize_solution(), and IpoptProblem().

std::string* IpoptProblem::ipoptErrorMsg

Definition at line 95 of file OSIpoptSolver.h.

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

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

- /home/coin/SVN-release/OS-2.3.5/OS/src/OSSolverInterfaces/OSIpoptSolver.h
- /home/coin/SVN-release/OS-2.3.5/OS/src/OSSolverInterfaces/OSIpoptSolver.cpp
- /home/coin/SVN-release/OS-2.3.5/OS/v2.0/OSIpoptSolver.cpp