Write a JuMP model file from a multimod model
Usage
write_jump(
model,
file = NULL,
model_dir = NULL,
solver_dir = "jump",
output_name = "model.jl",
model_name = "model",
optimizer = "HiGHS.Optimizer",
optimizer_attributes = NULL,
use_folded = TRUE,
cleanup = TRUE,
export_data = FALSE,
export_vars = FALSE,
export_lp = FALSE,
export_mps = FALSE,
data_mode = c("external", "embedded"),
...
)Arguments
- model
A
multimodmodel object- file
Output file path (optional, overrides model_dir/solver_dir)
- model_dir
Directory where model was saved with save_model() (contains model.rds)
- solver_dir
Solver subdirectory name (default: "jump", e.g., "jump-highs")
- output_name
Output filename (default: "model.jl")
- model_name
Name for the JuMP model variable (default: "model")
- optimizer
Julia optimizer to use (e.g., "HiGHS.Optimizer", "GLPK.Optimizer")
- optimizer_attributes
Named list of optimizer attributes to set (e.g., list(solver = "ipm", presolve = "on", parallel = "on")). For HiGHS: solver can be "simplex", "ipm" (interior point/barrier), or "choose" (default). "ipm" is usually faster than simplex on large models. If NULL, uses solver defaults with automatic barrier method selection for large models (>1M constraints).
- use_folded
logical; whether to use folded equations if available (default: TRUE)
- cleanup
logical; whether to remove existing solver_dir before generating new files (default: TRUE)
- export_data
logical; whether to export parameter data to CSV files in data_export/ directory (default: FALSE)
- export_vars
logical; whether to export variable values to CSV files in vars_export/ directory after solve (default: FALSE). Note: Solution is always saved to solution/ directory regardless of this setting (required for load_results).
- export_lp
logical or character; if TRUE, exports model to LP format; if character, specifies filename (default: FALSE)
- export_mps
logical or character; if TRUE, exports model to MPS format; if character, specifies filename (default: FALSE)
- data_mode
character;
"external"(default) generates a data.jl that reads parameter data from files at run time,"embedded"writes the data into the Julia source- ...
Additional arguments (not used)
Examples
m <- example_models$energyRt$multimod
# Explicit file path
write_jump(m, file = tempfile(fileext = ".jl"))
# Into a saved model workspace: <model_dir>/solvers/<solver_dir>/model.jl
ws <- file.path(tempdir(), "energyRt_ws")
save_model(m, ws, verbose = FALSE)
write_jump(m, model_dir = ws)
write_jump(m, model_dir = ws, solver_dir = "jump-highs")
# Barrier method for large models
write_jump(m, model_dir = ws,
optimizer_attributes = list(solver = "ipm", parallel = "on"))
#> Removing existing solver directory: C:\Users\admin\AppData\Local\Temp\RtmpgRRJWR/energyRt_ws/solvers/jump
