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.

Selected public real-data validation

ReactorCheck's IO and mapping paths have also been exercised against selected public fixed-bed reactor exports: a Zenodo online-GC workbook/processed-flow pair and a Mendeley Data dry-composition table. This does not imply validation for every instrument or published metric definition. Dataset DOI, license, checksums, files/columns used, failures found, scientific boundaries, and the opt-in reproduction command are recorded in docs/public-data-sources.md.

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 synthetic composition example shown above.

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.2.tar.gz (184.6 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.2-py3-none-any.whl (35.0 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: reactorcheck-0.2.2.tar.gz
  • Upload date:
  • Size: 184.6 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.2.tar.gz
Algorithm Hash digest
SHA256 9ff9713a6fa3a94b9a086cfbbb3a167bc147fab336e1042d3dc874447f007ba3
MD5 3a4bb37702e5c996f524adea3fa39e25
BLAKE2b-256 2b305c95c6b4e0b7e8e957363ebcff2364a9c70ccf57905e6bb6edc855274868

See more details on using hashes here.

Provenance

The following attestation bundles were made for reactorcheck-0.2.2.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.2-py3-none-any.whl.

File metadata

  • Download URL: reactorcheck-0.2.2-py3-none-any.whl
  • Upload date:
  • Size: 35.0 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.2-py3-none-any.whl
Algorithm Hash digest
SHA256 766fb65fb2dad14d44289fffc553f1c8dc37c8c2c528181a50840f9e1b1e0026
MD5 db647ad58b3acdc0f31a2003c4e75ab2
BLAKE2b-256 abf18388575756b952604b191670b0a5b7e40244338c62cc22cd7026bf640acd

See more details on using hashes here.

Provenance

The following attestation bundles were made for reactorcheck-0.2.2-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

This release

0.2.2 This release

2 files

0.2.1

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