Accuracy and testing
Accuracy
The results were checked against PsychroLib (the ASHRAE reference implementation) above 0 °C and an independent Murphy and Koop implementation below 0 °C: 34,057 results across every function from -100 to 200 °C, run inside Ignition 8.1 and 8.3, with zero failures. Results agree to better than a billionth of a degree.
Against CoolProp, an independent real-gas model, dew points differ by about 0.06 °C, roughly ten times less than the uncertainty of a typical ±2 % RH sensor.
In a 200 °C dryer, where PsychroLib's wet bulb fails (returning 200 °C), this module returns 63.19 °C, in line with CoolProp's 63.17 °C.
Run the tests
The tests are in the psychrometrics-ignition repository. They need JDK 17, Maven 3.8 or newer, and Python 3. The commands below are for Windows PowerShell, from the root of the repository.
The Python cross-check
random_check.py cross-checks every function on random air states against PsychroLib, Murphy and Koop, and CoolProp:
python -m venv .venv
.\.venv\Scripts\Activate.ps1
pip install -r psychro-core\src\test\python\requirements.txt
mvn -q test-compile
python psychro-core\src\test\python\random_check.py --n 5000
It exits with code 0 when every check passes, and 1 otherwise.
The Ignition accuracy test
This test runs the functions inside Ignition, on a gateway with the module installed.
-
Paste
psychro-core\src\test\ignition\accuracy_test.pyinto the Designer Script Console and run it. It writes every input and result to a CSV in the Designer computer's temp folder, and prints the path of the CSV. -
Check the CSV in Python, with the same virtual environment as above:
python psychro-core\src\test\python\compare_ignition.py --csv <that path>
It checks every Ignition result against the Python references, and exits with code 0 when every result matches, and 1 otherwise.