deltaFlow is a command-line power flow analysis tool for electrical power systems. It solves the steady-state power flow equations using the Gauss-Seidel and Newton-Raphson iterative methods, with automatic reactive power limit (Q-limit) enforcement for voltage-controlled (PV) buses.
deltaFlow reads standard industry input formats — IEEE Common Data Format (.cdf, .txt)
and PSS/E Raw Format (.raw) — and produces bus voltage/power summaries and line flow reports.
- Solvers: Gauss-Seidel (with relaxation) and Newton-Raphson
- Q-limit enforcement: Automatic PV-to-PQ bus type switching when reactive limits are violated
- Input formats: IEEE Common Data Format and PSS/E Raw Format (v32/v33)
- Validated: Tested against IEEE 14, 30, 57, 118, and 300-bus standard test cases
- Cross-platform: Builds on Linux (GCC) and Windows (MSVC)
| Library | Version | Purpose |
|---|---|---|
| Eigen | 3.4.0 | Linear algebra |
| fmt | 10.2.1 | Formatting and logging |
| Catch2 | 3.5.4 | Unit testing |
Dependencies are managed automatically via Conan.
Requirements: C++17 compiler, CMake (>= 3.25), Conan 2, Perl
./bin/build.pl -b # Build only
./bin/build.pl -t # Build and run tests
./bin/build.pl -d # Generate documentation (requires Doxygen)deltaFlow [OPTIONS] <input-file> <solver>
| Argument | Description |
|---|---|
<input-file> |
Path to input file (.cdf, .txt, or .raw) |
<solver> |
Solver method: GAUSS or NEWTON |
| Option | Description | Default |
|---|---|---|
-j, --job <name> |
Job name (used for output labeling) | Input filename stem |
-t, --tolerance <value> |
Convergence tolerance | 1E-8 |
-m, --max-iterations <int> |
Maximum solver iterations | 1024 |
-r, --relaxation <value> |
Relaxation coefficient (Gauss-Seidel only) | 1.0 |
-h, --help |
Display help message | |
-v, --version |
Show version and exit |
API documentation is generated with Doxygen:
./bin/build.pl -ddeltaFlow is licensed under the GNU General Public License v3.0.
