Compare commits
2 Commits
346a3ce2ab
...
developmen
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
46fc8dddf7 | ||
|
|
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 |
|
||||||
|
|||||||
@@ -13,7 +13,7 @@
|
|||||||
<script type="text/javascript">
|
<script type="text/javascript">
|
||||||
RED.nodes.registerType("reactor", {
|
RED.nodes.registerType("reactor", {
|
||||||
category: "EVOLV",
|
category: "EVOLV",
|
||||||
color: "#50a8d9",
|
color: "#6FAE5F",
|
||||||
defaults: {
|
defaults: {
|
||||||
name: { value: "" },
|
name: { value: "" },
|
||||||
reactor_type: { value: "CSTR", required: true },
|
reactor_type: { value: "CSTR", required: true },
|
||||||
@@ -267,6 +267,7 @@
|
|||||||
<label for="node-input-dbaseOutputFormat"><i class="fa fa-database"></i> Database Output</label>
|
<label for="node-input-dbaseOutputFormat"><i class="fa fa-database"></i> Database Output</label>
|
||||||
<select id="node-input-dbaseOutputFormat" style="width:60%;">
|
<select id="node-input-dbaseOutputFormat" style="width:60%;">
|
||||||
<option value="influxdb">influxdb</option>
|
<option value="influxdb">influxdb</option>
|
||||||
|
<option value="frost">frost</option>
|
||||||
<option value="json">json</option>
|
<option value="json">json</option>
|
||||||
<option value="csv">csv</option>
|
<option value="csv">csv</option>
|
||||||
</select>
|
</select>
|
||||||
|
|||||||
Reference in New Issue
Block a user