CONOPT
Loading...
Searching...
No Matches

Functions

 qp1.QPModelData.buildModel (self)
 adding the variables and constraints to the model
 
 qp1.QPModelData.evaluateNonlinearTerm (self, x, rowno, ignerr, thread)
 callback method for evaluating the nonlinear terms in a given row
 
 qp1.QPModelData.evaluateNonlinearJacobian (self, x, rowno, jacnum, ignerr, thread)
 callback method for evaluating the jacobian for the nonlinear terms in a given row
 

Detailed Description

The current model is a simple QP model with a sparse Q matrix, bounded variables, and one constraint.

The number of superbasic variables is larger than the default limit of 500 and the model does not solve nicely. To solve it faster, there are these possibilities:

  1. Increase the limit on the number of superbasics. This can be done with a call to coidef_maxsup() or with an option. Both approaches are shown in extra solves in this file.
  2. Use directional 2nd derivatives, see qp2
  3. Use 2nd derivatives as a matrix, see qp3
  4. 2 and 3 combined, see qp4
  5. Use 2nd derivatives computed using perturbations, see qp5
  6. Use 2nd derivatives computed using perturbations defined using an options routine, see qp6
  7. As 5 but with the objective defined as a positive variable, i.e. it cannot be removed in the post-triangle.

For more information about the individual callbacks, please have a look at the source code.

Function Documentation

◆ buildModel()

qp1.QPModelData.buildModel ( self)

adding the variables and constraints to the model

Definition at line 30 of file qp1.py.

◆ evaluateNonlinearTerm()

qp1.QPModelData.evaluateNonlinearTerm ( self,
x,
rowno,
ignerr,
thread )

callback method for evaluating the nonlinear terms in a given row

Parameters
xthe solution vector that needs to be evaluated.
rownothe number for the row in which the nonlinear term exists.
ignerra boolean to indicate whether the current point is safe or unsafe.
threadthe index of the thread from which this method is being called from.
Returns
the value of the nonlinear terms.

Notes: an error in the evaluation is reported by calling errorInEvaluation()

Reimplemented from pyconopt.ModelData.

Definition at line 58 of file qp1.py.

◆ evaluateNonlinearJacobian()

qp1.QPModelData.evaluateNonlinearJacobian ( self,
x,
rowno,
jacnum,
ignerr,
thread )

callback method for evaluating the jacobian for the nonlinear terms in a given row

Parameters
xthe solution vector that needs to be evaluated.
rownothe number for the row in which the nonlinear term exists.
jacnumvector with a list of column numbers for the nonlinear nonzero Jacobian elements in the row.
ignerra boolean to indicate whether the current point is safe or unsafe.
threadthe index of the thread from which this method is being called from.
Returns
a vector the length of jacnum that contains the jacobian values for the referenced elements.

Notes: an error in the evaluation is reported by calling errorInEvaluation()

Reimplemented from pyconopt.ModelData.

Definition at line 73 of file qp1.py.