|
FhSim
3.1.0
Marine systems simulation
|
| ID | 0054 |
| Class | BUG |
| Severity | 1 |
| Status | ready |
Models: —
Found: 2026-10-20 architecture review (a406e955); owner ruled "default ok" on the whole plan 2026-10-20
Source plan: plans/arch-2026-10-20/not-implemented/f9-sundials-solver-plan.md (workspace fhsim_workspace)
Kind: Behaviour change (error text of an already rejected input); test first. Take when passing; rides with: F9 items below, or a small own feature in src/engine/integrator/.
src/engine/integrator/sundials/SundialsOptionApplier.cpp:397-406, in SundialsOptionApplier::ApplyExtras. The final else of the key chain is reached by every <SundialsExtra> key that no earlier branch matched, whatever the solver:
The branch does not test cvodeMemory, arkodeMemory or erkMemory. The three keys are read nowhere else in src/ (‘grep -rnE 'jtype|nonlin_type|lin_type’ srchits only these lines and the local variablejtypein FhIntegratorSundials.cpp:368, which is a SUNMatrix id). The solver and linear solver come from the integrator attributes (ParseSundialsLinearSolver,IntegratorConfigFactory.cpp:97-105), not from<SundialsExtra>`.
A user who puts one of these keys in <SundialsExtra> of a CVODES run is told it is "not a valid option for ARKODE with ERK", although the run is not ARKODE or ERK. The input is rejected (ReportError) either way; only the text misleads.
Owner default (F9-Q1, ruled "default ok"): drop the three branches so the keys fall to unknown CVODE/ARKODE option: <key>. The alternative is to fix the text only.
A unit test of ApplyExtras with a CVODE-only memory and the key jtype: expect the message unknown CVODE/ARKODE option: jtype. Write it first; it is red on the current text.
Low. Only inputs that are already rejected get another message. Check that no test or example expects the old text. The XML attribute jtype of the integrator (alias of jac_type, tests/integrator/methods/ODE_test.cpp:35) is a different thing and stays.