From 0fbc6d61a1e4fd7af01e9c804b061f01414824ab Mon Sep 17 00:00:00 2001 From: lukelowry Date: Mon, 5 Oct 2026 15:28:20 -0500 Subject: [PATCH 1/7] implemetnation of branch outage minimal --- CHANGELOG.md | 1 + .../Model/PhasorDynamics/Branch/Branch.hpp | 3 ++ .../PhasorDynamics/Branch/BranchImpl.hpp | 23 +++++++++++++ GridKit/Model/PhasorDynamics/Branch/README.md | 6 +++- GridKit/Model/PhasorDynamics/SystemModel.hpp | 7 ++++ .../Model/PhasorDynamics/SystemModelImpl.hpp | 13 ++++++++ .../PhasorDynamics/AnalysisUtilities.hpp | 10 ++++-- .../PhasorDynamics/ContingencyAnalysis.cpp | 7 ++++ .../PhasorDynamics/DynamicSimulation.cpp | 7 ++++ application/PhasorDynamics/README.md | 3 +- .../DynamicSimulation/README.md | 1 + .../DynamicSimulation/Toy/CMakeLists.txt | 1 + .../Toy/ThreeBusBasic/CMakeLists.txt | 7 ++++ .../Toy/ThreeBusBasic/README.md | 8 +++++ .../ThreeBusBasic/ThreeBusBasic.solver.json | 10 ++++++ .../figures/ThreeBusBasic.Vm.png | Bin 0 -> 51609 bytes .../figures/ThreeBusBasic.speed.png | Bin 0 -> 87979 bytes .../UnitTests/PhasorDynamics/BranchTests.hpp | 31 ++++++++++++++++++ .../PhasorDynamics/runBranchTests.cpp | 3 ++ 19 files changed, 137 insertions(+), 4 deletions(-) create mode 100644 examples/PhasorDynamics/DynamicSimulation/Toy/ThreeBusBasic/CMakeLists.txt create mode 100644 examples/PhasorDynamics/DynamicSimulation/Toy/ThreeBusBasic/README.md create mode 100644 examples/PhasorDynamics/DynamicSimulation/Toy/ThreeBusBasic/ThreeBusBasic.solver.json create mode 100644 examples/PhasorDynamics/DynamicSimulation/Toy/ThreeBusBasic/figures/ThreeBusBasic.Vm.png create mode 100644 examples/PhasorDynamics/DynamicSimulation/Toy/ThreeBusBasic/figures/ThreeBusBasic.speed.png diff --git a/CHANGELOG.md b/CHANGELOG.md index 65d190ac74..633a5ef464 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -5,6 +5,7 @@ - Added `BusSignalVoltageOut` bus model with voltage signal outlets and current signal inlets. - Added `BusSignalVoltageIn` bus model with voltage signal inlets and current signal outlets. - Added `Bus::setFault` to apply or clear a fault to ground directly at a bus. +- Added `enable` and `disable` solver events that put a branch in or out of service. ## v0.2 diff --git a/GridKit/Model/PhasorDynamics/Branch/Branch.hpp b/GridKit/Model/PhasorDynamics/Branch/Branch.hpp index 82a5144a21..ed422c9900 100644 --- a/GridKit/Model/PhasorDynamics/Branch/Branch.hpp +++ b/GridKit/Model/PhasorDynamics/Branch/Branch.hpp @@ -74,6 +74,8 @@ namespace GridKit virtual int evaluateJacobian() override final; virtual int verify() const override final; + int setEnabled(bool enabled); + void setR(RealT R) { R_ = R; @@ -195,6 +197,7 @@ namespace GridKit RealT Bmag_{0.0}; RealT tap_{1.0}; RealT phase_{0.0}; + RealT enabled_{1.0}; ///< 1 in service, 0 out of service IdxT bus1_id_{0}; IdxT bus2_id_{0}; diff --git a/GridKit/Model/PhasorDynamics/Branch/BranchImpl.hpp b/GridKit/Model/PhasorDynamics/Branch/BranchImpl.hpp index f7b1391f17..6fec2f6327 100644 --- a/GridKit/Model/PhasorDynamics/Branch/BranchImpl.hpp +++ b/GridKit/Model/PhasorDynamics/Branch/BranchImpl.hpp @@ -184,6 +184,19 @@ namespace GridKit return ret; } + /// Put the branch in or out of service; out of service, it injects no current. + template + int Branch::setEnabled(bool enabled) + { + enabled_ = ZERO; + if (enabled) + { + enabled_ = ONE; + } + setDerivedParams(); + return 0; + } + template __attribute__((always_inline)) inline void Branch::addAdmittanceContribution( const RealT G, @@ -514,6 +527,16 @@ namespace GridKit g22_ = g_diag - RealT{0.5} * G_; b22_ = b_diag - RealT{0.5} * B_; + + // An out-of-service branch has zero admittance + g11_ *= enabled_; + b11_ *= enabled_; + g12_ *= enabled_; + b12_ *= enabled_; + g21_ *= enabled_; + b21_ *= enabled_; + g22_ *= enabled_; + b22_ *= enabled_; } } // namespace PhasorDynamics diff --git a/GridKit/Model/PhasorDynamics/Branch/README.md b/GridKit/Model/PhasorDynamics/Branch/README.md index adebd94fdf..7b2b1efdfa 100644 --- a/GridKit/Model/PhasorDynamics/Branch/README.md +++ b/GridKit/Model/PhasorDynamics/Branch/README.md @@ -94,12 +94,15 @@ The off-nominal transformer transformation uses bus 1 as the tap side: \end{aligned} ``` -The magnetizing and line shunts are added outside the transformation: +The magnetizing and line shunts are added outside the transformation, and the +service status $u$ scales the whole branch: ```math \begin{aligned} \mathbf{Y} &= + u + \left( \mathbf{M}^{\dagger} \mathbf{Y}_0 \mathbf{M} @@ -107,6 +110,7 @@ The magnetizing and line shunts are added outside the transformation: \mathbf{Y}_\mathrm{mag} + \mathbf{Y}_\mathrm{sh} + \right) \end{aligned} ``` diff --git a/GridKit/Model/PhasorDynamics/SystemModel.hpp b/GridKit/Model/PhasorDynamics/SystemModel.hpp index dc0ed0b7b3..f93930db9a 100644 --- a/GridKit/Model/PhasorDynamics/SystemModel.hpp +++ b/GridKit/Model/PhasorDynamics/SystemModel.hpp @@ -2,6 +2,7 @@ #include #include +#include #include #include @@ -25,6 +26,9 @@ namespace GridKit template class BusFault; + template + class Branch; + template class SignalNode; @@ -105,6 +109,7 @@ namespace GridKit BusT* getBus(IdxT bus_id); SignalNodeT* getSignalNode(IdxT signal_id); ComponentT* getComponent(IdxT gridkit_component_id); + Branch* getBranch(const std::string& id); BusFault* getBusFault(IdxT fault_id); private: @@ -115,6 +120,8 @@ namespace GridKit std::map gridkit_bus_indices_; ///< Map between gridkit_bus_id and bus_id std::map gridkit_fault_indices_; ///< Map between fault_id and component_id + std::map gridkit_branch_indices_; ///< Map between branch id and gridkit_component_id + bool owns_components_{false}; /// Variable monitor diff --git a/GridKit/Model/PhasorDynamics/SystemModelImpl.hpp b/GridKit/Model/PhasorDynamics/SystemModelImpl.hpp index 1cba9db950..5d83f057f2 100644 --- a/GridKit/Model/PhasorDynamics/SystemModelImpl.hpp +++ b/GridKit/Model/PhasorDynamics/SystemModelImpl.hpp @@ -110,6 +110,8 @@ namespace GridKit auto* branch = new Branch(getBus(bus1_index), getBus(bus2_index), branchdata); + + gridkit_branch_indices_[branchdata.disambiguation_string] = static_cast(components_.size()); addComponent(branch); } @@ -830,6 +832,17 @@ namespace GridKit return components_[gridkit_component_id]; } + /** + * @brief Return pointer to a branch by case-file `id` + */ + template + Branch* + SystemModel::getBranch(const std::string& id) + { + // Should fail if user-provided id is incorrect + return dynamic_cast*>(components_[gridkit_branch_indices_.at(id)]); + } + /** * @brief Return pointer to a bus fault model * diff --git a/application/PhasorDynamics/AnalysisUtilities.hpp b/application/PhasorDynamics/AnalysisUtilities.hpp index 67db15240c..b1f2b397a8 100644 --- a/application/PhasorDynamics/AnalysisUtilities.hpp +++ b/application/PhasorDynamics/AnalysisUtilities.hpp @@ -11,6 +11,7 @@ #include #include +#include #include #include #include @@ -34,7 +35,9 @@ namespace GridKit enum class Type { FAULT_ON, - FAULT_OFF + FAULT_OFF, + ENABLE, + DISABLE }; /// Time event takes place @@ -43,6 +46,8 @@ namespace GridKit Type type; /// ID of element used in event (e.g., bus fault id) std::size_t element_id; + /// Case-file `id` of the device to enable or disable + std::string device; }; /** @@ -130,7 +135,8 @@ namespace GridKit { auto& event = c.events.emplace_back(); raw_event.at("time").get_to(event.time); - raw_event.at("element_id").get_to(event.element_id); + event.element_id = raw_event.value("element_id", INVALID_INDEX); + event.device = raw_event.value("device", std::string{}); auto type_str = raw_event.at("type").get(); using EventType = SystemEvent::Type; diff --git a/application/PhasorDynamics/ContingencyAnalysis.cpp b/application/PhasorDynamics/ContingencyAnalysis.cpp index 7fc1990aa3..e831e439c2 100644 --- a/application/PhasorDynamics/ContingencyAnalysis.cpp +++ b/application/PhasorDynamics/ContingencyAnalysis.cpp @@ -7,6 +7,7 @@ #include #endif +#include #include #include #include @@ -64,6 +65,12 @@ TestStatus runStudy(StudyData study_data) case EventType::FAULT_OFF: sys.getBusFault(event.element_id)->setStatus(false); break; + case EventType::ENABLE: + sys.getBranch(event.device)->setEnabled(true); + break; + case EventType::DISABLE: + sys.getBranch(event.device)->setEnabled(false); + break; } // Re-initialize simulation at event time diff --git a/application/PhasorDynamics/DynamicSimulation.cpp b/application/PhasorDynamics/DynamicSimulation.cpp index c607a0f1e2..14a139e903 100644 --- a/application/PhasorDynamics/DynamicSimulation.cpp +++ b/application/PhasorDynamics/DynamicSimulation.cpp @@ -2,6 +2,7 @@ #include #include +#include #include #include #include @@ -63,6 +64,12 @@ int runApplication(int argc, const char* argv[]) case EventType::FAULT_OFF: sys.getBusFault(event.element_id)->setStatus(false); break; + case EventType::ENABLE: + sys.getBranch(event.device)->setEnabled(true); + break; + case EventType::DISABLE: + sys.getBranch(event.device)->setEnabled(false); + break; } // Re-initialize simulation at event time diff --git a/application/PhasorDynamics/README.md b/application/PhasorDynamics/README.md index 9ffaf4361b..a96a86c1b3 100644 --- a/application/PhasorDynamics/README.md +++ b/application/PhasorDynamics/README.md @@ -29,5 +29,6 @@ Each event group describes a system event that occurs at a given time point Name | Value --------------------|------------------------------------------------------- `time` | A floating point value for time event occurs - `type` | Event type (one of { "fault_on", "fault_off" }) + `type` | Event type (one of { "fault_on", "fault_off", "enable", "disable" }) `element_id` | An integer value referencing the element associated with the event (e.g., bus fault id) + `device` | `id` of the branch to put in service ("enable") or take out of service ("disable") diff --git a/examples/PhasorDynamics/DynamicSimulation/README.md b/examples/PhasorDynamics/DynamicSimulation/README.md index ef309ebf15..1fc1f2d986 100644 --- a/examples/PhasorDynamics/DynamicSimulation/README.md +++ b/examples/PhasorDynamics/DynamicSimulation/README.md @@ -5,5 +5,6 @@ inputs. | Example | Description | | --- | --- | +| [ThreeBusBasic](Toy/ThreeBusBasic/README.md) | A three-bus line opened and reclosed. | | [ThreeBusConstantSource](Toy/ThreeBusConstantSource/README.md) | A three-bus constant signal source example. | | [ACTIVSg10k](ACTIVSg10k/README.md) | A short simulation without disturbances using the reusable ACTIVSg10k case. | diff --git a/examples/PhasorDynamics/DynamicSimulation/Toy/CMakeLists.txt b/examples/PhasorDynamics/DynamicSimulation/Toy/CMakeLists.txt index b42f4e33a8..781579c495 100644 --- a/examples/PhasorDynamics/DynamicSimulation/Toy/CMakeLists.txt +++ b/examples/PhasorDynamics/DynamicSimulation/Toy/CMakeLists.txt @@ -1 +1,2 @@ +add_subdirectory(ThreeBusBasic) add_subdirectory(ThreeBusConstantSource) diff --git a/examples/PhasorDynamics/DynamicSimulation/Toy/ThreeBusBasic/CMakeLists.txt b/examples/PhasorDynamics/DynamicSimulation/Toy/ThreeBusBasic/CMakeLists.txt new file mode 100644 index 0000000000..f92d9f3b47 --- /dev/null +++ b/examples/PhasorDynamics/DynamicSimulation/Toy/ThreeBusBasic/CMakeLists.txt @@ -0,0 +1,7 @@ +gridkit_example_add_file(${CMAKE_SOURCE_DIR}/cases/PhasorDynamics/Toy/ThreeBusBasic.case.json) +gridkit_example_add_file(ThreeBusBasic.solver.json) + +add_test( + NAME ThreeBusBasic_line_switching + COMMAND DynamicSimulation ThreeBusBasic.solver.json + WORKING_DIRECTORY ${CMAKE_CURRENT_BINARY_DIR}) diff --git a/examples/PhasorDynamics/DynamicSimulation/Toy/ThreeBusBasic/README.md b/examples/PhasorDynamics/DynamicSimulation/Toy/ThreeBusBasic/README.md new file mode 100644 index 0000000000..9c6a3ed708 --- /dev/null +++ b/examples/PhasorDynamics/DynamicSimulation/Toy/ThreeBusBasic/README.md @@ -0,0 +1,8 @@ +# ThreeBusBasic Line Switching + +This study uses the reusable +[ThreeBusBasic case](../../../../../cases/PhasorDynamics/Toy/README.md). +Branch `BR_1_2` is taken out of service at 1 s and put back in service at 5 s. + +![Bus voltage magnitude](figures/ThreeBusBasic.Vm.png) +![Generator speed](figures/ThreeBusBasic.speed.png) diff --git a/examples/PhasorDynamics/DynamicSimulation/Toy/ThreeBusBasic/ThreeBusBasic.solver.json b/examples/PhasorDynamics/DynamicSimulation/Toy/ThreeBusBasic/ThreeBusBasic.solver.json new file mode 100644 index 0000000000..766e054e19 --- /dev/null +++ b/examples/PhasorDynamics/DynamicSimulation/Toy/ThreeBusBasic/ThreeBusBasic.solver.json @@ -0,0 +1,10 @@ +{ + "system_model_file": "ThreeBusBasic.case.json", + "output_file": "ThreeBusBasic.csv", + "dt_monitor": 0.004166666666666667, + "tmax": 10.0, + "events": [ + { "time": 1.0, "type": "disable", "device": "BR_1_2" }, + { "time": 5.0, "type": "enable", "device": "BR_1_2" } + ] +} diff --git a/examples/PhasorDynamics/DynamicSimulation/Toy/ThreeBusBasic/figures/ThreeBusBasic.Vm.png b/examples/PhasorDynamics/DynamicSimulation/Toy/ThreeBusBasic/figures/ThreeBusBasic.Vm.png new file mode 100644 index 0000000000000000000000000000000000000000..554697d13f4a27cbd315e501fcb746e274332d60 GIT binary patch literal 51609 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

s!2ICr-U{`%e^6}%t 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 d{~V0$1~qXB7d88JeuFLvzpZtv #include +#include #include #include #include @@ -243,6 +244,36 @@ namespace GridKit return success.report(__func__); } +#ifdef GRIDKIT_ENABLE_ENZYME + TestOutcome singularJacobian() + { + // Verifies a disabled branch keeps its Jacobian entries, all zero. + TestStatus success = true; + + PhasorDynamics::Bus bus1(10.0, 20.0); + PhasorDynamics::Bus bus2(30.0, 40.0); + bus1.allocate(); + bus2.allocate(); + + PhasorDynamics::Branch branch(&bus1, &bus2, 2.0, 4.0, 0.2, 1.2); + branch.allocate(); + branch.evaluateJacobian(); + const IdxT nnz = branch.nnz(); + + success *= branch.setEnabled(false) == 0; + branch.evaluateJacobian(); + success *= branch.nnz() == nnz; + + const RealT* values = branch.getCooJacobian()->getValues(); + for (IdxT i = 0; i < nnz; ++i) + { + success *= isEqual(values[i], 0.0); + } + + return success.report(__func__); + } +#endif + TestOutcome parameterSetters() { // Verifies parameter setters refresh derived admittance values. diff --git a/tests/UnitTests/PhasorDynamics/runBranchTests.cpp b/tests/UnitTests/PhasorDynamics/runBranchTests.cpp index c0fe130c87..985444b15d 100644 --- a/tests/UnitTests/PhasorDynamics/runBranchTests.cpp +++ b/tests/UnitTests/PhasorDynamics/runBranchTests.cpp @@ -16,6 +16,9 @@ int main() result += test.offNominalResidual(); result += test.jacobian(); result += test.offNominalJacobian(); +#ifdef GRIDKIT_ENABLE_ENZYME + result += test.singularJacobian(); +#endif return result.summary(); } From f319ef6f2d27827aa66009809dd6ad3bb5117713 Mon Sep 17 00:00:00 2001 From: Luke Lowery Date: Tue, 6 Oct 2026 16:07:58 -0500 Subject: [PATCH 2/7] Update GridKit/Model/PhasorDynamics/Branch/Branch.hpp Co-authored-by: pelesh --- GridKit/Model/PhasorDynamics/Branch/Branch.hpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/GridKit/Model/PhasorDynamics/Branch/Branch.hpp b/GridKit/Model/PhasorDynamics/Branch/Branch.hpp index ed422c9900..2c5c1bedbe 100644 --- a/GridKit/Model/PhasorDynamics/Branch/Branch.hpp +++ b/GridKit/Model/PhasorDynamics/Branch/Branch.hpp @@ -197,8 +197,8 @@ namespace GridKit RealT Bmag_{0.0}; RealT tap_{1.0}; RealT phase_{0.0}; - RealT enabled_{1.0}; ///< 1 in service, 0 out of service - IdxT bus1_id_{0}; + RealT in_service_{1.0}; ///< 1 in service, 0 out of service +IdxT bus1_id_{0}; IdxT bus2_id_{0}; RealT g11_{0.0}; From 38714bac877351b2eee21b6c95a8fcb27ee1ce3b Mon Sep 17 00:00:00 2001 From: Luke Lowery Date: Tue, 6 Oct 2026 16:08:28 -0500 Subject: [PATCH 3/7] Update application/PhasorDynamics/README.md Co-authored-by: pelesh --- application/PhasorDynamics/README.md | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/PhasorDynamics/README.md b/application/PhasorDynamics/README.md index a96a86c1b3..92eab86013 100644 --- a/application/PhasorDynamics/README.md +++ b/application/PhasorDynamics/README.md @@ -29,6 +29,6 @@ Each event group describes a system event that occurs at a given time point Name | Value --------------------|------------------------------------------------------- `time` | A floating point value for time event occurs - `type` | Event type (one of { "fault_on", "fault_off", "enable", "disable" }) - `element_id` | An integer value referencing the element associated with the event (e.g., bus fault id) + `type` | Event type (one of { "fault_on", "fault_off", "in_service", "out_of_service" }) +`element_id` | An integer value referencing the element associated with the event (e.g., bus fault id) `device` | `id` of the branch to put in service ("enable") or take out of service ("disable") From e4500635e40085594a915af225e1bb6e9b53ef39 Mon Sep 17 00:00:00 2001 From: Luke Lowery Date: Tue, 6 Oct 2026 16:09:01 -0500 Subject: [PATCH 4/7] Update application/PhasorDynamics/ContingencyAnalysis.cpp Co-authored-by: pelesh --- application/PhasorDynamics/ContingencyAnalysis.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/application/PhasorDynamics/ContingencyAnalysis.cpp b/application/PhasorDynamics/ContingencyAnalysis.cpp index e831e439c2..681f013706 100644 --- a/application/PhasorDynamics/ContingencyAnalysis.cpp +++ b/application/PhasorDynamics/ContingencyAnalysis.cpp @@ -65,8 +65,8 @@ TestStatus runStudy(StudyData study_data) case EventType::FAULT_OFF: sys.getBusFault(event.element_id)->setStatus(false); break; - case EventType::ENABLE: - sys.getBranch(event.device)->setEnabled(true); + case EventType::IN_SERVICE: + sys.getBranch(event.device)->setInService(true); break; case EventType::DISABLE: sys.getBranch(event.device)->setEnabled(false); From af45898a349b645417fab5caeb146d5b9e0def28 Mon Sep 17 00:00:00 2001 From: lukelowry Date: Tue, 6 Oct 2026 21:09:43 +0000 Subject: [PATCH 5/7] Apply pre-commit fixes --- GridKit/Model/PhasorDynamics/Branch/Branch.hpp | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/GridKit/Model/PhasorDynamics/Branch/Branch.hpp b/GridKit/Model/PhasorDynamics/Branch/Branch.hpp index 2c5c1bedbe..ba38d47eef 100644 --- a/GridKit/Model/PhasorDynamics/Branch/Branch.hpp +++ b/GridKit/Model/PhasorDynamics/Branch/Branch.hpp @@ -198,7 +198,7 @@ namespace GridKit RealT tap_{1.0}; RealT phase_{0.0}; RealT in_service_{1.0}; ///< 1 in service, 0 out of service -IdxT bus1_id_{0}; + IdxT bus1_id_{0}; IdxT bus2_id_{0}; RealT g11_{0.0}; From c49acc071dedd718057f7e4bac544df0f4214c3e Mon Sep 17 00:00:00 2001 From: lukelowry Date: Tue, 6 Oct 2026 16:39:42 -0500 Subject: [PATCH 6/7] islanding case and name changes --- .../Model/PhasorDynamics/Branch/Branch.hpp | 2 +- .../PhasorDynamics/Branch/BranchImpl.hpp | 27 +++++----- .../PhasorDynamics/AnalysisUtilities.hpp | 6 +-- .../PhasorDynamics/ContingencyAnalysis.cpp | 4 +- .../PhasorDynamics/DynamicSimulation.cpp | 8 +-- .../ThreeBusBasic/ThreeBusBasic.solver.json | 4 +- .../TenGen/Classical/TenGenClassical.cpp | 10 ++++ .../UnitTests/PhasorDynamics/BranchTests.hpp | 49 ++++++++++++++++--- .../UnitTests/PhasorDynamics/SystemTests.hpp | 38 ++++++++++++++ .../PhasorDynamics/runBranchTests.cpp | 2 +- .../PhasorDynamics/runSystemTests.cpp | 1 + 11 files changed, 119 insertions(+), 32 deletions(-) diff --git a/GridKit/Model/PhasorDynamics/Branch/Branch.hpp b/GridKit/Model/PhasorDynamics/Branch/Branch.hpp index ba38d47eef..8588f7869f 100644 --- a/GridKit/Model/PhasorDynamics/Branch/Branch.hpp +++ b/GridKit/Model/PhasorDynamics/Branch/Branch.hpp @@ -74,7 +74,7 @@ namespace GridKit virtual int evaluateJacobian() override final; virtual int verify() const override final; - int setEnabled(bool enabled); + int setInService(bool in_service); void setR(RealT R) { diff --git a/GridKit/Model/PhasorDynamics/Branch/BranchImpl.hpp b/GridKit/Model/PhasorDynamics/Branch/BranchImpl.hpp index 6fec2f6327..90d9ea5e28 100644 --- a/GridKit/Model/PhasorDynamics/Branch/BranchImpl.hpp +++ b/GridKit/Model/PhasorDynamics/Branch/BranchImpl.hpp @@ -186,12 +186,12 @@ namespace GridKit /// Put the branch in or out of service; out of service, it injects no current. template - int Branch::setEnabled(bool enabled) + int Branch::setInService(bool in_service) { - enabled_ = ZERO; - if (enabled) + in_service_ = ZERO; + if (in_service) { - enabled_ = ONE; + in_service_ = ONE; } setDerivedParams(); return 0; @@ -309,6 +309,9 @@ namespace GridKit /** * @brief Residual contribution of the branch is computed and pushed to the terminal buses. * + * Out-of-service branches retain bus voltages but contribute no current. + * Empty isolated buses and floating series-only islands can make the + * system Jacobian singular; generator-supported islands need not do so. */ template int Branch::evaluateResidual() @@ -529,14 +532,14 @@ namespace GridKit b22_ = b_diag - RealT{0.5} * B_; // An out-of-service branch has zero admittance - g11_ *= enabled_; - b11_ *= enabled_; - g12_ *= enabled_; - b12_ *= enabled_; - g21_ *= enabled_; - b21_ *= enabled_; - g22_ *= enabled_; - b22_ *= enabled_; + g11_ *= in_service_; + b11_ *= in_service_; + g12_ *= in_service_; + b12_ *= in_service_; + g21_ *= in_service_; + b21_ *= in_service_; + g22_ *= in_service_; + b22_ *= in_service_; } } // namespace PhasorDynamics diff --git a/application/PhasorDynamics/AnalysisUtilities.hpp b/application/PhasorDynamics/AnalysisUtilities.hpp index b1f2b397a8..129b2469ac 100644 --- a/application/PhasorDynamics/AnalysisUtilities.hpp +++ b/application/PhasorDynamics/AnalysisUtilities.hpp @@ -36,8 +36,8 @@ namespace GridKit { FAULT_ON, FAULT_OFF, - ENABLE, - DISABLE + IN_SERVICE, + OUT_OF_SERVICE }; /// Time event takes place @@ -46,7 +46,7 @@ namespace GridKit Type type; /// ID of element used in event (e.g., bus fault id) std::size_t element_id; - /// Case-file `id` of the device to enable or disable + /// Case-file `id` of the branch to put in or out of service std::string device; }; diff --git a/application/PhasorDynamics/ContingencyAnalysis.cpp b/application/PhasorDynamics/ContingencyAnalysis.cpp index 681f013706..bd2dea9fbe 100644 --- a/application/PhasorDynamics/ContingencyAnalysis.cpp +++ b/application/PhasorDynamics/ContingencyAnalysis.cpp @@ -68,8 +68,8 @@ TestStatus runStudy(StudyData study_data) case EventType::IN_SERVICE: sys.getBranch(event.device)->setInService(true); break; - case EventType::DISABLE: - sys.getBranch(event.device)->setEnabled(false); + case EventType::OUT_OF_SERVICE: + sys.getBranch(event.device)->setInService(false); break; } diff --git a/application/PhasorDynamics/DynamicSimulation.cpp b/application/PhasorDynamics/DynamicSimulation.cpp index 14a139e903..93b087ba8a 100644 --- a/application/PhasorDynamics/DynamicSimulation.cpp +++ b/application/PhasorDynamics/DynamicSimulation.cpp @@ -64,11 +64,11 @@ int runApplication(int argc, const char* argv[]) case EventType::FAULT_OFF: sys.getBusFault(event.element_id)->setStatus(false); break; - case EventType::ENABLE: - sys.getBranch(event.device)->setEnabled(true); + case EventType::IN_SERVICE: + sys.getBranch(event.device)->setInService(true); break; - case EventType::DISABLE: - sys.getBranch(event.device)->setEnabled(false); + case EventType::OUT_OF_SERVICE: + sys.getBranch(event.device)->setInService(false); break; } diff --git a/examples/PhasorDynamics/DynamicSimulation/Toy/ThreeBusBasic/ThreeBusBasic.solver.json b/examples/PhasorDynamics/DynamicSimulation/Toy/ThreeBusBasic/ThreeBusBasic.solver.json index 766e054e19..9bfa9704c5 100644 --- a/examples/PhasorDynamics/DynamicSimulation/Toy/ThreeBusBasic/ThreeBusBasic.solver.json +++ b/examples/PhasorDynamics/DynamicSimulation/Toy/ThreeBusBasic/ThreeBusBasic.solver.json @@ -4,7 +4,7 @@ "dt_monitor": 0.004166666666666667, "tmax": 10.0, "events": [ - { "time": 1.0, "type": "disable", "device": "BR_1_2" }, - { "time": 5.0, "type": "enable", "device": "BR_1_2" } + { "time": 1.0, "type": "out_of_service", "device": "BR_1_2" }, + { "time": 5.0, "type": "in_service", "device": "BR_1_2" } ] } diff --git a/tests/IntegrationTests/PhasorDynamics/TenGen/Classical/TenGenClassical.cpp b/tests/IntegrationTests/PhasorDynamics/TenGen/Classical/TenGenClassical.cpp index 5d8570bf13..91bf841883 100644 --- a/tests/IntegrationTests/PhasorDynamics/TenGen/Classical/TenGenClassical.cpp +++ b/tests/IntegrationTests/PhasorDynamics/TenGen/Classical/TenGenClassical.cpp @@ -234,5 +234,15 @@ int main() error_set->display(); success *= error_set->total_error.max_value < 1e-4; + // Check that the generator-supported island remains solvable. + success *= branch56.setInService(false) == 0; + success *= ida.initializeSimulation(10.0) == 0; + success *= ida.runSimulation(10.1) == 0; + success *= sys.evaluateResidual() == 0; + for (index_type i = 0; i < sys.size(); ++i) + { + success *= isEqual(sys.getResidual().getData()[i], real_type{0.0}, 1e-5); + } + return success.report("TenGenClassical"); } diff --git a/tests/UnitTests/PhasorDynamics/BranchTests.hpp b/tests/UnitTests/PhasorDynamics/BranchTests.hpp index d9a34790ed..5dea2270af 100644 --- a/tests/UnitTests/PhasorDynamics/BranchTests.hpp +++ b/tests/UnitTests/PhasorDynamics/BranchTests.hpp @@ -1,6 +1,7 @@ #include #include #include +#include #include #include @@ -245,29 +246,63 @@ namespace GridKit } #ifdef GRIDKIT_ENABLE_ENZYME - TestOutcome singularJacobian() + TestOutcome outOfServiceJacobian() { - // Verifies a disabled branch keeps its Jacobian entries, all zero. + // Verify zero currents, fixed sparsity, and restoration after switching. TestStatus success = true; PhasorDynamics::Bus bus1(10.0, 20.0); PhasorDynamics::Bus bus2(30.0, 40.0); bus1.allocate(); bus2.allocate(); + bus1.initialize(); + bus2.initialize(); + for (IdxT i = 0; i < 2; ++i) + { + bus1.setVariableIndex(i, i); + bus1.setResidualIndex(i, i); + bus2.setVariableIndex(i, i + 2); + bus2.setResidualIndex(i, i + 2); + } PhasorDynamics::Branch branch(&bus1, &bus2, 2.0, 4.0, 0.2, 1.2); branch.allocate(); branch.evaluateJacobian(); - const IdxT nnz = branch.nnz(); - - success *= branch.setEnabled(false) == 0; + const IdxT nnz = branch.nnz(); + success *= nnz > 0; + auto* jacobian = branch.getCooJacobian(); + const std::vector rows(jacobian->getRowData(), jacobian->getRowData() + nnz); + const std::vector cols(jacobian->getColData(), jacobian->getColData() + nnz); + const std::vector values(jacobian->getValues(), jacobian->getValues() + nnz); + + success *= branch.setInService(false) == 0; + bus1.evaluateResidual(); + bus2.evaluateResidual(); + branch.evaluateResidual(); + success *= isEqual(bus1.Ir(), ScalarT{0.0}); + success *= isEqual(bus1.Ii(), ScalarT{0.0}); + success *= isEqual(bus2.Ir(), ScalarT{0.0}); + success *= isEqual(bus2.Ii(), ScalarT{0.0}); branch.evaluateJacobian(); success *= branch.nnz() == nnz; - const RealT* values = branch.getCooJacobian()->getValues(); + jacobian = branch.getCooJacobian(); + for (IdxT i = 0; i < nnz; ++i) + { + success *= jacobian->getRowData()[i] == rows[i]; + success *= jacobian->getColData()[i] == cols[i]; + success *= isEqual(jacobian->getValues()[i], RealT{0.0}); + } + + success *= branch.setInService(true) == 0; + branch.evaluateJacobian(); + success *= branch.nnz() == nnz; + jacobian = branch.getCooJacobian(); for (IdxT i = 0; i < nnz; ++i) { - success *= isEqual(values[i], 0.0); + success *= jacobian->getRowData()[i] == rows[i]; + success *= jacobian->getColData()[i] == cols[i]; + success *= isEqual(jacobian->getValues()[i], values[i]); } return success.report(__func__); diff --git a/tests/UnitTests/PhasorDynamics/SystemTests.hpp b/tests/UnitTests/PhasorDynamics/SystemTests.hpp index 3aeb9a7823..16b2a77167 100644 --- a/tests/UnitTests/PhasorDynamics/SystemTests.hpp +++ b/tests/UnitTests/PhasorDynamics/SystemTests.hpp @@ -222,6 +222,44 @@ namespace GridKit return success.report(__func__); } +#ifdef GRIDKIT_ENABLE_ENZYME + TestOutcome isolatedBusJacobian() + { + TestStatus success = true; + + PhasorDynamics::BusInfinite source(1.0, 0.0); + PhasorDynamics::Bus bus(1.0, 0.0); + PhasorDynamics::Branch branch(&source, &bus, 0.1, 0.2, 0.0, 0.0); + PhasorDynamics::SystemModel system; + system.addBus(&source); + system.addBus(&bus); + system.addComponent(&branch); + success *= system.allocate() == 0; + success *= system.initialize() == 0; + success *= system.evaluateJacobian() == 0; + + const IdxT nnz = system.getCsrJacobian()->getNnz(); + success *= system.size() == 2; + success *= nnz > 0; + + success *= branch.setInService(false) == 0; + success *= system.evaluateResidual() == 0; + success *= system.evaluateJacobian() == 0; + success *= isEqual(bus.Ir(), ScalarT{0.0}); + success *= isEqual(bus.Ii(), ScalarT{0.0}); + + // Both voltage variables remain, but their KCL rows are identically zero. + auto* jacobian = system.getCsrJacobian(); + success *= jacobian->getNnz() == nnz; + for (IdxT i = 0; i < nnz; ++i) + { + success *= isEqual(jacobian->getValues()[i], RealT{0.0}); + } + + return success.report(__func__); + } +#endif + TestOutcome reallocateAfterTopologyChange() { TestStatus success = true; diff --git a/tests/UnitTests/PhasorDynamics/runBranchTests.cpp b/tests/UnitTests/PhasorDynamics/runBranchTests.cpp index 985444b15d..81d5aaf916 100644 --- a/tests/UnitTests/PhasorDynamics/runBranchTests.cpp +++ b/tests/UnitTests/PhasorDynamics/runBranchTests.cpp @@ -17,7 +17,7 @@ int main() result += test.jacobian(); result += test.offNominalJacobian(); #ifdef GRIDKIT_ENABLE_ENZYME - result += test.singularJacobian(); + result += test.outOfServiceJacobian(); #endif return result.summary(); diff --git a/tests/UnitTests/PhasorDynamics/runSystemTests.cpp b/tests/UnitTests/PhasorDynamics/runSystemTests.cpp index 71cbe85a36..6a52b1b279 100644 --- a/tests/UnitTests/PhasorDynamics/runSystemTests.cpp +++ b/tests/UnitTests/PhasorDynamics/runSystemTests.cpp @@ -14,6 +14,7 @@ int main() result += test.modelVectorsAliasSystemStorage(); #ifdef GRIDKIT_ENABLE_ENZYME result += test.jacobian(); + result += test.isolatedBusJacobian(); #endif result += test.allocationError(); From d24aae9214280a34ccfe0d31cadfd940fbd5396f Mon Sep 17 00:00:00 2001 From: lukelowry Date: Tue, 6 Oct 2026 16:54:51 -0500 Subject: [PATCH 7/7] document cases of islanding --- GridKit/Model/PhasorDynamics/Branch/README.md | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/GridKit/Model/PhasorDynamics/Branch/README.md b/GridKit/Model/PhasorDynamics/Branch/README.md index 7b2b1efdfa..a2fb1a3fee 100644 --- a/GridKit/Model/PhasorDynamics/Branch/README.md +++ b/GridKit/Model/PhasorDynamics/Branch/README.md @@ -13,6 +13,11 @@ contributions are oriented entering the adjacent buses. bus 1; both shunts are added outside the $\mathbf{M}$ transformation. - The branch has no solver-owned variables; it contributes current residuals directly to the connected buses. +- Taking a branch out of service can leave bus voltages unconstrained and make + the system Jacobian singular. This can happen when an outage leaves a bus + with no other current contributions, or a floating island of series branches + without shunts. An island with generators may still be solvable. The model + does not detect or handle these singular cases. ## Model Parameters