From 8dcd69f8ce1cf11c014f7f508bd7d9fc74558bcd 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 39d825a8b..e1b595252 100644 --- a/GridKit/Model/PhasorDynamics/BusFault/BusFaultImpl.hpp +++ b/GridKit/Model/PhasorDynamics/BusFault/BusFaultImpl.hpp @@ -228,7 +228,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, @@ -262,7 +262,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]; @@ -278,7 +278,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 302361cbe..ca38b43b4 100644 --- a/GridKit/Model/PhasorDynamics/Controller/REECB/Reecb.hpp +++ b/GridKit/Model/PhasorDynamics/Controller/REECB/Reecb.hpp @@ -131,7 +131,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 0b8fd4615..53ff599fe 100644 --- a/GridKit/Model/PhasorDynamics/Controller/REECB/ReecbImpl.hpp +++ b/GridKit/Model/PhasorDynamics/Controller/REECB/ReecbImpl.hpp @@ -842,7 +842,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; } @@ -872,7 +872,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 dbfd8c6bc..11c18e42c 100644 --- a/GridKit/Model/PhasorDynamics/Controller/REPCA/RepcaImpl.hpp +++ b/GridKit/Model/PhasorDynamics/Controller/REPCA/RepcaImpl.hpp @@ -657,7 +657,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; } @@ -690,7 +690,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 591fd614c..c910d5244 100644 --- a/GridKit/Model/PhasorDynamics/Converter/REGCA/RegcaImpl.hpp +++ b/GridKit/Model/PhasorDynamics/Converter/REGCA/RegcaImpl.hpp @@ -555,7 +555,7 @@ namespace GridKit */ template __attribute__((always_inline)) inline int - Regca::evaluateInternalResidual( + Regca::evaluateInternalResidualKernel( const ScalarT* y, const ScalarT* yp, const ScalarT* wb, @@ -700,7 +700,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 2645ed940..a0a0bc80e 100644 --- a/GridKit/Model/PhasorDynamics/Exciter/ESDC1A/Esdc1aImpl.hpp +++ b/GridKit/Model/PhasorDynamics/Exciter/ESDC1A/Esdc1aImpl.hpp @@ -492,7 +492,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; } @@ -528,7 +528,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 ada67c9e3..57380a538 100644 --- a/GridKit/Model/PhasorDynamics/Exciter/IEEET1/Ieeet1Impl.hpp +++ b/GridKit/Model/PhasorDynamics/Exciter/IEEET1/Ieeet1Impl.hpp @@ -363,7 +363,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, @@ -467,7 +467,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 16c1e0cce..76d36d46c 100644 --- a/GridKit/Model/PhasorDynamics/Exciter/SEXS-PTI/SexsPtiImpl.hpp +++ b/GridKit/Model/PhasorDynamics/Exciter/SEXS-PTI/SexsPtiImpl.hpp @@ -252,7 +252,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, @@ -320,7 +320,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 d5a33b257..321bcbfc8 100644 --- a/GridKit/Model/PhasorDynamics/Governor/GASTPTI/GastPtiImpl.hpp +++ b/GridKit/Model/PhasorDynamics/Governor/GASTPTI/GastPtiImpl.hpp @@ -471,7 +471,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; } @@ -508,7 +508,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 b11641318..61a282029 100644 --- a/GridKit/Model/PhasorDynamics/Governor/HYGOV/Hygov.hpp +++ b/GridKit/Model/PhasorDynamics/Governor/HYGOV/Hygov.hpp @@ -114,7 +114,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 e85d05354..95d714471 100644 --- a/GridKit/Model/PhasorDynamics/Governor/HYGOV/HygovImpl.hpp +++ b/GridKit/Model/PhasorDynamics/Governor/HYGOV/HygovImpl.hpp @@ -513,7 +513,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; } @@ -548,7 +548,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 229a58df3..af1d543c5 100644 --- a/GridKit/Model/PhasorDynamics/Governor/Tgov1/Tgov1Impl.hpp +++ b/GridKit/Model/PhasorDynamics/Governor/Tgov1/Tgov1Impl.hpp @@ -348,7 +348,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, @@ -411,7 +411,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 cea110760..c367be10c 100644 --- a/GridKit/Model/PhasorDynamics/Load/LoadZ/LoadZImpl.hpp +++ b/GridKit/Model/PhasorDynamics/Load/LoadZ/LoadZImpl.hpp @@ -190,7 +190,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, @@ -221,7 +221,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 19bd6ed6c..62474cfe7 100644 --- a/GridKit/Model/PhasorDynamics/Load/LoadZIP/LoadZIPImpl.hpp +++ b/GridKit/Model/PhasorDynamics/Load/LoadZIP/LoadZIPImpl.hpp @@ -221,7 +221,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]; @@ -239,7 +239,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 1d7d6d9b0..e2fdd7b50 100644 --- a/GridKit/Model/PhasorDynamics/Stabilizer/IEEEST/IeeestImpl.hpp +++ b/GridKit/Model/PhasorDynamics/Stabilizer/IEEEST/IeeestImpl.hpp @@ -294,7 +294,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, @@ -358,7 +358,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 2051a9214..527e0f39f 100644 --- a/GridKit/Model/PhasorDynamics/SynchronousMachine/GENROU/GenrouImpl.hpp +++ b/GridKit/Model/PhasorDynamics/SynchronousMachine/GENROU/GenrouImpl.hpp @@ -497,7 +497,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, @@ -621,7 +621,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 e656a2f6b..500d74d98 100644 --- a/GridKit/Model/PhasorDynamics/SynchronousMachine/GENSAL/GensalImpl.hpp +++ b/GridKit/Model/PhasorDynamics/SynchronousMachine/GENSAL/GensalImpl.hpp @@ -357,7 +357,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, @@ -474,7 +474,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 cd61c29ea..b024092b8 100644 --- a/GridKit/Model/PhasorDynamics/SynchronousMachine/GenClassical/GenClassicalImpl.hpp +++ b/GridKit/Model/PhasorDynamics/SynchronousMachine/GenClassical/GenClassicalImpl.hpp @@ -280,7 +280,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, @@ -370,7 +370,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 79a8a2e678b400e58959dc238bdfffad506404f0 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 707902dfc..58c0bacd9 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 c39e0894b..4cf420280 100644 --- a/GridKit/Model/PhasorDynamics/SystemModel.hpp +++ b/GridKit/Model/PhasorDynamics/SystemModel.hpp @@ -92,6 +92,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 2abc4f153..8fc398ac6 100644 --- a/GridKit/Model/PhasorDynamics/SystemModelImpl.hpp +++ b/GridKit/Model/PhasorDynamics/SystemModelImpl.hpp @@ -673,20 +673,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_) { @@ -695,9 +688,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 afc829795..ddd34b41b 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);