grid-bench
Power-flow speed of open-source power system tools, where every timing is graded by an oracle that no tool under test takes part in. MATPOWER cases are also converted to CGMES, and tools are graded on those against the original case. State estimation (weighted least squares) and AC optimal power flow are benchmarked the same way: switch below.
Scoreboard
AC power flow on the default cases: ✓ / ✗ / FAILED per grid and input. CGMES fixtures have no verdict (their reference is someone else's solution): cases solved. Hard transmission cases: cases that are not expected to converge from a flat start, so FAILED is the normal outcome and a ✓ stands out; they are in the Transmission tables, below the others.
Accuracy
Failures
Every run that raised, with the tool's own exception.
How this is measured
- Same problem for every tool. Flat start on every solve, one slack, no reactive limits, no tap/phase-shifter/shunt control, generator voltage regulation as the case defines it, convergence tolerance 1e-8 p.u. Each adapter's docstring justifies its settings.
- Solve is timed warm: one persistent model, one untimed warm-up solve, then repeated solves (median shown). Import is the median of 3 cold loads after one warm-up load.
- Tier 1 oracle (MATPOWER): the residual
V·conj(Ybus·V) − Swith Ybus built from the.mfile by the benchmark itself. Tier 2 (CGMES): deviation from the case's published SV solution. Tier 3: tools against each other, the weakest evidence. - State estimation: weighted least squares on each case with a measurement set generated from its own power flow.
exact: |V| and P/Q injections at every bus without noise, so the optimum is the true state.noisy: |V| at generator buses, P/Q injections at every bus, P/Q flows at every branch's from end, with Gaussian noise. Same measurements and sigmas for every tool, flat start, no bad-data handling. The oracle accepts an estimate when one Gauss-Newton step from it moves it by at most 1e-6 and its J is no larger than J at the true state. - Optimal power flow: MATPOWER's AC-OPF on PGLib-OPF v23.07 cases (polynomial cost; power-flow equations; voltage, generator, branch MVA and angle-difference limits), flat start, tolerance 1e-6. The oracle checks the solution's feasibility against the
.mand recomputes its cost, accepted at most 0.01% above PGLib's published reference (a local optimum given to five digits). - Memory is the peak RSS of a fresh process loading and solving the case, minus the peak after importing the tool (values below 1 MB are drawn at 1 MB on the log axis). Only the benchmark process counts: cgmes2pgm's Fuseki server is not included.