#include "IpReturnCodes.h"
Go to the source code of this file.
Defines | |
#define | TRUE (1) |
#define | FALSE (0) |
Typedefs | |
typedef double | Number |
Type for all number. | |
typedef int | Index |
Type for all incides. | |
typedef int | Int |
Type for all integers. | |
typedef struct IpoptProblemInfo * | IpoptProblem |
Pointer to a Ipopt Problem. | |
typedef int | Bool |
define a boolean type for C | |
typedef void * | UserDataPtr |
A pointer for anything that is to be passed between the called and individual callback function. | |
typedef Bool(* | Eval_F_CB )(Index n, Number *x, Bool new_x, Number *obj_value, UserDataPtr user_data) |
Type defining the callback function for evaluating the value of the objective function. | |
typedef Bool(* | Eval_Grad_F_CB )(Index n, Number *x, Bool new_x, Number *grad_f, UserDataPtr user_data) |
Type defining the callback function for evaluating the gradient of the objective function. | |
typedef Bool(* | Eval_G_CB )(Index n, Number *x, Bool new_x, Index m, Number *g, UserDataPtr user_data) |
Type defining the callback function for evaluating the value of the constraint functions. | |
typedef Bool(* | Eval_Jac_G_CB )(Index n, Number *x, Bool new_x, Index m, Index nele_jac, Index *iRow, Index *jCol, Number *values, UserDataPtr user_data) |
Type defining the callback function for evaluating the Jacobian of the constrant functions. | |
typedef Bool(* | Eval_H_CB )(Index n, Number *x, Bool new_x, Number obj_factor, Index m, Number *lambda, Bool new_lambda, Index nele_hess, Index *iRow, Index *jCol, Number *values, UserDataPtr user_data) |
Type defining the callback function for evaluating the Hessian of the Lagrangian function. | |
Functions | |
IpoptProblem | CreateIpoptProblem (Index n, Number *x_L, Number *x_U, Index m, Number *g_L, Number *g_U, Index nele_jac, Index nele_hess, Index index_style, Eval_F_CB eval_f, Eval_G_CB eval_g, Eval_Grad_F_CB eval_grad_f, Eval_Jac_G_CB eval_jac_g, Eval_H_CB eval_h) |
Function for creating a new Ipopt Problem object. | |
void | FreeIpoptProblem (IpoptProblem ipopt_problem) |
Method for freeing a previously created IpoptProblem. | |
Bool | AddIpoptStrOption (IpoptProblem ipopt_problem, const char *keyword, const char *val) |
Function for adding a string option. | |
Bool | AddIpoptNumOption (IpoptProblem ipopt_problem, const char *keyword, Number val) |
Function for adding a Number option. | |
Bool | AddIpoptIntOption (IpoptProblem ipopt_problem, const char *keyword, Int val) |
Function for adding an Int option. | |
Bool | OpenIpoptOutputFile (IpoptProblem ipopt_problem, char *file_name, Int print_level) |
Function for opening an output file for a given name with given printlevel. | |
enum ApplicationReturnStatus | IpoptSolve (IpoptProblem ipopt_problem, Number *x, Number *g, Number *obj_val, Number *mult_g, Number *mult_x_L, Number *mult_x_U, UserDataPtr user_data) |
Function calling the Ipopt optimization algorithm for a problem previously defined with CreateIpoptProblem. |
#define FALSE (0) |
#define TRUE (1) |
Type defining the callback function for evaluating the value of the objective function.
Return value should be set to false if there was a problem doing the evaluation.
typedef Bool(* Eval_G_CB)(Index n, Number *x, Bool new_x, Index m, Number *g, UserDataPtr user_data) |
Type defining the callback function for evaluating the value of the constraint functions.
Return value should be set to false if there was a problem doing the evaluation.
typedef Bool(* Eval_Grad_F_CB)(Index n, Number *x, Bool new_x, Number *grad_f, UserDataPtr user_data) |
Type defining the callback function for evaluating the gradient of the objective function.
Return value should be set to false if there was a problem doing the evaluation.
typedef Bool(* Eval_H_CB)(Index n, Number *x, Bool new_x, Number obj_factor, Index m, Number *lambda, Bool new_lambda, Index nele_hess, Index *iRow, Index *jCol, Number *values, UserDataPtr user_data) |
Type defining the callback function for evaluating the Hessian of the Lagrangian function.
Return value should be set to false if there was a problem doing the evaluation.
typedef Bool(* Eval_Jac_G_CB)(Index n, Number *x, Bool new_x, Index m, Index nele_jac, Index *iRow, Index *jCol, Number *values, UserDataPtr user_data) |
Type defining the callback function for evaluating the Jacobian of the constrant functions.
Return value should be set to false if there was a problem doing the evaluation.
typedef int Index |
Type for all incides.
We need to make sure that this is identical with what is defined in Common/IpTypes.hpp
typedef int Int |
Type for all integers.
We need to make sure that this is identical with what is defined in Common/IpTypes.hpp
typedef struct IpoptProblemInfo* IpoptProblem |
Pointer to a Ipopt Problem.
typedef double Number |
Type for all number.
We need to make sure that this is identical with what is defined in Common/IpTypes.hpp
typedef void* UserDataPtr |
A pointer for anything that is to be passed between the called and individual callback function.
Bool AddIpoptIntOption | ( | IpoptProblem | ipopt_problem, | |
const char * | keyword, | |||
Int | val | |||
) |
Function for adding an Int option.
Returns FALSE the option could not be set (e.g., if keyword is unknown)
References IpoptProblemInfo::app.
Referenced by F77_FUNC().
Bool AddIpoptNumOption | ( | IpoptProblem | ipopt_problem, | |
const char * | keyword, | |||
Number | val | |||
) |
Function for adding a Number option.
Returns FALSE the option could not be set (e.g., if keyword is unknown)
References IpoptProblemInfo::app.
Referenced by F77_FUNC().
Bool AddIpoptStrOption | ( | IpoptProblem | ipopt_problem, | |
const char * | keyword, | |||
const char * | val | |||
) |
Function for adding a string option.
Returns FALSE the option could not be set (e.g., if keyword is unknown)
References IpoptProblemInfo::app.
Referenced by F77_FUNC().
IpoptProblem CreateIpoptProblem | ( | Index | n, | |
Number * | x_L, | |||
Number * | x_U, | |||
Index | m, | |||
Number * | g_L, | |||
Number * | g_U, | |||
Index | nele_jac, | |||
Index | nele_hess, | |||
Index | index_style, | |||
Eval_F_CB | eval_f, | |||
Eval_G_CB | eval_g, | |||
Eval_Grad_F_CB | eval_grad_f, | |||
Eval_Jac_G_CB | eval_jac_g, | |||
Eval_H_CB | eval_h | |||
) |
Function for creating a new Ipopt Problem object.
This function returns an object that can be passed to the IpoptSolve call. It contains the basic definition of the optimization problem, such as number of variables and constraints, bounds on variables and constraints, information about the derivatives, and the callback function for the computation of the optimization problem functions and derivatives. During this call, the options file PARAMS.DAT is read as well.
If NULL is returned, there was a problem with one of the inputs or reading the options file.
n | Number of optimization variables |
x_L | Lower bounds on variables. This array of size n is copied internally, so that the caller can change the incoming data after return without that IpoptProblem is modified. Any value less or equal than the number specified by option 'nlp_lower_bound_inf' is interpreted to be minus infinity. |
x_U | Upper bounds on variables. This array of size n is copied internally, so that the caller can change the incoming data after return without that IpoptProblem is modified. Any value greater or equal than the number specified by option 'nlp_upper_bound_inf' is interpreted to be plus infinity. |
m | Number of constraints. |
g_L | Lower bounds on constraints. This array of size m is copied internally, so that the caller can change the incoming data after return without that IpoptProblem is modified. Any value less or equal than the number specified by option 'nlp_lower_bound_inf' is interpreted to be minus infinity. |
g_U | Upper bounds on constraints. This array of size m is copied internally, so that the caller can change the incoming data after return without that IpoptProblem is modified. Any value greater or equal than the number specified by option 'nlp_upper_bound_inf' is interpreted to be plus infinity. |
nele_jac | Number of non-zero elements in constraint Jacobian. |
nele_hess | Number of non-zero elements in Hessian of Lagrangian. |
index_style | indexing style for iRow & jCol, 0 for C style, 1 for Fortran style |
eval_f | Callback function for evaluating objective function |
eval_g | Callback function for evaluating constraint functions |
eval_grad_f | Callback function for evaluating gradient of objective function |
eval_jac_g | Callback function for evaluating Jacobian of constraint functions |
eval_h | Callback function for evaluating Hessian of Lagrangian function |
References IpoptProblemInfo::app, IpoptProblemInfo::eval_f, IpoptProblemInfo::eval_g, IpoptProblemInfo::eval_grad_f, IpoptProblemInfo::eval_h, IpoptProblemInfo::eval_jac_g, IpoptProblemInfo::g_L, IpoptProblemInfo::g_U, fkinkryx::i, IpoptProblemInfo::index_style, IpoptProblemInfo::m, IpoptProblemInfo::n, IpoptProblemInfo::nele_hess, IpoptProblemInfo::nele_jac, IpoptProblemInfo::x_L, and IpoptProblemInfo::x_U.
Referenced by F77_FUNC().
void FreeIpoptProblem | ( | IpoptProblem | ipopt_problem | ) |
Method for freeing a previously created IpoptProblem.
After freeing an IpoptProblem, it cannot be used anymore.
References IpoptProblemInfo::app, IpoptProblemInfo::g_L, IpoptProblemInfo::g_U, IpoptProblemInfo::m, IpoptProblemInfo::x_L, and IpoptProblemInfo::x_U.
Referenced by F77_FUNC().
enum ApplicationReturnStatus IpoptSolve | ( | IpoptProblem | ipopt_problem, | |
Number * | x, | |||
Number * | g, | |||
Number * | obj_val, | |||
Number * | mult_g, | |||
Number * | mult_x_L, | |||
Number * | mult_x_U, | |||
UserDataPtr | user_data | |||
) |
Function calling the Ipopt optimization algorithm for a problem previously defined with CreateIpoptProblem.
The return specified outcome of the optimization procedure (e.g., success, failure etc).
ipopt_problem | Problem that is to be optimized. Ipopt will use the options previously specified with AddIpoptOption (etc) for this problem. |
x | Input: Starting point Output: Optimal solution |
g | Values of constraint at final point (output only - ignored if set to NULL) |
obj_val | Final value of objective function (output only - ignored if set to NULL) |
mult_g | Final multipliers for constraints (output only - ignored if set to NULL) |
mult_x_L | Final multipliers for lower variable bounds (output only - ignored if set to NULL) |
mult_x_U | Final multipliers for upper variable bounds (output only - ignored if set to NULL) |
user_data | Pointer to user data. This will be passed unmodified to the callback functions. |
References IpoptProblemInfo::app, IpoptProblemInfo::eval_f, IpoptProblemInfo::eval_g, IpoptProblemInfo::eval_grad_f, IpoptProblemInfo::eval_h, IpoptProblemInfo::eval_jac_g, IpoptProblemInfo::g_L, IpoptProblemInfo::g_U, fkinkryx::i, IpoptProblemInfo::index_style, Ipopt::Invalid_Problem_Definition, Ipopt::J_ERROR, IpoptProblemInfo::m, IpoptProblemInfo::n, IpoptProblemInfo::nele_hess, IpoptProblemInfo::nele_jac, IpoptProblemInfo::x_L, and IpoptProblemInfo::x_U.
Referenced by F77_FUNC().
Bool OpenIpoptOutputFile | ( | IpoptProblem | ipopt_problem, | |
char * | file_name, | |||
Int | print_level | |||
) |
Function for opening an output file for a given name with given printlevel.
Returns false, if there was a problem opening the file.
References IpoptProblemInfo::app.
Referenced by F77_FUNC().