Skip to contents

Write a Julia/JuMP model file from a multimod object

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 multimod model 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", "jump-cplex")

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", "CPLEX.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). Use "ipm" for large models (>1M rows) as it scales better than simplex. 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)

...

Additional arguments (not used)

Value

Character vector of Julia code, or writes file if path is determined

Examples

if (FALSE) { # \dontrun{
# Write to model directory with default solver subdirectory
write_jump(model, model_dir = "my_model")
# -> my_model/solvers/jump/model.jl

# Specify custom solver directory
write_jump(model, model_dir = "my_model", solver_dir = "jump-highs")
# -> my_model/solvers/jump-highs/model.jl

# Override with explicit file path
write_jump(model, file = "custom/path/model.jl")

# Use barrier method for large models
write_jump(model, model_dir = "my_model", 
           optimizer_attributes = list(solver = "ipm", parallel = "on"))
} # }