diff --git a/GridKit/Model/PhasorDynamics/BusToSignalAdapter/BusToSignalAdapterImpl.hpp b/GridKit/Model/PhasorDynamics/BusToSignalAdapter/BusToSignalAdapterImpl.hpp index 52cf4fdf12..209c808890 100644 --- a/GridKit/Model/PhasorDynamics/BusToSignalAdapter/BusToSignalAdapterImpl.hpp +++ b/GridKit/Model/PhasorDynamics/BusToSignalAdapter/BusToSignalAdapterImpl.hpp @@ -186,7 +186,7 @@ namespace GridKit template int BusToSignalAdapter::evaluateJacobian() { - return 0; + return this->constructCoo(); } } // namespace PhasorDynamics diff --git a/tests/UnitTests/PhasorDynamics/BusToSignalAdapterTests.hpp b/tests/UnitTests/PhasorDynamics/BusToSignalAdapterTests.hpp index baebe3def6..8c561ea9ec 100644 --- a/tests/UnitTests/PhasorDynamics/BusToSignalAdapterTests.hpp +++ b/tests/UnitTests/PhasorDynamics/BusToSignalAdapterTests.hpp @@ -90,6 +90,23 @@ namespace GridKit return success.report(__func__); } + + TestOutcome jacobian() + { + TestStatus success = true; + + auto bus = BusT(1.0, 0.0); + auto adapter = AdapterT(&bus); + bus.allocate(); + adapter.allocate(); + + success *= (adapter.evaluateJacobian() == 0); + + const auto* jacobian = adapter.getCooJacobian(); + success *= (jacobian != nullptr && jacobian->getNnz() == 0); + + return success.report(__func__); + } }; } // namespace Testing diff --git a/tests/UnitTests/PhasorDynamics/runBusToSignalAdapterTests.cpp b/tests/UnitTests/PhasorDynamics/runBusToSignalAdapterTests.cpp index 2dc81ebd42..8982be358d 100644 --- a/tests/UnitTests/PhasorDynamics/runBusToSignalAdapterTests.cpp +++ b/tests/UnitTests/PhasorDynamics/runBusToSignalAdapterTests.cpp @@ -10,6 +10,7 @@ int main() result += test.constructor(); result += test.residual(); + result += test.jacobian(); return result.summary(); }