FhSim  3.1.0
Marine systems simulation
Loading...
Searching...
No Matches
0175 — The self-connection check misses other users of the model Jacobian
ID 0175
Class TEST
Severity 1
Status ready

Models: —

Found: 2026-10-26, r2-newton-solvers (Q4a) verification, 4dcb3a9d

Evidence

The check is RefuseSelfConnection in SolverPlan.cpp:155, called at :359 (SUNDIALS) and :410 (BackwardEuler_i). Other users of the model Jacobian do not call it:

  • src/visual/ui/JacobianViewerPanel.cpp:106-107 (EvaluateModelJacobian).
  • src/testtools/JacobianChecker.cpp:281,290 (analytical blocks).
  • src/engine/model/SensitivityAnalyzer.cpp:202,399 (port Jacobians).
  • src/engine/integrator/preconditioners/JacobiDiagonalPreconditioner.cpp:74 (EvaluateModelJacobian; not checked whether it runs when the Jacobian callback is not wired). See plan plans/r2-newton-solvers.md section 13.

No test covers the SUNDIALS refusal at SolverPlan.cpp:359.

Effect

These users may read a Jacobian of a model with a self-connection that the implicit solvers refuse.

Possible fix

Owner decides whether each should refuse too (the Jacobi preconditioner first). Add a test for the SUNDIALS refusal.

Test that would prove it

A SUNDIALS run of a self-connected model with the Jacobian callback wired throws on setup.

Risk

Low. Owner ruling: file only, no code now.