fix(reactor schema): timeStep unit was "h" but engine treats input as seconds

reactor.json declared `timeStep.unit = "h"` and `default = 0.001`, but:

- reactor.html labels the field [s] and defaults to 1.
- baseEngine.js line 40 converts via (1/86400) — seconds-per-day —
  meaning the engine internally treats the input as seconds.

A reader trusting the schema would have entered an hours value; the
engine would then have run the integrator at 1/3600× the intended step,
silently producing wrong rates.

Schema now matches the actual contract: `unit = "s"`, `default = 1`,
`min = 0.001` (1 ms minimum). Description block calls out the
seconds→days conversion so future readers don't need to dig.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
znetsixe
2026-05-19 13:01:02 +02:00
parent 8b28f8969e
commit 4f715e8ad6

View File

@@ -136,12 +136,12 @@
}
},
"timeStep": {
"default": 0.001,
"default": 1,
"rules": {
"type": "number",
"min": 0.0001,
"unit": "h",
"description": "Integration time step for the reactor model."
"min": 0.001,
"unit": "s",
"description": "Integration time step in seconds. The kinetics engine converts to days internally (timeStep / 86400) before each ASM Euler step; the HTML editor labels this field [s] and tests assume seconds. Do not change the unit without updating baseEngine.js line 40 in the reactor submodule."
}
}
},