Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
53 changes: 53 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
name: CI

on:
pull_request:
branches:
- main

jobs:
test:
runs-on: ${{ matrix.os }}
strategy:
matrix:
os: [ubuntu-latest, windows-latest, self-hosted]
steps:
- name: Checkout repository
uses: actions/checkout@v4

- name: Set up Julia
uses: julia-actions/setup-julia@v2
with:
version: '1.11'

- name: Cache Julia artifacts
uses: actions/cache@v3
with:
path: ~/.julia/artifacts
key: artifacts-${{ runner.os }}-${{ hashFiles('**/Project.toml') }}-${{ hashFiles('**/Manifest.toml') }}
restore-keys: artifacts-${{ runner.os }}-

- name: Cache Julia packages
uses: actions/cache@v3
with:
path: ~/.julia/compiled
key: compiled-${{ runner.os }}-${{ hashFiles('**/Project.toml') }}-${{ hashFiles('**/Manifest.toml') }}
restore-keys: compiled-${{ runner.os }}-

- name: Install package dependencies
run: |
julia --project=. -e 'using Pkg; Pkg.instantiate(); Pkg.precompile()'

- name: Check for CUDA availability
id: check-cuda
shell: bash
run: |
if command -v nvidia-smi &> /dev/null; then
echo "cuda=true" >> $GITHUB_OUTPUT
else
echo "cuda=false" >> $GITHUB_OUTPUT
fi

- name: Run tests
run: |
julia --project=. -e 'using Pkg; Pkg.test(; test_args=["cuda=${{ steps.check-cuda.outputs.cuda }}"])'
5 changes: 4 additions & 1 deletion Project.toml
Original file line number Diff line number Diff line change
Expand Up @@ -24,6 +24,9 @@ KernelAbstractions = "63c18a36-062a-441e-b654-da1e3ab1ce7c"
MadNLP = "2621e9c9-9eb4-46b1-8089-e8c72242dfb6"
MadNLPGPU = "d72a61cc-809d-412f-99be-fd81f4b8a598"
Test = "8dfed614-e22c-5e08-85e1-65c5234f0b40"
Ipopt = "b6b21f68-93f8-5de0-b562-5493be1d77c9"
JuMP = "4076af6c-e467-56ae-b986-b466b2749572"
NLPModelsJuMP = "792afdf1-32c1-5681-94e0-d7bf7a5df49e"

[targets]
test = ["Test", "MadNLP", "MadNLPGPU", "KernelAbstractions", "CUDA"]
test = ["Test", "MadNLP", "MadNLPGPU", "KernelAbstractions", "CUDA", "Ipopt", "JuMP", "NLPModelsJuMP"]
3 changes: 3 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# ExaModelsPower.jl
ExaModelsPower.jl is an optimal power flow models using ExaModels.jl

![CI](https://github.com/exanauts/ExaModelsPower.jl/actions/workflows/ci.yml/badge.svg)
[![License: MIT](https://img.shields.io/badge/License-MIT-yellow.svg)](LICENSE)

## Usage
### Static optimal power flow
```julia
Expand Down
31 changes: 31 additions & 0 deletions data/LICENSE.txt
Original file line number Diff line number Diff line change
@@ -0,0 +1,31 @@
Data License:

Creative Commons Attribution 4.0 International license
http://creativecommons.org/licenses/by/4.0/

See data files for specific copyright holders and attribution details.


Software License:

MIT License
Copyright (c) 2017 A Library of IEEE PES Power Grid Benchmarks

Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:

The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.

THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

19 changes: 19 additions & 0 deletions data/README_data.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
# ExaModelsPower.jl Test Data
The test cases represented here are original or modified forms of test cases represented
in power-grid-lib

The modified cases have had storage devices added to certain bus(es) in the original
pglib test case. No other modifications were made. The location of the storage
devices was chosen arbitrarily.

The casex_5split.Pd and .Qd files contain temporally varying active and reactive
power curves, with the baseline set at the demands presented in the static cases,
and arbitrarily altered over 5 different time periods. These cases are meant only
as tests, and their curve profile does not intend to represent any specific
real-world scenario.






3 changes: 3 additions & 0 deletions data/case3_5split.Pd
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
110.00000000 109.700000000 109.200000000 110.30000000 109.90000000
110.0000000 110.30892087 109.70779399 110.69866241 110.68356854
95.0000000 94.40098664 94.90086201 95.39985206 94.79818270
3 changes: 3 additions & 0 deletions data/case3_5split.Qd
Original file line number Diff line number Diff line change
@@ -0,0 +1,3 @@
40.00000000 40.700000000 39.200000000 39.30000000 39.90000000
40.0000000 39.30892087 39.70779399 40.69866241 39.68356854
50.0000000 50.40098664 50.90086201 49.39985206 49.79818270
5 changes: 5 additions & 0 deletions data/case5_5split.Pd
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
0.00000000 0.00000000 0.00000000 0.0000000 0.00000000
300.00000000 299.700000000 299.200000000 300.30000000 299.90000000
300.00000000 299.100000000 299.400000000 299.90000000 301.10000000
400.0000000 400.30892087 399.70779399 401.69866241 400.68356854
0.00000000 0.00000000 0.00000000 0.0000000 0.00000000
5 changes: 5 additions & 0 deletions data/case5_5split.Qd
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
0.00000000 0.00000000 0.00000000 0.0000000 0.00000000
98.61000000 99.700000000 98.200000000 98.30000000 98.90000000
98.61000000 99.100000000 99.400000000 99.90000000 99.10000000
131.4700000 132.30892087 131.70779399 130.69866241 131.68356854
0.00000000 0.00000000 0.00000000 0.0000000 0.00000000
214 changes: 214 additions & 0 deletions data/pglib_opf_case14_ieee.m
Original file line number Diff line number Diff line change
@@ -0,0 +1,214 @@
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%%%% %%%%%
%%%% IEEE PES Power Grid Library - Optimal Power Flow - v23.07 %%%%%
%%%% (https://github.com/power-grid-lib/pglib-opf) %%%%%
%%%% Benchmark Group - Typical Operations %%%%%
%%%% 23 - July - 2023 %%%%%
%%%% %%%%%
%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
%
% Power flow data for IEEE 14 bus test case.
% This data was converted from IEEE Common Data Format
% (ieee14cdf.txt) on 20-Sep-2004 by cdf2matp, rev. 1.11
%
% Converted from IEEE CDF file from:
% http://www.ee.washington.edu/research/pstca/
%
% Copyright (c) 1999 by Richard D. Christie, University of Washington
% Electrical Engineering Licensed under the Creative Commons Attribution 4.0
% International license, http://creativecommons.org/licenses/by/4.0/
%
% CDF Header:
% 08/19/93 UW ARCHIVE 100.0 1962 W IEEE 14 Bus Test Case
%
function mpc = pglib_opf_case14_ieee
mpc.version = '2';
mpc.baseMVA = 100.0;

%% bus data
% bus_i type Pd Qd Gs Bs area Vm Va baseKV zone Vmax Vmin
mpc.bus = [
1 3 0.0 0.0 0.0 0.0 1 1.00000 0.00000 1.0 1 1.06000 0.94000;
2 2 21.7 12.7 0.0 0.0 1 1.00000 0.00000 1.0 1 1.06000 0.94000;
3 2 94.2 19.0 0.0 0.0 1 1.00000 0.00000 1.0 1 1.06000 0.94000;
4 1 47.8 -3.9 0.0 0.0 1 1.00000 0.00000 1.0 1 1.06000 0.94000;
5 1 7.6 1.6 0.0 0.0 1 1.00000 0.00000 1.0 1 1.06000 0.94000;
6 2 11.2 7.5 0.0 0.0 1 1.00000 0.00000 1.0 1 1.06000 0.94000;
7 1 0.0 0.0 0.0 0.0 1 1.00000 0.00000 1.0 1 1.06000 0.94000;
8 2 0.0 0.0 0.0 0.0 1 1.00000 0.00000 1.0 1 1.06000 0.94000;
9 1 29.5 16.6 0.0 19.0 1 1.00000 0.00000 1.0 1 1.06000 0.94000;
10 1 9.0 5.8 0.0 0.0 1 1.00000 0.00000 1.0 1 1.06000 0.94000;
11 1 3.5 1.8 0.0 0.0 1 1.00000 0.00000 1.0 1 1.06000 0.94000;
12 1 6.1 1.6 0.0 0.0 1 1.00000 0.00000 1.0 1 1.06000 0.94000;
13 1 13.5 5.8 0.0 0.0 1 1.00000 0.00000 1.0 1 1.06000 0.94000;
14 1 14.9 5.0 0.0 0.0 1 1.00000 0.00000 1.0 1 1.06000 0.94000;
];

%% generator data
% bus Pg Qg Qmax Qmin Vg mBase status Pmax Pmin
mpc.gen = [
1 170.0 5.0 10.0 0.0 1.0 100.0 1 340 0.0; % NG
2 29.5 0.0 30.0 -30.0 1.0 100.0 1 59 0.0; % NG
3 0.0 20.0 40.0 0.0 1.0 100.0 1 0 0.0; % SYNC
6 0.0 9.0 24.0 -6.0 1.0 100.0 1 0 0.0; % SYNC
8 0.0 9.0 24.0 -6.0 1.0 100.0 1 0 0.0; % SYNC
];

%% generator cost data
% 2 startup shutdown n c(n-1) ... c0
mpc.gencost = [
2 0.0 0.0 3 0.000000 7.920951 0.000000; % NG
2 0.0 0.0 3 0.000000 23.269494 0.000000; % NG
2 0.0 0.0 3 0.000000 0.000000 0.000000; % SYNC
2 0.0 0.0 3 0.000000 0.000000 0.000000; % SYNC
2 0.0 0.0 3 0.000000 0.000000 0.000000; % SYNC
];

%% branch data
% fbus tbus r x b rateA rateB rateC ratio angle status angmin angmax
mpc.branch = [
1 2 0.01938 0.05917 0.0528 472 472 472 0.0 0.0 1 -30.0 30.0;
1 5 0.05403 0.22304 0.0492 128 128 128 0.0 0.0 1 -30.0 30.0;
2 3 0.04699 0.19797 0.0438 145 145 145 0.0 0.0 1 -30.0 30.0;
2 4 0.05811 0.17632 0.034 158 158 158 0.0 0.0 1 -30.0 30.0;
2 5 0.05695 0.17388 0.0346 161 161 161 0.0 0.0 1 -30.0 30.0;
3 4 0.06701 0.17103 0.0128 160 160 160 0.0 0.0 1 -30.0 30.0;
4 5 0.01335 0.04211 0.0 664 664 664 0.0 0.0 1 -30.0 30.0;
4 7 0.0 0.20912 0.0 141 141 141 0.978 0.0 1 -30.0 30.0;
4 9 0.0 0.55618 0.0 53 53 53 0.969 0.0 1 -30.0 30.0;
5 6 0.0 0.25202 0.0 117 117 117 0.932 0.0 1 -30.0 30.0;
6 11 0.09498 0.1989 0.0 134 134 134 0.0 0.0 1 -30.0 30.0;
6 12 0.12291 0.25581 0.0 104 104 104 0.0 0.0 1 -30.0 30.0;
6 13 0.06615 0.13027 0.0 201 201 201 0.0 0.0 1 -30.0 30.0;
7 8 0.0 0.17615 0.0 167 167 167 0.0 0.0 1 -30.0 30.0;
7 9 0.0 0.11001 0.0 267 267 267 0.0 0.0 1 -30.0 30.0;
9 10 0.03181 0.0845 0.0 325 325 325 0.0 0.0 1 -30.0 30.0;
9 14 0.12711 0.27038 0.0 99 99 99 0.0 0.0 1 -30.0 30.0;
10 11 0.08205 0.19207 0.0 141 141 141 0.0 0.0 1 -30.0 30.0;
12 13 0.22092 0.19988 0.0 99 99 99 0.0 0.0 1 -30.0 30.0;
13 14 0.17093 0.34802 0.0 76 76 76 0.0 0.0 1 -30.0 30.0;
];

% INFO : === Translation Options ===
% INFO : Phase Angle Bound: 30.0 (deg.)
% INFO : Line Capacity Model: stat
% INFO : Gen Active Capacity Model: stat
% INFO : Gen Reactive Capacity Model: am50ag
% INFO : Gen Active Cost Model: stat
% INFO : Setting Flat Start
% INFO : Line Capacity PAB: 15.0 (deg.)
% INFO :
% INFO : === Generator Classification Notes ===
% INFO : SYNC 3 - 0.00
% INFO : NG 2 - 100.00
% INFO :
% INFO : === Generator Active Capacity Stat Model Notes ===
% INFO : Gen at bus 1 - NG : Pg=232.4, Pmax=332.4 -> Pmax=340 samples: 20
% INFO : Gen at bus 2 - NG : Pg=40.0, Pmax=140.0 -> Pmax=59 samples: 6
% INFO : Gen at bus 3 - SYNC : Pg=0.0, Pmax=100.0 -> Pmax=0 samples: 0
% INFO : Gen at bus 6 - SYNC : Pg=0.0, Pmax=100.0 -> Pmax=0 samples: 0
% INFO : Gen at bus 8 - SYNC : Pg=0.0, Pmax=100.0 -> Pmax=0 samples: 0
% INFO :
% INFO : === Generator Reactive Capacity Atmost Max 50 Percent Active Model Notes ===
% INFO : Gen at bus 2 - NG : Pmax 59.0, Qmin -40.0, Qmax 50.0 -> Qmin -30.0, Qmax 30.0
% INFO :
% INFO : === Generator Active Cost Stat Model Notes ===
% INFO : Updated Generator Cost: NG - 0.0 20.0 0.0430293 -> 0 7.92095063323 0
% INFO : Updated Generator Cost: NG - 0.0 20.0 0.25 -> 0 23.2694943686 0
% INFO : Updated Generator Cost: SYNC - 0.0 40.0 0.01 -> 0 0.0 0
% INFO : Updated Generator Cost: SYNC - 0.0 40.0 0.01 -> 0 0.0 0
% INFO : Updated Generator Cost: SYNC - 0.0 40.0 0.01 -> 0 0.0 0
% INFO :
% INFO : === Generator Bounds Update Notes ===
% INFO :
% INFO : === Base KV Replacement Notes ===
% WARNING : Bus 1 : basekv changed 0.0 => 1.0
% WARNING : Bus 2 : basekv changed 0.0 => 1.0
% WARNING : Bus 3 : basekv changed 0.0 => 1.0
% WARNING : Bus 4 : basekv changed 0.0 => 1.0
% WARNING : Bus 5 : basekv changed 0.0 => 1.0
% WARNING : Bus 6 : basekv changed 0.0 => 1.0
% WARNING : Bus 7 : basekv changed 0.0 => 1.0
% WARNING : Bus 8 : basekv changed 0.0 => 1.0
% WARNING : Bus 9 : basekv changed 0.0 => 1.0
% WARNING : Bus 10 : basekv changed 0.0 => 1.0
% WARNING : Bus 11 : basekv changed 0.0 => 1.0
% WARNING : Bus 12 : basekv changed 0.0 => 1.0
% WARNING : Bus 13 : basekv changed 0.0 => 1.0
% WARNING : Bus 14 : basekv changed 0.0 => 1.0
% INFO :
% INFO : === Transformer Setting Replacement Notes ===
% INFO :
% INFO : === Line Capacity Stat Model Notes ===
% WARNING : Missing data for branch flow stat model on line 1-2 using max current model : from_basekv=1.0 to_basekv=1.0 r=0.01938 x=0.05917
% INFO : Updated Thermal Rating: on line 1-2 : Rate A, Rate B, Rate C , 9900.0, 0.0, 0.0 -> 472
% WARNING : Missing data for branch flow stat model on line 1-5 using max current model : from_basekv=1.0 to_basekv=1.0 r=0.05403 x=0.22304
% INFO : Updated Thermal Rating: on line 1-5 : Rate A, Rate B, Rate C , 9900.0, 0.0, 0.0 -> 128
% WARNING : Missing data for branch flow stat model on line 2-3 using max current model : from_basekv=1.0 to_basekv=1.0 r=0.04699 x=0.19797
% INFO : Updated Thermal Rating: on line 2-3 : Rate A, Rate B, Rate C , 9900.0, 0.0, 0.0 -> 145
% WARNING : Missing data for branch flow stat model on line 2-4 using max current model : from_basekv=1.0 to_basekv=1.0 r=0.05811 x=0.17632
% INFO : Updated Thermal Rating: on line 2-4 : Rate A, Rate B, Rate C , 9900.0, 0.0, 0.0 -> 158
% WARNING : Missing data for branch flow stat model on line 2-5 using max current model : from_basekv=1.0 to_basekv=1.0 r=0.05695 x=0.17388
% INFO : Updated Thermal Rating: on line 2-5 : Rate A, Rate B, Rate C , 9900.0, 0.0, 0.0 -> 161
% WARNING : Missing data for branch flow stat model on line 3-4 using max current model : from_basekv=1.0 to_basekv=1.0 r=0.06701 x=0.17103
% INFO : Updated Thermal Rating: on line 3-4 : Rate A, Rate B, Rate C , 9900.0, 0.0, 0.0 -> 160
% WARNING : Missing data for branch flow stat model on line 4-5 using max current model : from_basekv=1.0 to_basekv=1.0 r=0.01335 x=0.04211
% INFO : Updated Thermal Rating: on line 4-5 : Rate A, Rate B, Rate C , 9900.0, 0.0, 0.0 -> 664
% WARNING : Missing data for branch flow stat model on line 4-7 using max current model : from_basekv=1.0 to_basekv=1.0 r=0.0 x=0.20912
% INFO : Updated Thermal Rating: on transformer 4-7 : Rate A, Rate B, Rate C , 9900.0, 0.0, 0.0 -> 141
% WARNING : Missing data for branch flow stat model on line 4-9 using max current model : from_basekv=1.0 to_basekv=1.0 r=0.0 x=0.55618
% INFO : Updated Thermal Rating: on transformer 4-9 : Rate A, Rate B, Rate C , 9900.0, 0.0, 0.0 -> 53
% WARNING : Missing data for branch flow stat model on line 5-6 using max current model : from_basekv=1.0 to_basekv=1.0 r=0.0 x=0.25202
% INFO : Updated Thermal Rating: on transformer 5-6 : Rate A, Rate B, Rate C , 9900.0, 0.0, 0.0 -> 117
% WARNING : Missing data for branch flow stat model on line 6-11 using max current model : from_basekv=1.0 to_basekv=1.0 r=0.09498 x=0.1989
% INFO : Updated Thermal Rating: on line 6-11 : Rate A, Rate B, Rate C , 9900.0, 0.0, 0.0 -> 134
% WARNING : Missing data for branch flow stat model on line 6-12 using max current model : from_basekv=1.0 to_basekv=1.0 r=0.12291 x=0.25581
% INFO : Updated Thermal Rating: on line 6-12 : Rate A, Rate B, Rate C , 9900.0, 0.0, 0.0 -> 104
% WARNING : Missing data for branch flow stat model on line 6-13 using max current model : from_basekv=1.0 to_basekv=1.0 r=0.06615 x=0.13027
% INFO : Updated Thermal Rating: on line 6-13 : Rate A, Rate B, Rate C , 9900.0, 0.0, 0.0 -> 201
% WARNING : Missing data for branch flow stat model on line 7-8 using max current model : from_basekv=1.0 to_basekv=1.0 r=0.0 x=0.17615
% INFO : Updated Thermal Rating: on line 7-8 : Rate A, Rate B, Rate C , 9900.0, 0.0, 0.0 -> 167
% WARNING : Missing data for branch flow stat model on line 7-9 using max current model : from_basekv=1.0 to_basekv=1.0 r=0.0 x=0.11001
% INFO : Updated Thermal Rating: on line 7-9 : Rate A, Rate B, Rate C , 9900.0, 0.0, 0.0 -> 267
% WARNING : Missing data for branch flow stat model on line 9-10 using max current model : from_basekv=1.0 to_basekv=1.0 r=0.03181 x=0.0845
% INFO : Updated Thermal Rating: on line 9-10 : Rate A, Rate B, Rate C , 9900.0, 0.0, 0.0 -> 325
% WARNING : Missing data for branch flow stat model on line 9-14 using max current model : from_basekv=1.0 to_basekv=1.0 r=0.12711 x=0.27038
% INFO : Updated Thermal Rating: on line 9-14 : Rate A, Rate B, Rate C , 9900.0, 0.0, 0.0 -> 99
% WARNING : Missing data for branch flow stat model on line 10-11 using max current model : from_basekv=1.0 to_basekv=1.0 r=0.08205 x=0.19207
% INFO : Updated Thermal Rating: on line 10-11 : Rate A, Rate B, Rate C , 9900.0, 0.0, 0.0 -> 141
% WARNING : Missing data for branch flow stat model on line 12-13 using max current model : from_basekv=1.0 to_basekv=1.0 r=0.22092 x=0.19988
% INFO : Updated Thermal Rating: on line 12-13 : Rate A, Rate B, Rate C , 9900.0, 0.0, 0.0 -> 99
% WARNING : Missing data for branch flow stat model on line 13-14 using max current model : from_basekv=1.0 to_basekv=1.0 r=0.17093 x=0.34802
% INFO : Updated Thermal Rating: on line 13-14 : Rate A, Rate B, Rate C , 9900.0, 0.0, 0.0 -> 76
% INFO :
% INFO : === Line Capacity Monotonicity Notes ===
% INFO :
% INFO : === Voltage Setpoint Replacement Notes ===
% INFO : Bus 1 : V=1.06, theta=0.0 -> V=1.0, theta=0.0
% INFO : Bus 2 : V=1.045, theta=-4.98 -> V=1.0, theta=0.0
% INFO : Bus 3 : V=1.01, theta=-12.72 -> V=1.0, theta=0.0
% INFO : Bus 4 : V=1.019, theta=-10.33 -> V=1.0, theta=0.0
% INFO : Bus 5 : V=1.02, theta=-8.78 -> V=1.0, theta=0.0
% INFO : Bus 6 : V=1.07, theta=-14.22 -> V=1.0, theta=0.0
% INFO : Bus 7 : V=1.062, theta=-13.37 -> V=1.0, theta=0.0
% INFO : Bus 8 : V=1.09, theta=-13.36 -> V=1.0, theta=0.0
% INFO : Bus 9 : V=1.056, theta=-14.94 -> V=1.0, theta=0.0
% INFO : Bus 10 : V=1.051, theta=-15.1 -> V=1.0, theta=0.0
% INFO : Bus 11 : V=1.057, theta=-14.79 -> V=1.0, theta=0.0
% INFO : Bus 12 : V=1.055, theta=-15.07 -> V=1.0, theta=0.0
% INFO : Bus 13 : V=1.05, theta=-15.16 -> V=1.0, theta=0.0
% INFO : Bus 14 : V=1.036, theta=-16.04 -> V=1.0, theta=0.0
% INFO :
% INFO : === Generator Setpoint Replacement Notes ===
% INFO : Gen at bus 1 : Pg=232.4, Qg=-16.9 -> Pg=170.0, Qg=5.0
% INFO : Gen at bus 1 : Vg=1.06 -> Vg=1.0
% INFO : Gen at bus 2 : Pg=40.0, Qg=42.4 -> Pg=29.5, Qg=0.0
% INFO : Gen at bus 2 : Vg=1.045 -> Vg=1.0
% INFO : Gen at bus 3 : Pg=0.0, Qg=23.4 -> Pg=0.0, Qg=20.0
% INFO : Gen at bus 3 : Vg=1.01 -> Vg=1.0
% INFO : Gen at bus 6 : Pg=0.0, Qg=12.2 -> Pg=0.0, Qg=9.0
% INFO : Gen at bus 6 : Vg=1.07 -> Vg=1.0
% INFO : Gen at bus 8 : Pg=0.0, Qg=17.4 -> Pg=0.0, Qg=9.0
% INFO : Gen at bus 8 : Vg=1.09 -> Vg=1.0
% INFO :
% INFO : === Writing Matpower Case File Notes ===
Loading