From 3b749a8a8f66106386b0f395686f697e6176a73e Mon Sep 17 00:00:00 2001 From: lukelowry Date: Mon, 24 Aug 2026 14:37:18 -0500 Subject: [PATCH 1/2] mechnaical kernel rename --- GridKit/AutomaticDifferentiation/Enzyme/ModelWrappers.hpp | 4 ++-- GridKit/Model/PhasorDynamics/BusFault/BusFault.hpp | 2 +- GridKit/Model/PhasorDynamics/BusFault/BusFaultImpl.hpp | 6 +++--- GridKit/Model/PhasorDynamics/Controller/REECB/Reecb.hpp | 2 +- GridKit/Model/PhasorDynamics/Controller/REECB/ReecbImpl.hpp | 4 ++-- GridKit/Model/PhasorDynamics/Controller/REPCA/Repca.hpp | 2 +- GridKit/Model/PhasorDynamics/Controller/REPCA/RepcaImpl.hpp | 4 ++-- GridKit/Model/PhasorDynamics/Converter/REGCA/Regca.hpp | 2 +- GridKit/Model/PhasorDynamics/Converter/REGCA/RegcaImpl.hpp | 4 ++-- GridKit/Model/PhasorDynamics/Exciter/ESDC1A/Esdc1a.hpp | 2 +- GridKit/Model/PhasorDynamics/Exciter/ESDC1A/Esdc1aImpl.hpp | 4 ++-- GridKit/Model/PhasorDynamics/Exciter/IEEET1/Ieeet1.hpp | 2 +- GridKit/Model/PhasorDynamics/Exciter/IEEET1/Ieeet1Impl.hpp | 4 ++-- GridKit/Model/PhasorDynamics/Exciter/SEXS-PTI/SexsPti.hpp | 2 +- .../Model/PhasorDynamics/Exciter/SEXS-PTI/SexsPtiImpl.hpp | 4 ++-- GridKit/Model/PhasorDynamics/Governor/GASTPTI/GastPti.hpp | 2 +- .../Model/PhasorDynamics/Governor/GASTPTI/GastPtiImpl.hpp | 4 ++-- GridKit/Model/PhasorDynamics/Governor/HYGOV/Hygov.hpp | 2 +- GridKit/Model/PhasorDynamics/Governor/HYGOV/HygovImpl.hpp | 4 ++-- GridKit/Model/PhasorDynamics/Governor/Tgov1/Tgov1.hpp | 2 +- GridKit/Model/PhasorDynamics/Governor/Tgov1/Tgov1Impl.hpp | 4 ++-- GridKit/Model/PhasorDynamics/Load/LoadZ/LoadZ.hpp | 2 +- GridKit/Model/PhasorDynamics/Load/LoadZ/LoadZImpl.hpp | 4 ++-- GridKit/Model/PhasorDynamics/Load/LoadZIP/LoadZIP.hpp | 2 +- GridKit/Model/PhasorDynamics/Load/LoadZIP/LoadZIPImpl.hpp | 4 ++-- GridKit/Model/PhasorDynamics/Stabilizer/IEEEST/Ieeest.hpp | 2 +- .../Model/PhasorDynamics/Stabilizer/IEEEST/IeeestImpl.hpp | 4 ++-- .../PhasorDynamics/SynchronousMachine/GENROU/Genrou.hpp | 2 +- .../PhasorDynamics/SynchronousMachine/GENROU/GenrouImpl.hpp | 4 ++-- .../PhasorDynamics/SynchronousMachine/GENSAL/Gensal.hpp | 2 +- .../PhasorDynamics/SynchronousMachine/GENSAL/GensalImpl.hpp | 4 ++-- .../SynchronousMachine/GenClassical/GenClassical.hpp | 2 +- .../SynchronousMachine/GenClassical/GenClassicalImpl.hpp | 4 ++-- 33 files changed, 51 insertions(+), 51 deletions(-) diff --git a/GridKit/AutomaticDifferentiation/Enzyme/ModelWrappers.hpp b/GridKit/AutomaticDifferentiation/Enzyme/ModelWrappers.hpp index d53a653e6..6245ad76d 100644 --- a/GridKit/AutomaticDifferentiation/Enzyme/ModelWrappers.hpp +++ b/GridKit/AutomaticDifferentiation/Enzyme/ModelWrappers.hpp @@ -63,7 +63,7 @@ namespace GridKit const ScalarT* wb, ScalarT* f) { - model->evaluateInternalResidual(y, yp, wb, f); + model->evaluateInternalResidualKernel(y, yp, wb, f); } }; @@ -91,7 +91,7 @@ namespace GridKit const ScalarT* ws, ScalarT* f) { - model->evaluateInternalResidual(y, yp, wb, ws, f); + model->evaluateInternalResidualKernel(y, yp, wb, ws, f); } }; diff --git a/GridKit/Model/PhasorDynamics/BusFault/BusFault.hpp b/GridKit/Model/PhasorDynamics/BusFault/BusFault.hpp index 405f78e6c..dfc0acc23 100644 --- a/GridKit/Model/PhasorDynamics/BusFault/BusFault.hpp +++ b/GridKit/Model/PhasorDynamics/BusFault/BusFault.hpp @@ -108,7 +108,7 @@ namespace GridKit public: __attribute__((always_inline)) inline int evaluateBusResidual( const ScalarT*, const ScalarT*, const ScalarT*, ScalarT*); - __attribute__((always_inline)) inline int evaluateInternalResidual( + __attribute__((always_inline)) inline int evaluateInternalResidualKernel( const ScalarT*, const ScalarT*, const ScalarT*, ScalarT*); private: diff --git a/GridKit/Model/PhasorDynamics/BusFault/BusFaultImpl.hpp b/GridKit/Model/PhasorDynamics/BusFault/BusFaultImpl.hpp index 89d121246..7dbe82774 100644 --- a/GridKit/Model/PhasorDynamics/BusFault/BusFaultImpl.hpp +++ b/GridKit/Model/PhasorDynamics/BusFault/BusFaultImpl.hpp @@ -234,7 +234,7 @@ namespace GridKit * */ template - __attribute__((always_inline)) int BusFault::evaluateInternalResidual( + __attribute__((always_inline)) int BusFault::evaluateInternalResidualKernel( const ScalarT* y, [[maybe_unused]] const ScalarT* yp, const ScalarT* wb, @@ -268,7 +268,7 @@ namespace GridKit const auto* yp = yp_.getData(); auto* f = f_.getData(); auto* h = h_.getData(); - evaluateInternalResidual(y, yp, wb, f); + evaluateInternalResidualKernel(y, yp, wb, f); evaluateBusResidual(y, yp, wb, h); Ir() += h[0]; Ii() += h[1]; @@ -284,7 +284,7 @@ namespace GridKit const auto* y = y_.getData(); const auto* yp = yp_.getData(); auto* f = f_.getData(); - evaluateInternalResidual(y, yp, wb, f); + evaluateInternalResidualKernel(y, yp, wb, f); } f_.setDataUpdated(); diff --git a/GridKit/Model/PhasorDynamics/Controller/REECB/Reecb.hpp b/GridKit/Model/PhasorDynamics/Controller/REECB/Reecb.hpp index 6ec4bb77c..afdb080ce 100644 --- a/GridKit/Model/PhasorDynamics/Controller/REECB/Reecb.hpp +++ b/GridKit/Model/PhasorDynamics/Controller/REECB/Reecb.hpp @@ -130,7 +130,7 @@ namespace GridKit const Model::VariableMonitorBase* getMonitor() const override; - [[gnu::always_inline]] inline int evaluateInternalResidual( + [[gnu::always_inline]] inline int evaluateInternalResidualKernel( const ScalarT* y, const ScalarT* yp, const ScalarT* wb, diff --git a/GridKit/Model/PhasorDynamics/Controller/REECB/ReecbImpl.hpp b/GridKit/Model/PhasorDynamics/Controller/REECB/ReecbImpl.hpp index 2ed478014..c4b392420 100644 --- a/GridKit/Model/PhasorDynamics/Controller/REECB/ReecbImpl.hpp +++ b/GridKit/Model/PhasorDynamics/Controller/REECB/ReecbImpl.hpp @@ -846,7 +846,7 @@ namespace GridKit wb[0] = Vr(); wb[1] = Vi(); - evaluateInternalResidual(y_.getData(), yp_.getData(), wb, ws, f_.getData()); + evaluateInternalResidualKernel(y_.getData(), yp_.getData(), wb, ws, f_.getData()); f_.setDataUpdated(); return 0; } @@ -876,7 +876,7 @@ namespace GridKit */ template [[gnu::always_inline]] inline int - Reecb::evaluateInternalResidual( + Reecb::evaluateInternalResidualKernel( const ScalarT* y, const ScalarT* yp, const ScalarT* wb, diff --git a/GridKit/Model/PhasorDynamics/Controller/REPCA/Repca.hpp b/GridKit/Model/PhasorDynamics/Controller/REPCA/Repca.hpp index 16f9af8de..ba83db70f 100644 --- a/GridKit/Model/PhasorDynamics/Controller/REPCA/Repca.hpp +++ b/GridKit/Model/PhasorDynamics/Controller/REPCA/Repca.hpp @@ -135,7 +135,7 @@ namespace GridKit const Model::VariableMonitorBase* getMonitor() const override; - [[gnu::always_inline]] inline int evaluateInternalResidual( + [[gnu::always_inline]] inline int evaluateInternalResidualKernel( const ScalarT* y, const ScalarT* yp, const ScalarT* wb, diff --git a/GridKit/Model/PhasorDynamics/Controller/REPCA/RepcaImpl.hpp b/GridKit/Model/PhasorDynamics/Controller/REPCA/RepcaImpl.hpp index df9da208a..30016f60e 100644 --- a/GridKit/Model/PhasorDynamics/Controller/REPCA/RepcaImpl.hpp +++ b/GridKit/Model/PhasorDynamics/Controller/REPCA/RepcaImpl.hpp @@ -664,7 +664,7 @@ namespace GridKit const auto* yp = yp_.getData(); auto* f = f_.getData(); - evaluateInternalResidual(y, yp, wb, ws, f); + evaluateInternalResidualKernel(y, yp, wb, ws, f); f_.setDataUpdated(); return 0; } @@ -697,7 +697,7 @@ namespace GridKit */ template [[gnu::always_inline]] inline int - Repca::evaluateInternalResidual( + Repca::evaluateInternalResidualKernel( const ScalarT* y, const ScalarT* yp, const ScalarT* wb, diff --git a/GridKit/Model/PhasorDynamics/Converter/REGCA/Regca.hpp b/GridKit/Model/PhasorDynamics/Converter/REGCA/Regca.hpp index bb3ab989c..1345f0325 100644 --- a/GridKit/Model/PhasorDynamics/Converter/REGCA/Regca.hpp +++ b/GridKit/Model/PhasorDynamics/Converter/REGCA/Regca.hpp @@ -118,7 +118,7 @@ namespace GridKit const Model::VariableMonitorBase* getMonitor() const override; - __attribute__((always_inline)) inline int evaluateInternalResidual( + __attribute__((always_inline)) inline int evaluateInternalResidualKernel( const ScalarT* y, const ScalarT* yp, const ScalarT* wb, const ScalarT* ws, ScalarT* f); __attribute__((always_inline)) inline int evaluateBusResidual( diff --git a/GridKit/Model/PhasorDynamics/Converter/REGCA/RegcaImpl.hpp b/GridKit/Model/PhasorDynamics/Converter/REGCA/RegcaImpl.hpp index 233a5be86..b4804c38c 100644 --- a/GridKit/Model/PhasorDynamics/Converter/REGCA/RegcaImpl.hpp +++ b/GridKit/Model/PhasorDynamics/Converter/REGCA/RegcaImpl.hpp @@ -562,7 +562,7 @@ namespace GridKit */ template __attribute__((always_inline)) inline int - Regca::evaluateInternalResidual( + Regca::evaluateInternalResidualKernel( const ScalarT* y, const ScalarT* yp, const ScalarT* wb, @@ -707,7 +707,7 @@ namespace GridKit auto* f = f_.getData(); auto* h = h_.getData(); - evaluateInternalResidual(y, yp, wb, ws, f); + evaluateInternalResidualKernel(y, yp, wb, ws, f); evaluateBusResidual(y, yp, wb, h); f_.setDataUpdated(); diff --git a/GridKit/Model/PhasorDynamics/Exciter/ESDC1A/Esdc1a.hpp b/GridKit/Model/PhasorDynamics/Exciter/ESDC1A/Esdc1a.hpp index 6d70cb1a9..6e5451857 100644 --- a/GridKit/Model/PhasorDynamics/Exciter/ESDC1A/Esdc1a.hpp +++ b/GridKit/Model/PhasorDynamics/Exciter/ESDC1A/Esdc1a.hpp @@ -113,7 +113,7 @@ namespace GridKit const Model::VariableMonitorBase* getMonitor() const override; - __attribute__((always_inline)) inline int evaluateInternalResidual( + __attribute__((always_inline)) inline int evaluateInternalResidualKernel( const ScalarT* y, const ScalarT* yp, const ScalarT* wb, diff --git a/GridKit/Model/PhasorDynamics/Exciter/ESDC1A/Esdc1aImpl.hpp b/GridKit/Model/PhasorDynamics/Exciter/ESDC1A/Esdc1aImpl.hpp index a4af51239..8a0a1a2e0 100644 --- a/GridKit/Model/PhasorDynamics/Exciter/ESDC1A/Esdc1aImpl.hpp +++ b/GridKit/Model/PhasorDynamics/Exciter/ESDC1A/Esdc1aImpl.hpp @@ -498,7 +498,7 @@ namespace GridKit const auto* yp = yp_.getData(); auto* f = f_.getData(); - evaluateInternalResidual(y, yp, wb, ws, f); + evaluateInternalResidualKernel(y, yp, wb, ws, f); f_.setDataUpdated(); return 0; } @@ -534,7 +534,7 @@ namespace GridKit */ template __attribute__((always_inline)) inline int - Esdc1a::evaluateInternalResidual( + Esdc1a::evaluateInternalResidualKernel( const ScalarT* y, const ScalarT* yp, const ScalarT* wb, diff --git a/GridKit/Model/PhasorDynamics/Exciter/IEEET1/Ieeet1.hpp b/GridKit/Model/PhasorDynamics/Exciter/IEEET1/Ieeet1.hpp index f45eef4f0..ed6f45e2b 100644 --- a/GridKit/Model/PhasorDynamics/Exciter/IEEET1/Ieeet1.hpp +++ b/GridKit/Model/PhasorDynamics/Exciter/IEEET1/Ieeet1.hpp @@ -101,7 +101,7 @@ namespace GridKit const Model::VariableMonitorBase* getMonitor() const override; - __attribute__((always_inline)) inline int evaluateInternalResidual( + __attribute__((always_inline)) inline int evaluateInternalResidualKernel( const ScalarT*, const ScalarT*, const ScalarT*, const ScalarT*, ScalarT*); private: diff --git a/GridKit/Model/PhasorDynamics/Exciter/IEEET1/Ieeet1Impl.hpp b/GridKit/Model/PhasorDynamics/Exciter/IEEET1/Ieeet1Impl.hpp index 6be4cf1eb..31424f0eb 100644 --- a/GridKit/Model/PhasorDynamics/Exciter/IEEET1/Ieeet1Impl.hpp +++ b/GridKit/Model/PhasorDynamics/Exciter/IEEET1/Ieeet1Impl.hpp @@ -368,7 +368,7 @@ namespace GridKit * */ template - __attribute__((always_inline)) inline int Ieeet1::evaluateInternalResidual( + __attribute__((always_inline)) inline int Ieeet1::evaluateInternalResidualKernel( const ScalarT* y, const ScalarT* yp, const ScalarT* wb, @@ -472,7 +472,7 @@ namespace GridKit const auto* y = y_.getData(); const auto* yp = yp_.getData(); auto* f = f_.getData(); - evaluateInternalResidual(y, yp, wb, ws, f); + evaluateInternalResidualKernel(y, yp, wb, ws, f); f_.setDataUpdated(); diff --git a/GridKit/Model/PhasorDynamics/Exciter/SEXS-PTI/SexsPti.hpp b/GridKit/Model/PhasorDynamics/Exciter/SEXS-PTI/SexsPti.hpp index fbc3687e1..24d35a911 100644 --- a/GridKit/Model/PhasorDynamics/Exciter/SEXS-PTI/SexsPti.hpp +++ b/GridKit/Model/PhasorDynamics/Exciter/SEXS-PTI/SexsPti.hpp @@ -88,7 +88,7 @@ namespace GridKit const Model::VariableMonitorBase* getMonitor() const override; - __attribute__((always_inline)) inline int evaluateInternalResidual( + __attribute__((always_inline)) inline int evaluateInternalResidualKernel( const ScalarT*, const ScalarT*, const ScalarT*, const ScalarT*, ScalarT*); private: diff --git a/GridKit/Model/PhasorDynamics/Exciter/SEXS-PTI/SexsPtiImpl.hpp b/GridKit/Model/PhasorDynamics/Exciter/SEXS-PTI/SexsPtiImpl.hpp index 5c9b035d2..04fa9aa13 100644 --- a/GridKit/Model/PhasorDynamics/Exciter/SEXS-PTI/SexsPtiImpl.hpp +++ b/GridKit/Model/PhasorDynamics/Exciter/SEXS-PTI/SexsPtiImpl.hpp @@ -258,7 +258,7 @@ namespace GridKit } template - __attribute__((always_inline)) inline int SexsPti::evaluateInternalResidual( + __attribute__((always_inline)) inline int SexsPti::evaluateInternalResidualKernel( const ScalarT* y, const ScalarT* yp, const ScalarT* wb, @@ -326,7 +326,7 @@ namespace GridKit const auto* y = y_.getData(); const auto* yp = yp_.getData(); auto* f = f_.getData(); - evaluateInternalResidual(y, yp, wb, ws, f); + evaluateInternalResidualKernel(y, yp, wb, ws, f); f_.setDataUpdated(); diff --git a/GridKit/Model/PhasorDynamics/Governor/GASTPTI/GastPti.hpp b/GridKit/Model/PhasorDynamics/Governor/GASTPTI/GastPti.hpp index 300218d25..51dcbe443 100644 --- a/GridKit/Model/PhasorDynamics/Governor/GASTPTI/GastPti.hpp +++ b/GridKit/Model/PhasorDynamics/Governor/GASTPTI/GastPti.hpp @@ -102,7 +102,7 @@ namespace GridKit const Model::VariableMonitorBase* getMonitor() const override; - [[gnu::always_inline]] inline int evaluateInternalResidual( + [[gnu::always_inline]] inline int evaluateInternalResidualKernel( const ScalarT* y, const ScalarT* yp, const ScalarT* wb, diff --git a/GridKit/Model/PhasorDynamics/Governor/GASTPTI/GastPtiImpl.hpp b/GridKit/Model/PhasorDynamics/Governor/GASTPTI/GastPtiImpl.hpp index e35cc8a2a..5d6d9e8a7 100644 --- a/GridKit/Model/PhasorDynamics/Governor/GASTPTI/GastPtiImpl.hpp +++ b/GridKit/Model/PhasorDynamics/Governor/GASTPTI/GastPtiImpl.hpp @@ -477,7 +477,7 @@ namespace GridKit const auto* yp = yp_.getData(); auto* f = f_.getData(); - evaluateInternalResidual(y, yp, nullptr, ws, f); + evaluateInternalResidualKernel(y, yp, nullptr, ws, f); f_.setDataUpdated(); return 0; } @@ -514,7 +514,7 @@ namespace GridKit */ template [[gnu::always_inline]] inline int - GastPti::evaluateInternalResidual( + GastPti::evaluateInternalResidualKernel( const ScalarT* y, const ScalarT* yp, const ScalarT* wb, diff --git a/GridKit/Model/PhasorDynamics/Governor/HYGOV/Hygov.hpp b/GridKit/Model/PhasorDynamics/Governor/HYGOV/Hygov.hpp index 10ed07c26..6c795e10c 100644 --- a/GridKit/Model/PhasorDynamics/Governor/HYGOV/Hygov.hpp +++ b/GridKit/Model/PhasorDynamics/Governor/HYGOV/Hygov.hpp @@ -113,7 +113,7 @@ namespace GridKit const Model::VariableMonitorBase* getMonitor() const override; - __attribute__((always_inline)) inline int evaluateInternalResidual( + __attribute__((always_inline)) inline int evaluateInternalResidualKernel( const ScalarT* y, const ScalarT* yp, const ScalarT* wb, diff --git a/GridKit/Model/PhasorDynamics/Governor/HYGOV/HygovImpl.hpp b/GridKit/Model/PhasorDynamics/Governor/HYGOV/HygovImpl.hpp index 71ada99e0..82777a915 100644 --- a/GridKit/Model/PhasorDynamics/Governor/HYGOV/HygovImpl.hpp +++ b/GridKit/Model/PhasorDynamics/Governor/HYGOV/HygovImpl.hpp @@ -518,7 +518,7 @@ namespace GridKit const auto* yp = yp_.getData(); auto* f = f_.getData(); - evaluateInternalResidual(y, yp, nullptr, ws, f); + evaluateInternalResidualKernel(y, yp, nullptr, ws, f); f_.setDataUpdated(); return 0; } @@ -553,7 +553,7 @@ namespace GridKit */ template __attribute__((always_inline)) inline int - Hygov::evaluateInternalResidual( + Hygov::evaluateInternalResidualKernel( const ScalarT* y, const ScalarT* yp, [[maybe_unused]] const ScalarT* wb, diff --git a/GridKit/Model/PhasorDynamics/Governor/Tgov1/Tgov1.hpp b/GridKit/Model/PhasorDynamics/Governor/Tgov1/Tgov1.hpp index dcc5e147e..a4e97b53e 100644 --- a/GridKit/Model/PhasorDynamics/Governor/Tgov1/Tgov1.hpp +++ b/GridKit/Model/PhasorDynamics/Governor/Tgov1/Tgov1.hpp @@ -93,7 +93,7 @@ namespace GridKit } public: - __attribute__((always_inline)) inline int evaluateInternalResidual( + __attribute__((always_inline)) inline int evaluateInternalResidualKernel( const ScalarT*, const ScalarT*, const ScalarT*, const ScalarT*, ScalarT*); private: diff --git a/GridKit/Model/PhasorDynamics/Governor/Tgov1/Tgov1Impl.hpp b/GridKit/Model/PhasorDynamics/Governor/Tgov1/Tgov1Impl.hpp index 01843aa0f..0117280d3 100644 --- a/GridKit/Model/PhasorDynamics/Governor/Tgov1/Tgov1Impl.hpp +++ b/GridKit/Model/PhasorDynamics/Governor/Tgov1/Tgov1Impl.hpp @@ -353,7 +353,7 @@ namespace GridKit * */ template - __attribute__((always_inline)) inline int Tgov1::evaluateInternalResidual( + __attribute__((always_inline)) inline int Tgov1::evaluateInternalResidualKernel( const ScalarT* y, const ScalarT* yp, [[maybe_unused]] const ScalarT* wb, @@ -416,7 +416,7 @@ namespace GridKit const auto* y = y_.getData(); const auto* yp = yp_.getData(); auto* f = f_.getData(); - evaluateInternalResidual(y, yp, nullptr, ws, f); + evaluateInternalResidualKernel(y, yp, nullptr, ws, f); f_.setDataUpdated(); diff --git a/GridKit/Model/PhasorDynamics/Load/LoadZ/LoadZ.hpp b/GridKit/Model/PhasorDynamics/Load/LoadZ/LoadZ.hpp index c27866a38..11dab4737 100644 --- a/GridKit/Model/PhasorDynamics/Load/LoadZ/LoadZ.hpp +++ b/GridKit/Model/PhasorDynamics/Load/LoadZ/LoadZ.hpp @@ -103,7 +103,7 @@ namespace GridKit public: __attribute__((always_inline)) inline int evaluateBusResidual( const ScalarT*, const ScalarT*, const ScalarT*, ScalarT*); - __attribute__((always_inline)) inline int evaluateInternalResidual( + __attribute__((always_inline)) inline int evaluateInternalResidualKernel( const ScalarT*, const ScalarT*, const ScalarT*, ScalarT*); private: diff --git a/GridKit/Model/PhasorDynamics/Load/LoadZ/LoadZImpl.hpp b/GridKit/Model/PhasorDynamics/Load/LoadZ/LoadZImpl.hpp index b3e24fc8a..2839ea966 100644 --- a/GridKit/Model/PhasorDynamics/Load/LoadZ/LoadZImpl.hpp +++ b/GridKit/Model/PhasorDynamics/Load/LoadZ/LoadZImpl.hpp @@ -196,7 +196,7 @@ namespace GridKit * */ template - __attribute__((always_inline)) int LoadZ::evaluateInternalResidual( + __attribute__((always_inline)) int LoadZ::evaluateInternalResidualKernel( const ScalarT* y, [[maybe_unused]] const ScalarT* yp, const ScalarT* wb, @@ -227,7 +227,7 @@ namespace GridKit const auto* yp = yp_.getData(); auto* f = f_.getData(); auto* h = h_.getData(); - evaluateInternalResidual(y, yp, wb, f); + evaluateInternalResidualKernel(y, yp, wb, f); evaluateBusResidual(y, yp, wb, h); Ir() += h[0]; Ii() += h[1]; diff --git a/GridKit/Model/PhasorDynamics/Load/LoadZIP/LoadZIP.hpp b/GridKit/Model/PhasorDynamics/Load/LoadZIP/LoadZIP.hpp index 737cba8c7..459610ed6 100644 --- a/GridKit/Model/PhasorDynamics/Load/LoadZIP/LoadZIP.hpp +++ b/GridKit/Model/PhasorDynamics/Load/LoadZIP/LoadZIP.hpp @@ -116,7 +116,7 @@ namespace GridKit public: __attribute__((always_inline)) inline int evaluateBusResidual( const ScalarT*, const ScalarT*, const ScalarT*, ScalarT*); - __attribute__((always_inline)) inline int evaluateInternalResidual( + __attribute__((always_inline)) inline int evaluateInternalResidualKernel( const ScalarT*, const ScalarT*, const ScalarT*, ScalarT*); private: diff --git a/GridKit/Model/PhasorDynamics/Load/LoadZIP/LoadZIPImpl.hpp b/GridKit/Model/PhasorDynamics/Load/LoadZIP/LoadZIPImpl.hpp index 929cfb746..e71dfe857 100644 --- a/GridKit/Model/PhasorDynamics/Load/LoadZIP/LoadZIPImpl.hpp +++ b/GridKit/Model/PhasorDynamics/Load/LoadZIP/LoadZIPImpl.hpp @@ -228,7 +228,7 @@ namespace GridKit const auto* yp = yp_.getData(); auto* f = f_.getData(); auto* h = h_.getData(); - evaluateInternalResidual(y, yp, wb, f); + evaluateInternalResidualKernel(y, yp, wb, f); evaluateBusResidual(y, yp, wb, h); Ir() += h[0]; Ii() += h[1]; @@ -246,7 +246,7 @@ namespace GridKit * */ template - __attribute__((always_inline)) int LoadZIP::evaluateInternalResidual( + __attribute__((always_inline)) int LoadZIP::evaluateInternalResidualKernel( const ScalarT* y, [[maybe_unused]] const ScalarT* yp, const ScalarT* wb, diff --git a/GridKit/Model/PhasorDynamics/Stabilizer/IEEEST/Ieeest.hpp b/GridKit/Model/PhasorDynamics/Stabilizer/IEEEST/Ieeest.hpp index 448e0144c..e921d9e0a 100644 --- a/GridKit/Model/PhasorDynamics/Stabilizer/IEEEST/Ieeest.hpp +++ b/GridKit/Model/PhasorDynamics/Stabilizer/IEEEST/Ieeest.hpp @@ -94,7 +94,7 @@ namespace GridKit const Model::VariableMonitorBase* getMonitor() const override; - __attribute__((always_inline)) inline int evaluateInternalResidual( + __attribute__((always_inline)) inline int evaluateInternalResidualKernel( const ScalarT*, const ScalarT*, const ScalarT*, diff --git a/GridKit/Model/PhasorDynamics/Stabilizer/IEEEST/IeeestImpl.hpp b/GridKit/Model/PhasorDynamics/Stabilizer/IEEEST/IeeestImpl.hpp index 2bc836363..5382fa1cd 100644 --- a/GridKit/Model/PhasorDynamics/Stabilizer/IEEEST/IeeestImpl.hpp +++ b/GridKit/Model/PhasorDynamics/Stabilizer/IEEEST/IeeestImpl.hpp @@ -300,7 +300,7 @@ namespace GridKit } template - __attribute__((always_inline)) inline int Ieeest::evaluateInternalResidual( + __attribute__((always_inline)) inline int Ieeest::evaluateInternalResidualKernel( const ScalarT* y, const ScalarT* yp, [[maybe_unused]] const ScalarT* wb, @@ -364,7 +364,7 @@ namespace GridKit const auto* y = y_.getData(); const auto* yp = yp_.getData(); auto* f = f_.getData(); - evaluateInternalResidual(y, yp, nullptr, ws, f); + evaluateInternalResidualKernel(y, yp, nullptr, ws, f); f_.setDataUpdated(); return 0; diff --git a/GridKit/Model/PhasorDynamics/SynchronousMachine/GENROU/Genrou.hpp b/GridKit/Model/PhasorDynamics/SynchronousMachine/GENROU/Genrou.hpp index e02704ca5..af088297b 100644 --- a/GridKit/Model/PhasorDynamics/SynchronousMachine/GENROU/Genrou.hpp +++ b/GridKit/Model/PhasorDynamics/SynchronousMachine/GENROU/Genrou.hpp @@ -164,7 +164,7 @@ namespace GridKit } public: - __attribute__((always_inline)) inline int evaluateInternalResidual( + __attribute__((always_inline)) inline int evaluateInternalResidualKernel( const ScalarT*, const ScalarT*, const ScalarT*, const ScalarT*, ScalarT*); __attribute__((always_inline)) inline int evaluateBusResidual( const ScalarT*, const ScalarT*, const ScalarT*, ScalarT*); diff --git a/GridKit/Model/PhasorDynamics/SynchronousMachine/GENROU/GenrouImpl.hpp b/GridKit/Model/PhasorDynamics/SynchronousMachine/GENROU/GenrouImpl.hpp index c052fec4f..7556406cf 100644 --- a/GridKit/Model/PhasorDynamics/SynchronousMachine/GENROU/GenrouImpl.hpp +++ b/GridKit/Model/PhasorDynamics/SynchronousMachine/GENROU/GenrouImpl.hpp @@ -503,7 +503,7 @@ namespace GridKit * */ template - __attribute__((always_inline)) inline int Genrou::evaluateInternalResidual( + __attribute__((always_inline)) inline int Genrou::evaluateInternalResidualKernel( const ScalarT* y, const ScalarT* yp, const ScalarT* wb, @@ -627,7 +627,7 @@ namespace GridKit const auto* yp = yp_.getData(); auto* f = f_.getData(); auto* h = h_.getData(); - evaluateInternalResidual(y, yp, wb, ws, f); + evaluateInternalResidualKernel(y, yp, wb, ws, f); evaluateBusResidual(y, yp, wb, h); // Genrou contribution to bus algebraic equations diff --git a/GridKit/Model/PhasorDynamics/SynchronousMachine/GENSAL/Gensal.hpp b/GridKit/Model/PhasorDynamics/SynchronousMachine/GENSAL/Gensal.hpp index cf3d379c6..720409dc0 100644 --- a/GridKit/Model/PhasorDynamics/SynchronousMachine/GENSAL/Gensal.hpp +++ b/GridKit/Model/PhasorDynamics/SynchronousMachine/GENSAL/Gensal.hpp @@ -130,7 +130,7 @@ namespace GridKit } public: - __attribute__((always_inline)) inline int evaluateInternalResidual( + __attribute__((always_inline)) inline int evaluateInternalResidualKernel( const ScalarT*, const ScalarT*, const ScalarT*, const ScalarT*, ScalarT*); __attribute__((always_inline)) inline int evaluateBusResidual( const ScalarT*, const ScalarT*, const ScalarT*, ScalarT*); diff --git a/GridKit/Model/PhasorDynamics/SynchronousMachine/GENSAL/GensalImpl.hpp b/GridKit/Model/PhasorDynamics/SynchronousMachine/GENSAL/GensalImpl.hpp index 8435bdb71..a9aea09dc 100644 --- a/GridKit/Model/PhasorDynamics/SynchronousMachine/GENSAL/GensalImpl.hpp +++ b/GridKit/Model/PhasorDynamics/SynchronousMachine/GENSAL/GensalImpl.hpp @@ -363,7 +363,7 @@ namespace GridKit * */ template - __attribute__((always_inline)) inline int Gensal::evaluateInternalResidual( + __attribute__((always_inline)) inline int Gensal::evaluateInternalResidualKernel( const ScalarT* y, const ScalarT* yp, const ScalarT* wb, @@ -480,7 +480,7 @@ namespace GridKit const auto* yp = yp_.getData(); auto* f = f_.getData(); auto* h = h_.getData(); - evaluateInternalResidual(y, yp, wb, ws, f); + evaluateInternalResidualKernel(y, yp, wb, ws, f); evaluateBusResidual(y, yp, wb, h); // Gensal contribution to bus algebraic equations diff --git a/GridKit/Model/PhasorDynamics/SynchronousMachine/GenClassical/GenClassical.hpp b/GridKit/Model/PhasorDynamics/SynchronousMachine/GenClassical/GenClassical.hpp index ced9a652e..08eb01539 100644 --- a/GridKit/Model/PhasorDynamics/SynchronousMachine/GenClassical/GenClassical.hpp +++ b/GridKit/Model/PhasorDynamics/SynchronousMachine/GenClassical/GenClassical.hpp @@ -119,7 +119,7 @@ namespace GridKit } public: - __attribute__((always_inline)) inline int evaluateInternalResidual( + __attribute__((always_inline)) inline int evaluateInternalResidualKernel( const ScalarT*, const ScalarT*, const ScalarT*, const ScalarT*, ScalarT*); __attribute__((always_inline)) inline int evaluateBusResidual( const ScalarT*, const ScalarT*, const ScalarT*, ScalarT*); diff --git a/GridKit/Model/PhasorDynamics/SynchronousMachine/GenClassical/GenClassicalImpl.hpp b/GridKit/Model/PhasorDynamics/SynchronousMachine/GenClassical/GenClassicalImpl.hpp index 0c3b12cf1..d0aae2db5 100644 --- a/GridKit/Model/PhasorDynamics/SynchronousMachine/GenClassical/GenClassicalImpl.hpp +++ b/GridKit/Model/PhasorDynamics/SynchronousMachine/GenClassical/GenClassicalImpl.hpp @@ -286,7 +286,7 @@ namespace GridKit * */ template - __attribute__((always_inline)) inline int GenClassical::evaluateInternalResidual( + __attribute__((always_inline)) inline int GenClassical::evaluateInternalResidualKernel( const ScalarT* y, const ScalarT* yp, const ScalarT* wb, @@ -376,7 +376,7 @@ namespace GridKit const auto* yp = yp_.getData(); auto* f = f_.getData(); auto* h = h_.getData(); - evaluateInternalResidual(y, yp, wb, ws, f); + evaluateInternalResidualKernel(y, yp, wb, ws, f); evaluateBusResidual(y, yp, wb, h); Ir() += h[0]; From 789ff383fba78fe40f6ad9b6a2bff3f12578e754 Mon Sep 17 00:00:00 2001 From: lukelowry Date: Mon, 24 Aug 2026 14:47:28 -0500 Subject: [PATCH 2/2] System external/residual calls --- GridKit/Model/PhasorDynamics/Component.hpp | 20 +++++++++ GridKit/Model/PhasorDynamics/SystemModel.hpp | 2 + .../Model/PhasorDynamics/SystemModelImpl.hpp | 43 +++++++++++++------ .../UnitTests/PhasorDynamics/SystemTests.hpp | 41 ++++++++++++++++-- 4 files changed, 90 insertions(+), 16 deletions(-) diff --git a/GridKit/Model/PhasorDynamics/Component.hpp b/GridKit/Model/PhasorDynamics/Component.hpp index a4bf74c7b..f9f068ebe 100644 --- a/GridKit/Model/PhasorDynamics/Component.hpp +++ b/GridKit/Model/PhasorDynamics/Component.hpp @@ -63,6 +63,26 @@ namespace GridKit virtual int verify() const = 0; + /** + * @brief Evaluate this component's internal residual. + * + * The default preserves the existing single-phase residual evaluation + * for components that have not yet separated internal and external + * residuals. + */ + virtual int evaluateInternalResidual() + { + return this->evaluateResidual(); + } + + /** + * @brief Evaluate contributions to residuals owned elsewhere. + */ + virtual int evaluateExternalResidual() + { + return 0; + } + IdxT size() override final { return size_; diff --git a/GridKit/Model/PhasorDynamics/SystemModel.hpp b/GridKit/Model/PhasorDynamics/SystemModel.hpp index dc0ed0b7b..7217b546f 100644 --- a/GridKit/Model/PhasorDynamics/SystemModel.hpp +++ b/GridKit/Model/PhasorDynamics/SystemModel.hpp @@ -91,6 +91,8 @@ namespace GridKit int tagDifferentiable() override; int setAbsoluteTolerance(RealT rel_tol) override; + int evaluateInternalResidual() override; + int evaluateExternalResidual() override; int evaluateResidual() override; int evaluateJacobian() override; diff --git a/GridKit/Model/PhasorDynamics/SystemModelImpl.hpp b/GridKit/Model/PhasorDynamics/SystemModelImpl.hpp index 598f1d23d..c5dd4d49f 100644 --- a/GridKit/Model/PhasorDynamics/SystemModelImpl.hpp +++ b/GridKit/Model/PhasorDynamics/SystemModelImpl.hpp @@ -679,20 +679,13 @@ namespace GridKit } /** - * @brief Compute system residual vector + * @brief Evaluate bus residuals and component internal residuals. * - * Buses and components read and write their bound system-vector slices - * directly. - * - * @warning Residuals must be computed for buses, before component - * residuals are computed. Buses own residuals for currents - * Ir and Ii, but the contributions to these residuals come - * from components. Buses assign their residual values, while components - * add to those values by in-place adition. This is why (for now) bus - * residuals need to be computed first. + * Buses assign their residuals before components evaluate so that legacy + * component contributions continue to accumulate correctly. */ template - int SystemModel::evaluateResidual() + int SystemModel::evaluateInternalResidual() { for (const auto& bus : buses_) { @@ -701,9 +694,35 @@ namespace GridKit for (const auto& component : components_) { - component->evaluateResidual(); + component->evaluateInternalResidual(); + } + + return 0; + } + + /** + * @brief Evaluate contributions to residuals owned elsewhere. + */ + template + int SystemModel::evaluateExternalResidual() + { + for (const auto& component : components_) + { + component->evaluateExternalResidual(); } + return 0; + } + + /** + * @brief Compute and assemble the system residual vector. + */ + template + int SystemModel::evaluateResidual() + { + evaluateInternalResidual(); + evaluateExternalResidual(); + f_.setDataUpdated(); return 0; diff --git a/tests/UnitTests/PhasorDynamics/SystemTests.hpp b/tests/UnitTests/PhasorDynamics/SystemTests.hpp index b7a1b433d..e1c9fae28 100644 --- a/tests/UnitTests/PhasorDynamics/SystemTests.hpp +++ b/tests/UnitTests/PhasorDynamics/SystemTests.hpp @@ -99,6 +99,27 @@ namespace GridKit } }; + class ExternalResidualBranch final : public PhasorDynamics::Branch + { + public: + using BranchT = PhasorDynamics::Branch; + using BranchT::BranchT; + + int evaluateExternalResidual() override final + { + ++external_residual_evaluations_; + return 0; + } + + std::size_t externalResidualEvaluations() const + { + return external_residual_evaluations_; + } + + private: + std::size_t external_residual_evaluations_{0}; + }; + public: SystemTests() = default; ~SystemTests() = default; @@ -207,12 +228,24 @@ namespace GridKit PhasorDynamics::Bus bus2(Vr2, Vi2); system.addBus(&bus2); - PhasorDynamics::Branch branch(&bus1, &bus2, R, X, G, B); + ExternalResidualBranch branch(&bus1, &bus2, R, X, G, B); system.addComponent(&branch); - system.allocate(); - system.initialize(); - system.evaluateResidual(); + success *= system.allocate() == 0; + success *= system.initialize() == 0; + + const auto external_residual_evaluations = branch.externalResidualEvaluations(); + + success *= system.evaluateResidual() == 0; + success *= branch.externalResidualEvaluations() == external_residual_evaluations + 1; + + success *= isEqual(bus1.Ir(), Ir1); + success *= isEqual(bus1.Ii(), Ii1); + success *= isEqual(bus2.Ir(), Ir2); + success *= isEqual(bus2.Ii(), Ii2); + + success *= system.evaluateResidual() == 0; + success *= branch.externalResidualEvaluations() == external_residual_evaluations + 2; success *= isEqual(bus1.Ir(), Ir1); success *= isEqual(bus1.Ii(), Ii1);