Scippy

SCIP

Solving Constraint Integer Programs

nlpi_ipopt.h
Go to the documentation of this file.
1 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
2 /* */
3 /* This file is part of the program and library */
4 /* SCIP --- Solving Constraint Integer Programs */
5 /* */
6 /* Copyright (C) 2002-2014 Konrad-Zuse-Zentrum */
7 /* fuer Informationstechnik Berlin */
8 /* */
9 /* SCIP is distributed under the terms of the ZIB Academic License. */
10 /* */
11 /* You should have received a copy of the ZIB Academic License */
12 /* along with SCIP; see the file COPYING. If not email to scip@zib.de. */
13 /* */
14 /* * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * */
15 
16 /**@file nlpi_ipopt.h
17  * @brief Ipopt NLP interface
18  * @ingroup NLPIS
19  * @author Stefan Vigerske
20  */
21 
22 /*---+----1----+----2----+----3----+----4----+----5----+----6----+----7----+----8----+----9----+----0----+----1----+----2*/
23 
24 #ifndef __SCIP_NLPI_IPOPT_H__
25 #define __SCIP_NLPI_IPOPT_H__
26 
27 #include "nlpi/type_nlpi.h"
28 
29 #ifdef __cplusplus
30 extern "C" {
31 #endif
32 
33 /** create solver interface for Ipopt solver
34  * sets *nlpi to NULL if Ipopt is not available
35  */
36 extern
38  BMS_BLKMEM* blkmem, /**< block memory data structure */
39  SCIP_NLPI** nlpi /**< pointer to buffer for nlpi address */
40  );
41 
42 /** gets string that identifies Ipopt (version number) */
43 extern
44 const char* SCIPgetSolverNameIpopt(void);
45 
46 /** gets string that describes Ipopt (version number) */
47 extern
48 const char* SCIPgetSolverDescIpopt(void);
49 
50 /** returns whether Ipopt is available, i.e., whether it has been linked in */
51 extern
53 
54 /** gives a pointer to the IpoptApplication object stored in Ipopt-NLPI's NLPI problem data structure */
55 extern
57  SCIP_NLPIPROBLEM* nlpiproblem /**< NLP problem of Ipopt-NLPI */
58  );
59 
60 /** gives a pointer to the NLPIORACLE object stored in Ipopt-NLPI's NLPI problem data structure */
61 extern
63  SCIP_NLPIPROBLEM* nlpiproblem /**< NLP problem of Ipopt-NLPI */
64  );
65 
66 /** sets modified default settings that are used when setting up an Ipopt problem
67  *
68  * Do not forget to add a newline after the last option in optionsstring.
69  */
70 extern
72  SCIP_NLPI* nlpi, /**< Ipopt NLP interface */
73  const char* optionsstring /**< string with options as in Ipopt options file */
74  );
75 
76 /** Calls Lapacks Dsyev routine to compute eigenvalues and eigenvectors of a dense matrix.
77  * It's here, because Ipopt is linked against Lapack.
78  */
80  SCIP_Bool computeeigenvectors,/**< should also eigenvectors should be computed ? */
81  int N, /**< dimension */
82  SCIP_Real* a, /**< matrix data on input (size N*N); eigenvectors on output if computeeigenvectors == TRUE */
83  SCIP_Real* w /**< buffer to store eigenvalues (size N) */
84  );
85 
86 #ifdef __cplusplus
87 }
88 #endif
89 
90 #endif /* __SCIP_NLPI_IPOPT_H__ */
struct SCIP_Nlpi SCIP_NLPI
Definition: type_nlpi.h:37
void * SCIPgetIpoptApplicationPointerIpopt(SCIP_NLPIPROBLEM *nlpiproblem)
struct SCIP_NlpiProblem SCIP_NLPIPROBLEM
Definition: type_nlpi.h:39
const char * SCIPgetSolverDescIpopt(void)
const char * SCIPgetSolverNameIpopt(void)
enum SCIP_Retcode SCIP_RETCODE
Definition: type_retcode.h:53
SCIP_Bool SCIPisIpoptAvailableIpopt(void)
#define SCIP_Bool
Definition: def.h:49
SCIP_RETCODE LapackDsyev(SCIP_Bool computeeigenvectors, int N, SCIP_Real *a, SCIP_Real *w)
void * SCIPgetNlpiOracleIpopt(SCIP_NLPIPROBLEM *nlpiproblem)
void SCIPsetModifiedDefaultSettingsIpopt(SCIP_NLPI *nlpi, const char *optionsstring)
#define SCIP_Real
Definition: def.h:123
SCIP_RETCODE SCIPcreateNlpSolverIpopt(BMS_BLKMEM *blkmem, SCIP_NLPI **nlpi)
type definitions for specific NLP solver interfaces