ReactorCheck
Turn reactor compositions or measured species flows into auditable catalytic metrics and QC.
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,inexactly 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.
- Ordifile — instrument-data standardization
- ReactorCheck — this reactor-analysis tool
- TPxLab — temperature-programmed analysis
- OperandoMerge — heterogeneous timeline alignment
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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
9ff9713a6fa3a94b9a086cfbbb3a167bc147fab336e1042d3dc874447f007ba3
|
|
| MD5 |
3a4bb37702e5c996f524adea3fa39e25
|
|
| BLAKE2b-256 |
2b305c95c6b4e0b7e8e957363ebcff2364a9c70ccf57905e6bb6edc855274868
|
Provenance
The following attestation bundles were made for reactorcheck-0.2.2.tar.gz:
Publisher:
release.yml on hdkim99/ReactorCheck
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
reactorcheck-0.2.2.tar.gz -
Subject digest:
9ff9713a6fa3a94b9a086cfbbb3a167bc147fab336e1042d3dc874447f007ba3 - Sigstore transparency entry: 2569631215
- Sigstore integration time:
-
Permalink:
hdkim99/ReactorCheck@f6fb7c2e2a4fe56b59e8386835cb54c9ccfb508a -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/hdkim99
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f6fb7c2e2a4fe56b59e8386835cb54c9ccfb508a -
Trigger Event:
release
-
Statement type:
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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
766fb65fb2dad14d44289fffc553f1c8dc37c8c2c528181a50840f9e1b1e0026
|
|
| MD5 |
db647ad58b3acdc0f31a2003c4e75ab2
|
|
| BLAKE2b-256 |
abf18388575756b952604b191670b0a5b7e40244338c62cc22cd7026bf640acd
|
Provenance
The following attestation bundles were made for reactorcheck-0.2.2-py3-none-any.whl:
Publisher:
release.yml on hdkim99/ReactorCheck
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
reactorcheck-0.2.2-py3-none-any.whl -
Subject digest:
766fb65fb2dad14d44289fffc553f1c8dc37c8c2c528181a50840f9e1b1e0026 - Sigstore transparency entry: 2569631237
- Sigstore integration time:
-
Permalink:
hdkim99/ReactorCheck@f6fb7c2e2a4fe56b59e8386835cb54c9ccfb508a -
Branch / Tag:
refs/tags/v0.2.2 - Owner: https://github.com/hdkim99
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@f6fb7c2e2a4fe56b59e8386835cb54c9ccfb508a -
Trigger Event:
release
-
Statement type: