Description of feature
pyoptsparse currently supports a subset of the optimizers that were available in the legacy pyOpt package. While pyoptsparse is clearly the modern and actively maintained successor, this gap makes migration from pyOpt more difficult for users with existing optimization workflows.
The following optimizers are available in pyOpt but not currently supported in pyoptsparse:
- pyALGENCAN
- pyALHSO
- pyCOBYLA
- pyFILTERSD
- pyFSQP
- pyGCMMA
- pyKSOPT
- pyMIDACO
- pyMMA
- pyMMFD
- pyNLPQL
- pySDPEN
- pySOLVOPT
This feature would be particularly useful for:
- Users migrating legacy
pyOpt codebases to pyoptsparse
- Researchers who rely on specific optimizers (e.g., MMA/GCMMA, COBYLA, MIDACO)
- Maintaining reproducibility of historical optimization results
Improving optimizer coverage would help establish pyoptsparse as a true drop-in replacement for pyOpt.
Potential solution
Possible implementation approaches include:
-
Incremental addition of optimizer wrappers
- Port existing optimizer interfaces from
pyOpt where licensing permits
- Prioritize commonly used optimizers such as
pyMMA, pyGCMMA, and pyCOBYLA
-
Optional / plugin-based optimizer architecture
- Allow external or community-maintained optimizer wrappers to be registered dynamically
- Reduce maintenance burden on the core library
-
Compatibility layer for pyOpt-style APIs
- Provide a thin wrapper that reuses
pyOpt optimizer logic while exposing a pyoptsparse-compatible interface
-
Documentation and migration guidance
- Clearly document which optimizers are supported, planned, or deprecated
- Provide examples mapping
pyOpt optimizers to pyoptsparse equivalents where possible
Source: https://github.com/madebr/pyOpt
Description of feature
pyoptsparsecurrently supports a subset of the optimizers that were available in the legacypyOptpackage. Whilepyoptsparseis clearly the modern and actively maintained successor, this gap makes migration frompyOptmore difficult for users with existing optimization workflows.The following optimizers are available in
pyOptbut not currently supported inpyoptsparse:This feature would be particularly useful for:
pyOptcodebases topyoptsparseImproving optimizer coverage would help establish
pyoptsparseas a true drop-in replacement forpyOpt.Potential solution
Possible implementation approaches include:
Incremental addition of optimizer wrappers
pyOptwhere licensing permitspyMMA,pyGCMMA, andpyCOBYLAOptional / plugin-based optimizer architecture
Compatibility layer for pyOpt-style APIs
pyOptoptimizer logic while exposing apyoptsparse-compatible interfaceDocumentation and migration guidance
pyOptoptimizers topyoptsparseequivalents where possibleSource: https://github.com/madebr/pyOpt