Install
$ agentstack add skill-jskherman-engg-skills-reactor-sizing-and-kinetics ✓ scanned · ✓ verified, works with Claude Code, Cursor, and more.
Security review
✓ PassedNo issues found. Passed automated security review. · v0.1.0 How review works →
- ✓ Prompt-injection patterns
- ✓ Secret / credential exfiltration
- ✓ Dangerous shell & filesystem operations
- ✓ Untrusted network calls
- ✓ Known-malicious package signatures
What it can access
- ✓ Network access No
- ✓ Filesystem access No
- ✓ Shell / process execution No
- ✓ Environment & secrets No
- ✓ Dynamic code execution No
From automated source analysis of v0.1.0. “Used” means the capability is present in the source — more access means more to trust, not that it’s unsafe.
Verified badge
Passed review? Show it. Paste this badge into your README, it links to the public security report.
Reliability & compatibility
Declared compatibility
Compatibility is declared by the source manifest. End-to-end runtime verification is coming, see below.
We're building live execution health for every listing: tool-call success rate, median latency, uptime, and last-checked timestamps, measured, not self-reported. It isn't live yet, so we don't show numbers we can't stand behind.
How agent discovery & health will work →About
Reactor Sizing and Kinetics
Overview
Isothermal liquid-phase reactor design equations from first principles:
- Arrhenius fit (
A,Ea) from temperature / rate-constant data. - CSTR / PFR / batch volume or time for nth-order kinetics (analytical).
- N equal-sized CSTRs in series for 1st-order kinetics.
- Numerical PFR for any user-defined rate law (Langmuir-Hinshelwood,
Michaelis-Menten, reversible reactions).
Prerequisites
uvavailable.- On first use, the script writes
LICENSE_NOTIFICATION.txt.
When to Use
- Sizing a CSTR, PFR, or batch reactor for a known rate law.
- Fitting
AandEafrom experimental data at multiple temperatures. - Comparing CSTR-in-series vs single PFR for a target conversion.
Don't use for
- Non-isothermal design (no energy balance — would need a coupled
T(z)or
T(t) solver).
- Heterogeneous catalysis with pore diffusion (Thiele modulus, effectiveness
factor not covered).
- Multiple parallel reactions where selectivity matters (extension needed).
- Polymerization moments / chain-length distribution work.
- Bioreactors with cell death / inhibition (use a specialised model).
Utility Scripts
uv run scripts/reactor.py arrhenius --temperatures 298,308,318,328 --k-values 1.2e-3,2.4e-3,4.8e-3,9.5e-3 --output /tmp/arr.jsonuv run scripts/reactor.py cstr --C0 1000 --conversion 0.9 --flow 0.001 --k 5e-4 --order 1 --output /tmp/cstr.jsonuv run scripts/reactor.py pfr --C0 1000 --conversion 0.9 --flow 0.001 --k 5e-4 --order 2 --output /tmp/pfr.jsonuv run scripts/reactor.py batch --C0 1000 --conversion 0.9 --k 5e-4 --order 1 --output /tmp/batch.jsonuv run scripts/reactor.py series --C0 1000 --conversion 0.95 --flow 0.001 --k 5e-4 --N 3 --output /tmp/series.json
Procedure
- Fit the rate constant if you have temperature data:
arrhenius. - Pick reactor type from process needs:
- CSTR: tight T control, easy fouling cleanout, lower conversion per
volume for positive-order kinetics.
- PFR: higher conversion per volume for positive-order; flow regime
matters (turbulent assumed in the simple formulas).
- Batch: small / specialty / multi-product.
- Compute volume or time at the design conversion.
- Sensitivity: re-run with
+10%/-10%inkto bracket uncertainty in
the rate constant.
- Compare against any pilot data; the analytical formulas assume perfect
mixing (CSTR) or plug flow (PFR), neither of which is exact in industry.
Pitfalls
- Using a single-temperature
kfor a reactor that operates over a 20 K
range. Fit A, Ea and evaluate k(T) at the design temperature.
- Confusing reaction order with stoichiometry. The order in the rate law
is empirical; do not assume it equals the stoichiometric coefficient.
- Reporting reactor volume without stating whether it is liquid volume,
total vessel volume, or void volume in a packed bed.
- Using
pfr_volume_nth_orderfor a system where back-mixing matters
(low Re, large vessel). Real reactors are between CSTR and PFR.
- Using
cstr_volume_nth_orderfor very high conversions with positive
order kinetics — the volume blows up as conversion → 1.
- Forgetting that batch time excludes load / unload / cleaning time.
- Treating
R^2from the Arrhenius fit as a substitute for prediction
intervals; with three points an excellent R^2 is not the same as a defensible A.
- Forgetting that real CSTRs in series do not behave like a single PFR
even at large N because of finite mixing in each vessel.
Fallback Strategies
- For arbitrary rate laws (Langmuir-Hinshelwood, Michaelis-Menten,
reversible reactions), use the pfr-numeric --rate-fn subcommand which accepts a Python expression in C (e.g. 0.5*C/(1+0.1*C)).
- For non-isothermal design, surface to the user that this skill does not
cover it; they should set up a coupled ODE solver.
Verification
- Run the listed script with representative inputs and an
--outputfile when a deterministic calculation is available. - Confirm the JSON result contains
ok: true, expected units, and no unhandled warnings. - Check result magnitudes against the stated assumptions, references, and a hand calculation or known operating range before reporting them.
References
references/design_equations.md— derivations.- Fogler, Elements of Chemical Reaction Engineering.
- Levenspiel, Chemical Reaction Engineering.
Anti-Patterns
- Picking PFR over CSTR purely because PFR "is more efficient"; ignoring
fouling, cleaning, and control implications.
- Citing reactor volume without the rate constant used.
- Using textbook
kwithout checking units consistency in the rate law.
Source & license
This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.
- Author: jskherman
- Source: jskherman/engg-skills
- License: Apache-2.0
Install and usage instructions live in the source repository linked above.
Reviews
No reviews yet, be the first.
Write a review
Versions
- v0.1.0 Imported from the upstream source.