Solvers

Plasmo.jl is intended to support MathOptInterface.jl solvers in the same way as JuMP, in addition to custom decomposition-based solvers that can use the graph structure.

MathOptInterface.jl Solvers

Solvers with MathOptInterface.jl wrappers should be accessible to Plasmo.jl using standard JuMP commands (i.e. the set_optimizer and optimize! functions should work for an OptiGraph.) The list of available JuMP solvers is extensive and can be found on the JuMP documentation page.

Custom Plasmo.jl Solvers

The breadth of current custom Plasmo.jl solvers is still somewhat limited, but the solvers listed below provide a glimpse of future solver development. Please stay tuned for custom Plasmo.jl solver releases and updates.

MadNLP

MadNLP is an NLP solver that can solve OptiGraphs directly using parallel function evaluations and specialized decomposition schemes.

PipsNLP.jl

The PipsNLP interface can be used to solve structured nonlinear optimization problems with PIPS-NLP using MPI. The examples folder in PipsNLP.jl shows how to use the Julia MPIManager as part of MPIClusterManagers to model and optimize optigraphs in a distributed fashion. Note however, that it requires building an old commit specified on the PipsNLP.jl README.

SchwarzOpt.jl

The SchwarzOpt optimizer is currently an experimental solver. It demonstrates how to use graph overlap to solve optigraphs with Schwarz decomposition.