Changes to pyOptSparseΒΆ

The following list summarizes some of the changes/improvements made to pyOpt to get pyOptSparse:

  • Elimination of n^2 scaling behaviour when adding large numbers of design variables (>10,000)
  • Proper handling of all optimizers when run in parallel environment (Only a single optimization instance is run, not nProc instances)
  • More flexible return specification of constraints
  • More flexible return specification of constraint gradients
  • Complete elimination of gradient indexing errors using dictionary based returns
  • Substantial improvement of optimization script robustness through indexing elimination
  • Automatic assembly of sparse jacobians with both dense and sparse subblocks
  • Automatic conversion of sparse jacobian to dense for optimizers that cannot handle sparse constraints
  • User specification of design variable scaling
  • User specificaiton of constraint scaling
  • Design variable returns in dictionary format only
  • Specification of linear constraints, dense or sparse
  • Sparse non-linear jacobians
  • New history file format. Uses naitve python shelve database format. Much easier to retrieve optimization data after optimization.
  • Fixed hot start bug where first call to user functions is a gradient. It is now guaranteed, that the first call is to the function evlaution, not the gradient.
  • Various bug fixes in SNOPT
  • Constraints can be any order, independent of what the individual optimizer requires
  • Python 3.x compatibility