Skip to main content

ReactorCheck

Turn reactor compositions or measured species flows into auditable catalytic metrics and QC.

CI Python 3.10+ License: MIT

ReactorCheck internal-standard composition analysis

ReactorCheck reads CSV/XLSX reactor data, reconstructs outlet molar flows from an explicitly confirmed internal standard or accepts direct measured flows, and runs both paths through one unit-aware scientific core. Results include reaction metrics, material closure, steady-state candidates, structured QC, calculation settings, and source provenance.

Input Explicit method Verified output
CO/H2/CH3OH/N2 dry mole % F_out,i = y_i/y_N2 × F_N2,feed CO conversion 0.500
N2 feed = 1 mol/h N2 declared nonreactive by the user CH3OH C-selectivity 1.000
Feed CO/H2 = 1/2 mol/h normalized dry composition C/H/O balance 100%
Raw mapped sum tolerance-based QC, never silently hidden settings + provenance workbook

Install

Python 3.10 or newer is required. Tk is needed only for the desktop GUI.

python -m pip install reactorcheck

For the bundled example datasets, unreleased development code, or contributions, clone the public source and use an editable install instead:

30-second bundled example (source install)

git clone https://github.com/hdkim99/ReactorCheck.git
cd ReactorCheck
python -m pip install -e .
reactorcheck analyze examples/synthetic_composition.csv \
  --config examples/synthetic_composition_config.json \
  --output reactorcheck-composition.xlsx \
  --plot reactorcheck-composition.png
reactorcheck-gui

The synthetic CO hydrogenation example is available as both CSV and XLSX. Its hand calculation reconstructs CO/H2/CH3OH/N2 outlet flows of 0.5/1.0/0.5/1.0 mol/h.

The backward-compatible direct-flow example remains available:

reactorcheck analyze examples/synthetic_reactor.csv \
  --config examples/synthetic_config.json \
  --output reactorcheck-direct.xlsx

Supported scope in 0.2.x

Capability Status Notes
CSV and XLSX input Supported One table/first sheet per analysis
Editable column/species mapping Supported JSON, CLI suggestions, and GUI
Direct molar/standard-volume flows Supported Explicit ideal-gas standard T/P
Mole fraction + internal standard Supported fraction, %/mol%, ppm/ppmv
Raw vs normalized treatment Supported Raw and used fractions are both retained
Wet/dry water basis Supported Independent from normalization; H2O rules are explicit
Conversion, molar/carbon selectivity, yield Supported One reference reactant basis
Element/measured-mass recovery Supported Derived from explicit formulas
Rate, mass STY, GHSV, WHSV Supported Definitions and units are explicit
Multi-variable steady state + override Supported Candidate detection, not physical proof
QC, plot, Excel/CSV export Supported Settings and provenance included
Multi-reactant conversion/selectivity basis Planned No implicit combined denominator in 0.2.x

Scientific safeguards

ReactorCheck never chooses an internal standard or infers that it is inert. A composition configuration must name the standard, provide its feed flow, set an actual JSON boolean confirmation, and record a written assumption. Missing, zero, negative, or non-finite standard fractions stop reconstruction. Wet/dry water basis and raw/normalized treatment are independent settings; the ambiguous single composition.basis key is rejected rather than guessed.

Raw composition sums are always retained and checked against a configured tolerance. Normalization does not change the internal-standard ratio, a property covered by scientific regression tests. See docs/scientific-definitions.md and the complete composition configuration.

Outputs

Excel export contains summary, processed, qc, settings, and provenance sheets. Composition analyses preserve raw/used mole fractions, sums, source columns/units, inlet sources, reference reactant, water basis, normalization, internal-standard feed, reconstruction equation, and the user's assumption text.

Limitations

  • Version 0.2.x uses one configured reference reactant; multi-reactant aggregate bases and stoichiometric selectivity coefficients are planned, not inferred.
  • Internal-standard reconstruction assumes F_std,out = F_std,in exactly as the user declares; ReactorCheck cannot prove nonreactivity from composition data.
  • Dry-basis data cannot reconstruct water flow. H2O must not be mapped as an outlet composition on a dry basis.
  • Element and measured-mass closure cover mapped species only.
  • Standard-volume conversion uses the ideal-gas equation at explicit T/P.
  • The steady-state detector identifies statistical candidates only.

Related tools

These are independent repositories; interoperability is planned through public tabular/JSON schemas rather than shared private code.

Development

python -m pip install -e ".[dev]"
ruff format --check .
ruff check .
mypy src
pytest
python -m build
twine check dist/*

Synthetic example data are MIT-licensed with the project. See CONTRIBUTING.md and CITATION.cff. The 1280×640 social-preview.png is the current repository social-preview candidate and is generated from the same real example.

Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

reactorcheck-0.2.1.tar.gz (171.3 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

reactorcheck-0.2.1-py3-none-any.whl (33.8 kB view details)

Uploaded Python 3

File details

Details for the file reactorcheck-0.2.1.tar.gz.

File metadata

  • Download URL: reactorcheck-0.2.1.tar.gz
  • Upload date:
  • Size: 171.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for reactorcheck-0.2.1.tar.gz
Algorithm Hash digest
SHA256 d0c9dc61a41152f90cb8b9858e11fcc36b9a91a91d6f1749d4f3ab3ca834baf8
MD5 1275ee98854e3258813e6762c5b35600
BLAKE2b-256 c38999c069ddf1f66ab7dfc65e515e3c1ff31ada4d928232c43018c839ca79b3

See more details on using hashes here.

Provenance

The following attestation bundles were made for reactorcheck-0.2.1.tar.gz:

Publisher: release.yml on hdkim99/ReactorCheck

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file reactorcheck-0.2.1-py3-none-any.whl.

File metadata

  • Download URL: reactorcheck-0.2.1-py3-none-any.whl
  • Upload date:
  • Size: 33.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/7.0.0 CPython/3.13.14

File hashes

Hashes for reactorcheck-0.2.1-py3-none-any.whl
Algorithm Hash digest
SHA256 d81c00542a66e0883f321cfe912819f9cb0be551d225b51a12836f30b7ca7b66
MD5 5a0602c9c7d1fa56ce27b00728df34f8
BLAKE2b-256 e9e8bbbc96a71f84941c91540197a9d0306a6d85ca0774e1a6c6c9eadf112cd1

See more details on using hashes here.

Provenance

The following attestation bundles were made for reactorcheck-0.2.1-py3-none-any.whl:

Publisher: release.yml on hdkim99/ReactorCheck

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Release history Release notifications | RSS feed

0.2.2

2 files

This release

0.2.1 This release

2 files

0.2.0

2 files

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page