Installation Guide
From Julia, PowerModelsDistribution is installed using the built-in package manager:
import Pkg
Pkg.add("PowerModelsDistribution")
Or, within the Julia REPL:
]add PowerModelsDistribution
Installing an Optimizer
PowerModelsDistribution depends on optimizers to solve Optimization problems, e.g., solve_mc_opf
. The table below lists the optimizer packages that have been tested with PowerModelsDistribution, and have been found to work by the team; this list is not exhaustive, there are probably more optimizers that will work.
Install an optimizer using the Julia Package Manager, e.g.,
import Pkg
Pkg.add("Ipopt")
Known Working Optimizers
The table below contains a truncated list of optimizers from the JuMP documentation that have been used by the development team and are confirmed to work with our package. There may be other Optimizers that work, and the Optimizers listed below are not guaranteed to work with all problems; they must be selected for the appropriate problems.
Solver | Julia Package | Installation | License | Supports |
---|---|---|---|---|
Artelys Knitro | KNITRO.jl | Manual | Comm. | (MI)LP, (MI)SOCP, (MI)NLP |
Cbc | Cbc.jl | EPL | (MI)LP | |
CPLEX | CPLEX.jl | Manual | Comm. | (MI)LP, (MI)SOCP |
Gurobi | Gurobi.jl | Manual | Comm. | (MI)LP, (MI)SOCP |
Ipopt | Ipopt.jl | EPL | LP, QP, NLP | |
Juniper.jl | Juniper.jl | MIT | (MI)SOCP, (MI)NLP | |
SCS | SCS.jl | MIT | LP, SOCP, SDP |
Where:
- LP = Linear programming
- QP = Quadratic programming
- SOCP = Second-order conic programming (including problems with convex quadratic constraints and/or objective)
- NLP = Nonlinear programming
- SDP = Semidefinite programming
- (MI)XXX = Mixed-integer equivalent of problem type
XXX
For a complete list of JuMP supported optimizers, see JuMP Documentation.
Unsatisfiable requirements detected
Did you get an error like Unsatisfiable requirements detected for package D [756980fe]:
?
The Pkg documentation has a section on how to understand and manage these conflicts.