GuillotineModels.CommandLine.SolversArgs
GuillotineModels.CommandLine.SolversArgs
— ModuleSolversArgs
module aggregates the methods necessary for making solvers available to use with GuillotineModels.CommandLine
methods (especially run
).
The package Requires.jl
is used to implement GuillotineModels.SolversArgs.empty_configured_model(Val(:SOME_SOLVER))
only if SOME_SOLVER
package is loaded.
The solver-specific methods this module implements for each supported solver are: GuillotineModels.Utilities.Args.{accepted_arg_list, throw_if_incompatible_options}
, and GuillotineModels.CommandLine.SolversArgs. empty_configured_model
. The GuillotineModels.Utilities
methods are always available, not just when the respective solver package was imported.
The supported solvers are CPLEX
, Gurobi
, Cbc
, and GLPK
. Supporting new solvers is just a question of implementing a specialization of the three methods mentioned above for the specific solver (see the code for examples).
GuillotineModels.CommandLine.SolversArgs.empty_configured_model
— Methodempty_configured_model(::Val{T}, p_args) :: JuMP-like Model
Creates an empty (no variables or constraints) and configured (p_args
is used to set the parameters of an attached solver) model of the solver ::Val{T}
(for example, passing ::Val{:CPLEX}
will call the specialized method for CPLEX solver).
The options available for p_args
are available in GuillotineModels. Utilities.Args.accepted_arg_list(::Val{SOLVER_PACKAGE_SYMBOL})
.