Coverage for src/distopf/pyomo_models/solvers.py: 92%
12 statements
« prev ^ index » next coverage.py v7.10.6, created at 2025-11-13 17:34 -0800
« prev ^ index » next coverage.py v7.10.6, created at 2025-11-13 17:34 -0800
1from distopf.pyomo_models.protocol import LindistModelProtocol
2from distopf.pyomo_models.results import OpfResult
3import pyomo.environ as pyo
4from time import perf_counter
7def solve(model: LindistModelProtocol) -> OpfResult:
8 # t0 = perf_counter()
9 # Solve the model
10 results = pyo.SolverFactory("ipopt").solve(model)
11 # t1 = perf_counter()
12 # Extract and display results
13 if results.solver.status == pyo.SolverStatus.ok:
14 print("Optimization successful!")
15 print(f"Objective value: {pyo.value(model.objective)}")
16 res = OpfResult(model)
18 else:
19 raise ValueError(results.solver.status)
20 return res