Skip to content

Elements and components: where the evidence lives

The audit of src/noodl/elements, noodl.nodesources and src/noodl/components for issue #22 S06 found no benchmark numbers, timings or implementation narratives in those files. What the code carries is mathematics, invariants and engine-parity facts, and these stay in the source.

Engine-parity facts kept in code

These are empirical facts about the reference engines that the elements reproduce. Each is stated in one line next to the code that depends on it.

Fact Where
ContamX 3.4.1.7 duct, air-viscosity and Colebrook laws (differ from TN 1887's printed Colebrook form by about 0.1 %) elements/air_duct.py module docstring
ContamX 3.4.1.7 curve fit ("CSFchk" in its log) elements/curve.py module docstring
ContamX 3.4.1.7 fan-law behaviour (stopped fan, speed ratio) elements/fan.py
Upstream-density power law: the error of a frozen reference density (figures in the module docstring) elements/upstream.py module docstring
MBL medium conventions (Air.mo, PartialOneWayFlowElement.mo, TwoWayFlowElement.mo) elements/media.py

How to reproduce

The ContamX figures come from running the corresponding case through ContamX 3.4.1.7 and comparing against the element; the tests that pin them are tests/verification/test_contam_parity.py and tests/verification/test_airflow_closed_forms.py.