Compare commits
1 Commits
346a3ce2ab
...
75d0413994
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
75d0413994 |
22
CONTRACT.md
22
CONTRACT.md
@@ -3,6 +3,28 @@
|
|||||||
Hand-maintained for Phase 6; the `## Inputs` table is generated from
|
Hand-maintained for Phase 6; the `## Inputs` table is generated from
|
||||||
`src/commands/index.js` (see Phase 9 generator). Keep ≤ 80 lines.
|
`src/commands/index.js` (see Phase 9 generator). Keep ≤ 80 lines.
|
||||||
|
|
||||||
|
## Unit convention — approved exception to the canonical-unit rule
|
||||||
|
|
||||||
|
EVOLV's canonical units (`CLAUDE.md`, `generalFunctions/CONTRACT.md`)
|
||||||
|
are Pa / m³/s / W / K. **reactor diverges deliberately** — it follows
|
||||||
|
the ASM (Activated Sludge Model) kinetics literature convention:
|
||||||
|
|
||||||
|
- Concentrations: `mg/L` (= g/m³), `mmol/L` for alkalinity.
|
||||||
|
- Flow internally: `m³/d` (engine integrator runs in days; see
|
||||||
|
`baseEngine.js` line 40 — `timeStep` config field is seconds, but the
|
||||||
|
internal time base is days).
|
||||||
|
- Temperature: `°C`.
|
||||||
|
- KLa: `1/h` per the schema; multiplied by the seconds-input `timeStep`
|
||||||
|
inside `_calcOTR` — readers verifying the math should account for the
|
||||||
|
day-internal time base.
|
||||||
|
|
||||||
|
Unit conversion at the parent/child boundary happens via
|
||||||
|
`MeasurementContainer.UnitPolicy` and the `convert` utility. Other
|
||||||
|
nodes (rotatingMachine, pumpingStation, …) honour canonical units;
|
||||||
|
reactor is the only ASM-modelled node and pays the small cost of
|
||||||
|
domain-textbook units to stay aligned with every published reactor
|
||||||
|
reference.
|
||||||
|
|
||||||
## Inputs (msg.topic on Port 0)
|
## Inputs (msg.topic on Port 0)
|
||||||
|
|
||||||
| Canonical | Aliases (deprecated) | Payload | Effect |
|
| Canonical | Aliases (deprecated) | Payload | Effect |
|
||||||
|
|||||||
Reference in New Issue
Block a user