GridPACK is an open-source high-performance computing (HPC) framework for simulating large-scale electrical transmission systems. Developed at Pacific Northwest National Laboratory (PNNL) under Battelle Memorial Institute, it is written in C++ and uses MPI, Global Arrays, and PETSc to distribute computation across many processors — from laptops to DOE leadership-class supercomputers. Python wrappers are available for scripting and integration workflows.Documentation Index
Fetch the complete documentation index at: https://mintlify.com/GridOPTICS/GridPACK/llms.txt
Use this file to discover all available pages before exploring further.
Key capabilities
GridPACK ships with four production-ready simulation applications and a framework for building new ones:- AC power flow — Newton-Raphson solver with Q-limit handling, switched shunts, load tap changer (LTC) transformer control, area interchange control, and ZIP load models. Auto-detects PSS/E file version from the RAW file header.
- Dynamics simulation — Full-Y matrix transient stability simulation with a DAE-based solver. Supports generator models (GENROU, GENSAL, classical), exciter models (ESST1A, ESST4B, EXDC1, SEXS), governor models (GGOV1, HYGOV, WSIEG1), renewable energy models (REGCA1, REGCB1, REECA1, REPCA1), and load models.
- Contingency analysis — N-1 contingency screening with automatic slack bus transfer, capacity checking, and parallel execution across MPI processes.
- State estimation — Weighted least squares with bad data detection using a chi-square test, sparse matrix support, and HPC-scale capability.
PSS/E format support
GridPACK reads PSS/E RAW network files in versions v23, v33, v34, v35, and v36. Export modules for v23, v33, and v34 are also available. The power flow parser auto-detects the version from the RAW file header.Framework building blocks
Beyond the pre-built applications, GridPACK provides reusable components for developing new parallel simulation tools:- Network partitioning and distribution across MPI ranks using ParMETIS
- Bus and branch component model with a flexible data dictionary
- Mapper infrastructure to assemble distributed algebraic systems from component contributions
- Linear, nonlinear, and DAE solvers backed by PETSc
- Input (XML) and output (screen, file, JSON, CSV) modules
- Python bindings via pybind11 for scripting, automation, and integration
Language and interfaces
The core framework and all applications are written in C++. A Python interface (built with pybind11) wraps the power flow, dynamic simulation, state estimation, and HADREC modules. Python 3 is required for the wrappers; the pure C++ build has no Python dependency.Supported platforms
GridPACK has been built and tested on the following platforms:| Platform | Notes |
|---|---|
| Linux (Ubuntu, RHEL, CentOS, Debian) | Fully supported; recommended for production |
| macOS (via terminal) | Supported; use Homebrew for MPI and CMake |
| HPC clusters (Cray, IBM, x86) | Supported; platform notes in docs/notes/ |
| Docker (AMD64 and ARM64) | Recommended for getting started quickly |
Docker is the recommended way to start. The
pnnl/gridpack:latest image includes all dependencies pre-built and works on both Intel/AMD (AMD64) and Apple Silicon/AWS Graviton (ARM64) hardware.License and attribution
GridPACK is distributed under the BSD 2-clause license. Copyright © 2013, Battelle Memorial Institute. Development has been funded by DOE Office of Electricity (Advanced Grid Modeling program), the Grid Modernization Laboratory Consortium, DOE EERE Solar and Wind Energy Technologies Offices, and PNNL LDRD. To cite GridPACK in publications:Next steps
Docker quickstart
Pull the pre-built image and run your first simulation in minutes — no dependency installation required.
Build from source
Compile GridPACK from source on Linux or macOS with full control over dependencies and build options.
Framework overview
Learn how networks, components, mappers, and solvers fit together in the GridPACK architecture.
Application modules
Dive into the built-in power flow, dynamics, contingency analysis, and state estimation applications.