Skip to content

Commit 6d3745d

Browse files
tvalenciazTomas
andauthored
add solver log feature for generic cylinders EF. (#585)
* making solver-log-dir option work with EF on generic cylinders. fixing small bug in GurobiDirect that makes the logs not always be saved properly * no changes needed to spopt, only in generic_cylinders * fixing ruff linting error --------- Co-authored-by: Tomas <[email protected]>
1 parent 5c2f1a5 commit 6d3745d

File tree

1 file changed

+11
-2
lines changed

1 file changed

+11
-2
lines changed

mpisppy/generic_cylinders.py

Lines changed: 11 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -568,11 +568,20 @@ def _do_EF(module, cfg, scenario_creator, scenario_creator_kwargs, scenario_deno
568568
# We probably could just assign the dictionary in one line...
569569
for option_key,option_value in solver_options.items():
570570
solver.options[option_key] = option_value
571+
572+
solver_log_dir = cfg.get("solver_log_dir","")
573+
solve_kw_args = dict()
574+
if solver_log_dir and len(solver_log_dir)>0:
575+
os.makedirs(solver_log_dir, exist_ok=True)
576+
solve_kw_args['keepfiles'] = True
577+
log_fn = "EFsolverlog.log"
578+
solve_kw_args['logfile'] = os.path.join(solver_log_dir, log_fn)
579+
571580
if 'persistent' in solver_name:
572581
solver.set_instance(ef, symbolic_solver_labels=True)
573-
results = solver.solve(tee=cfg.tee_EF)
582+
results = solver.solve(tee=cfg.tee_EF, **solve_kw_args)
574583
else:
575-
results = solver.solve(ef, tee=cfg.tee_EF, symbolic_solver_labels=True,)
584+
results = solver.solve(ef, tee=cfg.tee_EF, symbolic_solver_labels=True, **solve_kw_args)
576585
if not pyo.check_optimal_termination(results):
577586
print("Warning: non-optimal solver termination")
578587

0 commit comments

Comments
 (0)