Power Systems Test Datasets & Tools

A synthesized reference of open datasets and tools, compiled from research into candidate sources for gridoxide/cimoxide testing and validation.

Transmission-level test cases (steady-state / power flow)

SourceWhat it offersNotes
Sienna-Platform/PowerSystemsTestData5-Bus PJM, 5-Bus-hydro, 118-Bus PCM (high renewables), TAMU ACTIVSg synthetic grids (10k-bus WECC, 70k-bus EI, 2000-bus ERCOT), Matpower casesPlain case files, not tied to Julia structs — good for parser testing
Sienna-Platform/PowerSystemCaseBuilder.jl200+ cases pre-built into PowerSystems.jl data modelJulia-native; skips parsing step if you're in that ecosystem
SanPen/VeraGrid — Grids_and_profiles/gridsIEEE 39/118/30-bus, Pegase 2869/1354-bus, RTE 1951-bus, PGLib cases, HVDC test cases (2/10/12-bus AC/DC)Reads Matpower natively; solves all Matpower 8 cases incl. continental-USA scale in ~1s
SanPen/VeraGrid — src/tests/StateEstimationReference SE test cases with expected outputsDirectly relevant to DSSE validation
power-grid-lib/pglib-opfCurated AC-OPF benchmark cases (incl. TAMU 200/500/2000-bus, ARPA-E GO Competition cases)Maintained by IEEE PES Task Force; reference results included; supersedes NESTA
power-grid-lib/pglib-opf-hvdcOPF benchmark cases with HVDC lines (MatACDC format)Reference impl. in PowerModelsACDC.jl

Distribution-level / DSSE-relevant test cases

SourceWhat it offersNotes
e2nIEE/simbenchGerman research-project MV/LV benchmark networks with full time seriesMost relevant to your MV DSSE work; some grids underdetermined for SE out-of-box (need synthesized pseudo-measurements)
e2nIEE/pandapowerMatpower/PYPOWER-compatible cases, plus own SE moduleUseful for cross-validating your SE implementation
IEEE/EPRI distribution feeders (4/13/34/37/123-bus, 8500-node)Classic unbalanced 3-phase distribution benchmarksDistributed via OpenDSS/EPRI, mirrored in various repos (e.g. dss-extensions org) rather than one clean source

CGMES / CIM data

SourceWhat it offersNotes
powsybl-core — cgmes-conformity moduleENTSO-E MicroGrid, SmallGrid, MiniGrid CGMES conformity test configs (v2.0)Industry-standard CGMES validation suite; extract cgmes-conformity/src/main/resources, no need to build the Java project
powsybl/powsybl-cgmes-conformity-assessmentsTracks PowSyBl's own conformity assessment resultsReference for how a mature parser scores

Realistic large-scale regional network models

SourceWhat it offersNotes
PyPSA/pypsa-eurFull ENTSO-E-area European transmission network, generator fleet, sector linksBuilt via Snakemake from open data (Eurostat, JRC-IDEES); realistic scale, not a "test case"
PyPSA/pypsa-usaUS regional network modelSame pattern as pypsa-eur
PyPSA/pypsa-zaSouth Africa network modelRequires separate .7z data bundle download
PyPSA/technology-dataCost/efficiency assumptions by technology and yearInput data for OPF-type work, not topology
PyPSA/PyPSA — examples/Small toy AC/DC networksGood for quick unit tests

Dynamic simulation (RMS / DAE)

SourceWhat it offersNotes
dynawo/dynawoValidated example cases for DynaFlow, DynaWaltz, DynaSwingRTE-maintained, MPL-2.0; roadmap includes Nordic32 and IEEE dynamic cases
dynawo/dynawo-algorithmsContingency analysis, voltage margin, load-increase-to-collapseTool, not raw data
dynawo/dynawo-large-scale-validationValidation framework vs. legacy simulators (Astre, Hades), extensive contingency runs + Jupyter comparison pipelineMethodology reference for validating your own RMS/DAE solver
dynawo/dyn-grid-compliance-verificationGrid-code compliance verification for generators/IBR (fault-ride-through etc.)Relevant to IBR/GFM converter work
dynawo/IEC-WECC-GenericModels-ComparisonWT Type 4 generic model comparison casesWind turbine dynamics specifically

Tools

Open-source power systems frameworks (readers/solvers)

ToolLanguageRelevance
PowSyBl (powsybl-core)JavaStrongest open-source CGMES compatibility (per FullGrid evaluation); IIDM network format; CGMES conformity data bundled in
pandapowerPythonMatpower/PYPOWER-compatible, includes SE module
PyPSAPythonSector-coupled energy system modeling; large realistic regional models via pypsa-eur/usa/za
VeraGridPythonReads Matpower, PSS/E RAW; has SE test infrastructure; fast large-case AC PF
DynawoModelica/C++RMS dynamic simulation (DAE, IDA/SUNDIALS-based); reads IIDM
PowerSystems.jl / PowerSimulations.jl (Sienna)JuliaNREL-origin; paired with PowerSystemCaseBuilder.jl

MADSuite — nonlinear optimization solvers and modeling (GPU-oriented)

madsuite-org (madsuite.org) is the umbrella org for the MadNLP/ExaModels stack — a Julia-centric but increasingly language-agnostic set of NLP/LP solvers, algebraic modeling with AD, and KKT/linear-algebra backends, with GPU support as the organizing theme. Directly relevant to gridoxide's OPF work: it is the closest open-source analogue to the interior-point + sparse-KKT machinery in the OPF solver, and a source of reference results to check against.

Solvers

RepoLanguageRelevance
MadNLP.jlJuliaFilter line-search interior-point NLP solver (an IPOPT analogue) with GPU support; modular KKT and linear-solver layers. Reference point for gridoxide's own IPM
MadIPM.jlJuliaInterior-point solver for linear programs, GPU-capable
MadNCL.jlJuliaMadNLP extension implementing Algorithm NCL; targets infeasible or degenerate NLPs — the failure mode AC-OPF hits on stressed cases
CCOpt.jlJuliaSolver for Mathematical Programs with Complementarity Constraints (MPCCs) — the natural formulation for complementarity-style limit switching (e.g. PV→PQ, tap limits)
HybridKKT.jlJuliaGolub & Greif condensed-KKT solver inside MadNLP; the "how do I factorize an indefinite KKT system on a GPU" answer
BlockDSS.jlJuliaBlock-structured (esp. block-tridiagonal) linear solvers, CPU / CUDA / ROCm, Float32 and Float64, sequential and batched variants
MadDiff.jlJuliaForward/reverse implicit differentiation through MadNLP/MadIPM/HybridKKT KKT systems — i.e. sensitivities of an optimum w.r.t. parameters. Conceptually adjacent to gridoxide's sensitivity work, but at the OPF level. Explicitly WIP (requires dependency forks)
MadCore.jlJuliaShared core for the Mad* solvers; no README yet
MadNLPGraph.jlJuliaGraph/structured-decomposition extension for MadNLP; dormant since 2021, MPL-2.0

Modeling and AD

RepoLanguageRelevance
ExaModels.jlJuliaSIMD-abstracted algebraic modeling + automatic differentiation targeting GPUs; the modeling front-end MadNLP is usually paired with
ExaModelsPower.jlJuliaAC-OPF (and multi-period / storage) models built on ExaModels — the most directly comparable artifact to gridoxide's OPF formulations
ExaPowerIO.jlJuliaMinimal Matpower-format reader, deliberately narrower than PowerModels.jl. Useful as a second opinion on Matpower parsing edge cases
ExaModelsAMPL.jlJuliaWrites ExaModels models out to AMPL .nl — a bridge for feeding models to any .nl-reading solver
ExaModelsExamples.jlJuliaWorked ExaModels examples
DynamicNLPModels.jlJuliaNLPModels for dynamic optimization / optimal control (MPC-shaped problems)
MPCCModels.jlJuliaNLPModels.jl extension for MPCCs; the modeling side of CCOpt.jl

Cross-language interop (Rust-relevant)

The part of the org most useful to a non-Julia project: a plain-C ABI for handing nonlinear programs across language boundaries, with both Julia and Python consumers. It offers a path to expose a gridoxide-built OPF model to MadNLP (or any NLPModels-compatible solver) without either side embedding the other's runtime.

RepoLanguageRelevance
cnlp-abiCThe cnlp.h specification: one shared library carries N models, each publishing objective, gradient, constraints, sparse Jacobian and Lagrangian Hessian behind plain C symbols. Evaluation semantics are NLPModels.jl's, transliterated to C. A Rust cdylib can implement this directly
CNLPModels.jlJuliaLoads a cnlp shared library as an NLPModels.AbstractNLPModel, so any Julia solver can solve it
cnlpmodels-pyPythonSame, for Python — ctypes + numpy, no extra runtime; works with cyipopt and scipy.optimize
examodels-pyPythonPython interface to ExaModels.jl (SIMD-parallel modeling + AD, CPU and GPU)
libMadJulia/CMakeMetapackage compiling MadNLP (and CCOpt) into a shared library with a C interface, shipped as standalone release tarballs; loadable as a CasADi ≥3.8 plugin. WIP, but the route to calling MadNLP from Rust

Benchmark sets

RepoLanguageRelevance
COPSBenchmark.jlJuliaCOPS benchmark suite implemented in JuMP — standard NLP solver stress tests
LuksanVlcekBenchmark.jlJuliaLukšan–Vlček nonlinear test problems
MadNLPBenchmark.jlJuliaMadNLP's own benchmark harness
MPCCbenchmark.jlJuliaMPCC benchmark problems
MIPLIB.jlJuliaMIPLIB instance access
ExaModelsPower-benchmarking-archiveMATLABFrozen (2025-10-07) OPF benchmarking data + scripts from ExaModelsPower.jl — published numbers to compare gridoxide OPF timings against

Non-code repos in the org (site, logos, and talk/workshop material — madsuite-org.github.io, madsuite-logos, ifac2026, ifac2026-workshop, neurips2025-mathprog-on-gpu, slides-informs-2025, powertech2025) are omitted here, though the workshop and slide repos are worth a look for the current state of GPU-accelerated OPF.

General power-systems data/format tooling encountered

  • Matpower / PYPOWER case format — widely supported de facto standard; pandapower, VeraGrid, pglib-opf, PowSyBl-adjacent tools all read it.
  • PSS/E RAW format — readable by VeraGrid; common utility/vendor export format worth supporting alongside CGMES.
  • UCTE-DEF — potential fallback path if CGMES export isn't available from a data source.

Books and normative references

Unlike the rest of this file, this section is not verified against a local checkout — it is compiled from general knowledge of the literature, so editions and years may have moved. Titles and authors are the load-bearing part; treat the year as a hint. Entries are grouped by the chapter of this book they support, and each says why it is the one to reach for rather than simply existing.

Power flow and general analysis

WorkWhy
Kundur, Power System Stability and Control (McGraw-Hill, 1994; 2nd ed. with Malik, 2022)The single most-cited text in the field. Bought for the dynamics half, kept for its modelling chapters — the machine, exciter, governor and load models every other topic assumes
Milano, Power System Modelling and Scripting (Springer, 2010)The closest published thing to what src/ actually is: how to implement power flow, continuation, and the DAE formulation, with the Jacobian structure written out rather than waved at. The PSAT author. If one book on this list is worth reading cover to cover for gridoxide's purposes, it is this one
Grainger & Stevenson, Power System Analysis (McGraw-Hill, 1994)The standard undergraduate treatment; per-unit, symmetrical components and the classical fault analysis, clearly
Expósito, Conejo & Cañizares (eds.), Electric Energy Systems: Analysis and Operation (CRC, 2nd ed. 2018)The best modern single-volume survey — a chapter each by people who work on that chapter's subject
Stott, Jardim & Alsaç, DC Power Flow Revisited, IEEE Trans. Power Systems 24(3), 2009Not a book, but the reference for linear::btheta and the reason the summary table distinguishes two DC approximation variants
Zimmerman, Murillo-Sánchez & Thomas, MATPOWER, IEEE Trans. Power Systems 26(1), 2011, plus the MATPOWER User's ManualThe manual is an unusually honest specification of the algorithms, not just a usage guide — worth reading as a spec when a convention is ambiguous

Optimal power flow and optimization

WorkWhy
Wood, Wollenberg & Sheblé, Power Generation, Operation, and Control (Wiley, 3rd ed. 2013)The classic for economic dispatch, OPF, unit commitment and state estimation in one volume. The reference for the OPF extensions not implemented here
Nocedal & Wright, Numerical Optimization (Springer, 2nd ed. 2006)The method book behind opf::nlp — interior point, line search, filters, and the trust-region alternatives. Where to go when the barrier update or the regularization misbehaves rather than the model
Boyd & Vandenberghe, Convex Optimization (Cambridge, 2004; free PDF)For the DC-OPF side: why the QP is convex, what the KKT certificate means, and duality as the source of locational marginal prices
Kirschen & Strbac, Fundamentals of Power System Economics (Wiley, 2nd ed. 2018)What the prices the OPF reports actually are, and why a congested network produces different ones per bus
Conejo & Baringo, Power System Operations (Springer, 2018)Security-constrained dispatch and the operational framing RAO sits inside

State estimation

WorkWhy
Abur & Expósito, Power System State Estimation: Theory and Implementation (CRC, 2004)The reference, without competition. WLS, observability, bad-data detection by normalized residual, and the constrained formulation for zero injections — which is crates/gridoxide-core/src/se/ chapter by chapter
Monticelli, State Estimation in Electric Power Systems: A Generalized Approach (Kluwer, 1999)The generalized/Hachtel formulation, and the deeper treatment of network observability
Kersting, Distribution System Modeling and Analysis (CRC, 4th ed. 2017)The prerequisite for the unbalanced distribution SE the summary table flags as the binding gap — untransposed lines, phasing, and why the symmetric reduction stops being valid

Short circuit and protection

WorkWhy
IEC 60909-0 (Short-circuit currents in three-phase a.c. systems)The normative document crates/gridoxide-core/src/shortcircuit/ implements. There is no substitute: the \(c\)-factors, the equivalent voltage source and the impedance corrections are definitions, not derivations
Anderson, Analysis of Faulted Power Systems (IEEE Press, 1995)The classical treatment of symmetrical components and fault boundary conditions — the derivation IEC 60909 assumes you already know
Das, Power System Analysis: Short-Circuit Load Flow and Harmonics (CRC, 3rd ed. 2018)Covers two of the rows in the summary table at once, and is unusually practical about what the standards leave to judgement
Blackburn & Domin, Protective Relaying: Principles and Applications (CRC, 4th ed. 2014)The starting point for the protection-coordination row, which currently has no foundation in src/ at all

Dynamics: RMS, EMT and small-signal

WorkWhy
Sauer, Pai & Chow, Power System Dynamics and Stability (Wiley-IEEE, 2nd ed. 2017)The cleanest development of the DAE model and the time-scale separation that makes RMS simulation legitimate. The right first book for the RMS row
Machowski, Lubosny, Bialek & Bumby, Power System Dynamics: Stability and Control (Wiley, 3rd ed. 2020)Broader and more modern than Kundur on control and renewables, and better on why a phenomenon happens before the equations arrive
Milano, Dassios, Liu & Tzounas, Eigenvalue Problems in Power Systems (CRC, 2020)The small-signal/modal row: linearizing the DAE, the generalized eigenproblem, participation factors, and the numerics of doing it at scale
Watson & Arrillaga, Power Systems Electromagnetic Transients Simulation (IET, 2003)The EMT row: Dommel's trapezoidal companion-circuit method, travelling-wave lines, and switching
Dommel, EMTP Theory Book (BPA, 1986)The foundational EMT document. Every EMT tool is a descendant of it, and it is written as a specification

Voltage stability

WorkWhy
Van Cutsem & Vournas, Voltage Stability of Electric Power Systems (Kluwer, 1998)The definitive treatment, and careful about the distinction between the static loadability limit and the dynamic collapse mechanism
Ajjarapu, Computational Techniques for Voltage Stability Assessment and Control (Springer, 2006)Continuation power flow specifically — predictor, corrector, parametrization and the behaviour at the nose. The method book for the cheapest of the missing analysis types
Taylor, Power System Voltage Stability (McGraw-Hill, 1994)The operational view: what actually collapses, and what operators do about it

Harmonics and power quality

WorkWhy
Arrillaga & Watson, Power System Harmonics (Wiley, 2nd ed. 2003)The harmonics row: per-frequency network models, source characterization and penetration studies

Reliability and adequacy

WorkWhy
Billinton & Allan, Reliability Evaluation of Power Systems (Plenum, 2nd ed. 1996)Where LOLE, EENS and the rest are defined, and the Monte Carlo and analytical machinery for computing them

Sparse numerics

WorkWhy
Davis, Direct Methods for Sparse Linear Systems (SIAM, 2006)By KLU's own author, and the book crates/gridoxide-sparse/src/klu_native/ is a translation of the ideas from. AMD ordering, BTF, the symbolic/numeric split, and why factorization reuse is the whole game for repeated solves
Davis & Palamadai Natarajan, Algorithm 907: KLU, a Direct Sparse Solver for Circuit Simulation Problems, ACM TOMS 37(3), 2010The paper for the specific solver; short, and the closest thing to a specification
Duff, Erisman & Reid, Direct Methods for Sparse Matrices (Oxford, 2nd ed. 2017)The broader reference — pivoting strategies, fill-reducing orderings and the block methods
Tinney & Walker, Direct Solutions of Sparse Network Equations by Optimally Ordered Triangular Factorization, Proc. IEEE 55(11), 1967The paper that made large-scale power flow possible, and still the clearest statement of why ordering matters more than arithmetic

Remedial actions, security and capacity calculation

There is no textbook for this one, which is worth knowing before looking for it. The subject is defined by regulation and by implementation rather than by a literature: the ENTSO-E CACM Regulation and its capacity-calculation methodologies, the CORE and Nordic CCR methodology documents, and OpenRAO's own documentation — which is the reference gridoxide's remedial action optimization is gated against. Kirschen & Strbac and Conejo & Baringo above give the economic and operational framing; the mechanics come from the methodologies.


Practical recommendations

  • DSSE/MV work → simbench (primary), VeraGrid's StateEstimation folder (reference cases), IEEE/EPRI distribution feeders (unbalanced 3-phase)
  • AC-OPF/SCOPF work → pglib-opf (primary benchmark), pglib-opf-hvdc if MTDC scope continues
  • CGMES parser validation (cimoxide) → ENTSO-E conformity suite via powsybl-core, itesla/CGMES for CIM14 legacy coverage
  • Large-scale solver benchmarking → pypsa-eur, VeraGrid's Matpower cases (incl. continental-USA scale)
  • RMS/DAE dynamics validation → Dynawo example cases + dynawo-large-scale-validation methodology
  • Interior-point / OPF solver validation → MadNLP.jl and ExaModelsPower.jl as the reference implementation to diff against; COPSBenchmark.jl for generic NLP robustness; ExaModelsPower-benchmarking-archive for published timings
  • Handing gridoxide models to external solvers → implement the cnlp-abi C ABI from a Rust cdylib, then consume via CNLPModels.jl (Julia) or cnlpmodels-py (Python/cyipopt)
  • Reading, if only one book per topic → Milano (implementation and DAEs), Abur & Expósito (state estimation), Nocedal & Wright (the OPF's interior point), Davis (the sparse solve), Sauer/Pai/Chow (RMS dynamics), Ajjarapu (continuation power flow), IEC 60909-0 (short circuit, normative). See Books and normative references for why each