Scippy

SCIP

Solving Constraint Integer Programs

nlpi_ipopt.h File Reference

Detailed Description

Ipopt NLP interface.

Author
Stefan Vigerske
Benjamin Müller

Definition in file nlpi_ipopt.h.

#include "nlpi/type_nlpi.h"

Go to the source code of this file.

Functions

SCIP_RETCODE SCIPcreateNlpSolverIpopt (BMS_BLKMEM *blkmem, SCIP_NLPI **nlpi)
 
const char * SCIPgetSolverNameIpopt (void)
 
const char * SCIPgetSolverDescIpopt (void)
 
SCIP_Bool SCIPisIpoptAvailableIpopt (void)
 
void * SCIPgetIpoptApplicationPointerIpopt (SCIP_NLPIPROBLEM *nlpiproblem)
 
void * SCIPgetNlpiOracleIpopt (SCIP_NLPIPROBLEM *nlpiproblem)
 
void SCIPsetModifiedDefaultSettingsIpopt (SCIP_NLPI *nlpi, const char *optionsstring)
 
SCIP_RETCODE LapackDsyev (SCIP_Bool computeeigenvectors, int N, SCIP_Real *a, SCIP_Real *w)
 
SCIP_RETCODE SCIPsolveLinearProb (int N, SCIP_Real **A, SCIP_Real *b, SCIP_Real *x, SCIP_Bool *success)
 

Function Documentation

SCIP_RETCODE SCIPcreateNlpSolverIpopt ( BMS_BLKMEM blkmem,
SCIP_NLPI **  nlpi 
)

create solver interface for Ipopt solver sets *nlpi to NULL if Ipopt is not available

create solver interface for Ipopt solver

Parameters
blkmemblock memory data structure
nlpipointer to buffer for nlpi address

Definition at line 1957 of file nlpi_ipopt.cpp.

References NLPI_DESC, NLPI_NAME, NLPI_PRIORITY, NULL, SCIP_ALLOC, SCIP_CALL, SCIP_OKAY, and SCIPnlpiCreate().

Referenced by SCIP_DECL_NLPICOPY(), and SCIPincludeDefaultPlugins().

const char* SCIPgetSolverNameIpopt ( void  )

gets string that identifies Ipopt (version number)

Definition at line 1987 of file nlpi_ipopt.cpp.

Referenced by SCIPincludeDefaultPlugins().

const char* SCIPgetSolverDescIpopt ( void  )

gets string that describes Ipopt (version number)

Definition at line 1993 of file nlpi_ipopt.cpp.

Referenced by SCIPincludeDefaultPlugins().

SCIP_Bool SCIPisIpoptAvailableIpopt ( void  )

returns whether Ipopt is available, i.e., whether it has been linked in

Definition at line 1999 of file nlpi_ipopt.cpp.

References FALSE, and TRUE.

Referenced by checkCurvature(), checkFactorable(), SCIP_DECL_CONSINITSOL(), and SCIP_DECL_QUADCONSUPGD().

void* SCIPgetIpoptApplicationPointerIpopt ( SCIP_NLPIPROBLEM nlpiproblem)

gives a pointer to the IpoptApplication object stored in Ipopt-NLPI's NLPI problem data structure

Parameters
nlpiproblemNLP problem of Ipopt-NLPI

Definition at line 2005 of file nlpi_ipopt.cpp.

References SCIP_NlpiProblem::ipopt, NULL, SCIPABORT, and SCIPerrorMessage.

void* SCIPgetNlpiOracleIpopt ( SCIP_NLPIPROBLEM nlpiproblem)

gives a pointer to the NLPIORACLE object stored in Ipopt-NLPI's NLPI problem data structure

Parameters
nlpiproblemNLP problem of Ipopt-NLPI

Definition at line 2015 of file nlpi_ipopt.cpp.

References NULL, SCIP_NlpiProblem::oracle, SCIPABORT, and SCIPerrorMessage.

void SCIPsetModifiedDefaultSettingsIpopt ( SCIP_NLPI nlpi,
const char *  optionsstring 
)

sets modified default settings that are used when setting up an Ipopt problem

Do not forget to add a newline after the last option in optionsstring.

Parameters
nlpiIpopt NLP interface
optionsstringstring with options as in Ipopt options file

Definition at line 2028 of file nlpi_ipopt.cpp.

References NULL, SCIPABORT, SCIPerrorMessage, and SCIPnlpiGetData().

SCIP_RETCODE LapackDsyev ( SCIP_Bool  computeeigenvectors,
int  N,
SCIP_Real a,
SCIP_Real w 
)

Calls Lapacks Dsyev routine to compute eigenvalues and eigenvectors of a dense matrix. It's here, because Ipopt is linked against Lapack.

Calls Lapacks Dsyev routine to compute eigenvalues and eigenvectors of a dense matrix.

It's here, because we use Ipopt's interface to Lapack.

Parameters
computeeigenvectorsshould also eigenvectors should be computed ?
Ndimension
amatrix data on input (size N*N); eigenvectors on output if computeeigenvectors == TRUE
wbuffer to store eigenvalues (size N)

Definition at line 2793 of file nlpi_ipopt.cpp.

References SCIP_ERROR, SCIP_OKAY, and SCIPerrorMessage.

Referenced by checkCurvature(), checkFactorable(), and SCIP_DECL_QUADCONSUPGD().

SCIP_RETCODE SCIPsolveLinearProb ( int  N,
SCIP_Real **  A,
SCIP_Real b,
SCIP_Real x,
SCIP_Bool success 
)

Calls Lapacks IpLapackDgetrf routine to calculate a LU factorization and uses this factorization to solve the linear problem Ax = b. It's here, because Ipopt is linked against Lapack.

solves a linear problem of the form Ax = b

Calls Lapacks IpLapackDgetrf routine to calculate a LU factorization and uses this factorization to solve the linear problem Ax = b. It's here, because Ipopt is linked against Lapack.

Parameters
Ndimension
Amatrix data on input (size N*N)
bright hand side vector (size N)
xbuffer to store solution (size N)
successpointer to store if the solving routine was successful

Definition at line 2819 of file nlpi_ipopt.cpp.

References BMSallocMemoryArray, BMSfreeMemoryArray, FALSE, NULL, SCIP_ALLOC, SCIP_OKAY, SCIP_Real, SCIPerrorMessage, and TRUE.