Chemistry sources
Chemistry sources
Section titled “Chemistry sources”Every catalogue value and validation fixture used by VoxelSandbox.Chemistry is recorded here before
it becomes product content. This document records the initial C0 thermodynamic validation fixture;
it is not a licence to fill a production catalogue with unsourced values.
Water vapour — Shomate validation fixture
Section titled “Water vapour — Shomate validation fixture”- Species: H₂O(g), CAS 7732-18-5.
- Source: NIST Chemistry WebBook, Standard Reference Database 69, Water, gas-phase Shomate table, citing M. W. Chase Jr., NIST-JANAF Thermochemical Tables, 4th edition (1998).
- URL: https://webbook.nist.gov/cgi/cbook.cgi?ID=C7732185&Mask=3&Table=on&Type=JANAFG
- Coefficient validity range: 500–1700 K.
- Coefficients:
A=30.09200,B=6.832514,C=6.793435,D=-2.534480,E=0.082139,F=-250.8810,G=223.3967,H=-241.8264. - Validation rows: at 500 K, Cp = 35.22 J/(mol·K), S° = 206.5 J/(mol·K), H°−H°298.15 = 6.92 kJ/mol; at 1000 K, 41.27 J/(mol·K), 232.7 J/(mol·K), and 26.00 kJ/mol respectively.
The values above exist only in the EditMode thermodynamic evaluator test. The eventual substance catalogue must independently record its exact phase, composition, uncertainty, and source revision.
Physical constants
Section titled “Physical constants”- Source: NIST 2022 CODATA recommended values.
- URL: https://physics.nist.gov/cuu/pdf/JPCRD2022CODATA.pdf
- Molar gas constant,
R:8.314462618 J/(mol·K)(exact). - Faraday constant,
F:96485.33212 C/mol(exact).
ThermodynamicMath uses these constants for K = exp(-ΔG/RT), the Nernst equation, and the
ΔG° = -nFE° bridge. Energy values supplied in kJ/mol are converted to joules only at the equation
boundary; the conversion is explicit in the API names and implementation.
C3.3 atmospheric transport — reduced multizone control volumes
Section titled “C3.3 atmospheric transport — reduced multizone control volumes”- Source: National Institute of Standards and Technology, Dols and Polidoro, CONTAM User Guide and Program Documentation, NIST Technical Note 1887r1 (2020). https://doi.org/10.6028/NIST.TN.1887r1
- Supporting derivation: NISTIR 4588, A General Routine Analysis of Stack Effect. https://nvlpubs.nist.gov/nistpubs/Legacy/IR/nistir4588.pdf
AtmosphericTransportMath uses the same deliberately reduced contract as a multizone model: a
domain is a well-mixed control volume; material crosses only named connections or a named outdoor
exchange; matter is never deleted. Inter-domain mixing advances each species from its concentration
gradient. Ventilation uses the first-order well-mixed fraction 1 − exp(−λt), where λ is an
authored air-change rate in s⁻¹. Wind transport uses an authored effective opening area and the
existing WindField velocity to form Q = v·A·alignment.
The buoyancy slice uses the NIST orifice correlation Q = C_d A sqrt(2ΔP/ρ) with hydrostatic
ΔP = Δρ·g·h. It only resolves the unstable case of denser air above lighter air; stable layering,
two-way large-opening flow, wind pressure coefficients, weather coupling, inversions, deposition,
plume shape, and chemistry are explicitly out of scope. C_d, control-volume size, temperature,
carrier molar mass, gravity, and openings are supplied by the owning world/geometry system — no
unreferenced global gameplay values are embedded in this transport model.
C3.6 Stone Vent construction specification
Section titled “C3.6 Stone Vent construction specification”Stone Vent is a player-built, solid voxel form with an explicit 0.025 m³/s flow only when its
far side reaches exterior air within the bounded scan envelope. This is an MVP content
specification, not a measurement or claim about a real manufactured vent. The enclosure scan
measures the actual bounded room volume and converts the verified flow to λ = Q/V in s⁻¹;
AtmosphericTransportMath then applies the cited well-mixed NIST multizone decay and transfers every
tracked mole to the regional ledger. An indoor-only vent form and a block with no non-zero, cited flow
both remain sealed. This deliberately does not claim pressure-network or wind fidelity; those require
the C3.6 opening/ignition work still outstanding.
For scanner-authored C3 control-volume geometry, AtmosphericEnvironmentProfile supplies the
world’s explicit physical cell volume and ambient temperature rather than allowing per-component
defaults. The MVP profile sets one Unity-unit voxel to 1 m³ (MASTERPLAN’s one Unity unit per block)
and uses the standard-atmosphere tropospheric reference T = 288.15 − 0.0065H K for elevations below
11 km. Source: NASA, Atmospheric Environment, NASA TM-86785, Eq. 15.
https://ntrs.nasa.gov/api/citations/19840005126/downloads/19840005126.pdf
C3.4 carbon monoxide — carboxyhaemoglobin uptake and clearance
Section titled “C3.4 carbon monoxide — carboxyhaemoglobin uptake and clearance”- Source record ID:
ATSDR-CO-CFK-2012. - Source: Agency for Toxic Substances and Disease Registry, Toxicological Profile for Carbon Monoxide, Health Effects chapter, Coburn–Forster–Kane model. https://www.ncbi.nlm.nih.gov/books/NBK153687/
- Cross-check fixture: National Research Council, Acute Exposure Guideline Levels for Selected Airborne Chemicals, Carbon Monoxide Appendix B. https://www.ncbi.nlm.nih.gov/books/NBK220007/
The MVP’s CarbonMonoxideExposureMath integrates the nonlinear CFK form in one-minute fixed steps,
with the ATSDR/AEGL reference profile: a 70 kg resting, non-smoking adult; blood volume 5,500 mL;
endogenous CO production 0.007 mL/min; Haldane coefficient 218; lung CO diffusing capacity 30
mL/(min·Torr); humidified pressure 713 Torr; alveolar ventilation 13,200 mL/min; maximum O₂ binding
0.2 mL/mL blood; capillary O₂ partial pressure 100 Torr; and initial COHb 0.75%. The AEGL appendix’s
60-minute 83 ppm derivation targets 4% COHb; the automated fixture allows a ±0.3 percentage-point
numerical-model tolerance.
This is a well-mixed single-compartment model. ATSDR describes it as appropriate at low/near-
equilibrium COHb and notes limitations during rapidly changing exposure and arterial/venous uptake.
The model is consequently the authoritative COHb state for the MVP reference profile only. It does
not claim to model children, pregnancy, smoking, disease, exercise, supplemental oxygen, chronic
injury, or all oxygen-displacement hazards. BloodOxygen is presently the explicit carrying-capacity
proxy 0.97·(1−COHb); broader oxygenation, temperature injury and other toxicants remain separate
sourced C3 work.
The C3.3→C3.4 adapter uses the already declared ideal-gas partial pressure pᵢ = nᵢRT/V, then
reports dry ppmv as pᵢ/p_ref × 10⁶. It takes a domain’s stored volume and temperature plus an
explicit reference pressure; it never derives concentration from moles alone or creates an
untracked background-gas ledger.
Activity conventions
Section titled “Activity conventions”- Ideal-gas law and partial-pressure basis: IUPAC Gold Book, ideal gas. https://goldbook.iupac.org/terms/view/I02935
- Standard molality: IUPAC Gold Book, standard molality:
1 mol/kg. https://goldbook.iupac.org/terms/view/S05918 - Standard-state pressure: 100,000 Pa (100 kPa), 2022 CODATA. https://physics.nist.gov/cuu/pdf/JPCRD2022CODATA.pdf
- Ideal solution mole-fraction convention: IUPAC Gold Book, Raoult’s law. https://goldbook.iupac.org/terms/view/15349
The C0 model uses a = pᵢ/p° for ideal gases, a = bᵢ/b° for aqueous solutes, a = xᵢ for ideal
solutions, and a = 1 for pure solids and liquids. Aqueous activity coefficients are deliberately
fixed at one until C9 (the planned Debye–Hückel extension); the reaction quotient accepts resolved,
dimensionless activities so that this future change does not alter reaction evaluation.
Hydrogen combustion — reaction aggregation fixture
Section titled “Hydrogen combustion — reaction aggregation fixture”- Reaction:
2 H₂(g) + O₂(g) → 2 H₂O(g). - Sources: NIST Chemistry WebBook, Standard Reference Database 69, gas-phase Shomate tables (M. W. Chase Jr., NIST-JANAF Thermochemical Tables, 4th edition, 1998).
- The fixture deliberately evaluates at 500 K, within the shared source range H₂ 298–1000 K, O₂ 100–700 K, and H₂O 500–1700 K.
ReactionThermodynamics combines each term as Σνᵢ(ΔfH°298.15 + (H°(T)-H°298.15)) and
ΣνᵢS°(T), then derives ΔrG° = ΔrH° − TΔrS° and K = exp(-ΔrG°/RT). Terms must already be
catalogue-sorted and use whole-number balanced stoichiometry, which preserves a deterministic
addition order without per-tick reduction or allocation.
Kinetics and reaction affinity
Section titled “Kinetics and reaction affinity”- Arrhenius equation: IUPAC Gold Book, Arrhenius equation. https://goldbook.iupac.org/terms/view/A00446
- Reaction affinity: IUPAC Gold Book, affinity of reaction. https://goldbook.iupac.org/terms/view/A00178
The C0 rate identity is r = k · activityOrderProduct · specificSurfaceArea · (1 − Q/K), using
k(T) = A exp(-Ea/RT). It is deliberately written with the signed (1 − Q/K) term: rates vanish at
equilibrium and naturally change direction for Q > K. Catalysts may change the authored kinetic
parameters A and Ea, but never K, Q, ΔrG°, or the reaction affinity. All calculations remain
in physical process units; the global 60× game-time multiplier is applied only by the later simulation
clock.
specificSurfaceArea is 1 (dimensionless) for a homogeneous reaction. For a heterogeneous
solid–gas or solid–liquid reaction SpecificSurfaceAreaMath derives it from the reacting solid’s
grain size d and molar volume Vₘ = (M/1000)/ρ as Aₘ = 6·Vₘ/d (m²/mol), the surface-area-to-
volume ratio of a uniform sphere. This is geometry, not a measured constant; real shrinking-core and
intra-particle pore-diffusion limitation is explicitly out of C0 scope (§28.9). The grain size is
carried per solid component on the VesselCharge and is what a crusher (§32) reduces.
Thermal energy and phase boundaries
Section titled “Thermal energy and phase boundaries”- Water normal boiling point: NIST Chemistry WebBook, SRD 69, Water:
373.17 ± 0.04 K. https://webbook.nist.gov/cgi/cbook.cgi?Name=water&cTG=on&cTP=on - Water/steam reference formulation: NISTIR 5078, tabulated from the IAPWS-95 formulation. https://www.nist.gov/publications/thermodynamic-properties-water-tabulation-iapws-formulation-1995-thermodynamic
The phase-transition test fixture uses the conventional normal-boiling-point reference 373.15 K and
ΔvapH = 40.65 kJ/mol for water. It exists to validate energy conservation and boundary handling,
not as a production substance catalogue entry. PhaseTransitionMath holds temperature at a declared
boundary while available tick energy is spent on latent heat, returns any residual heat exactly, and
uses the same operation in reverse for freezing or condensation. The vessel solver will apply that
residual to ΔT = q / ΣnCp only after phase resolution.
Electrochemical series
Section titled “Electrochemical series”- Source: CRC Handbook of Chemistry and Physics, 97th edition (2016–2017), “Electrochemical Series” (P. Vanýsek), standard reduction potentials versus the standard hydrogen electrode at 298.15 K, aqueous, unit activity. Cross-checked against the NIST-sourced values reproduced in A. J. Bard, R. Parsons, J. Jordan, Standard Potentials in Aqueous Solution (IUPAC, 1985).
- The standard hydrogen electrode
2 H⁺ + 2 e⁻ → H₂is0.000 Vby definition.
ElectrochemicalSeries holds the stage-1 couples whose elements are already in PeriodicTable
(§36.2): E°(V) — K⁺/K −2.931, Ca²⁺/Ca −2.868, Na⁺/Na −2.710, Mg²⁺/Mg −2.372, Al³⁺/Al −1.662,
Fe²⁺/Fe −0.447, Sn²⁺/Sn −0.138, 2 H⁺/H₂ 0.000, Sn⁴⁺/Sn²⁺ +0.151, Cu²⁺/Cu +0.342, Cu⁺/Cu +0.521,
Fe³⁺/Fe²⁺ +0.771, O₂+4 H⁺/2 H₂O +1.229. No value is chosen for balance (§28.9); the table is
append-only and id-stable (§28.8).
GalvanicCellMath composes two of these half-reactions into a full reaction: E°cell = E°cathode − E°anode, the overall electron count is lcm(nₐ, n_c), and ΔG° = −nFE°cell is derived, never
authored alongside the potential (§28.6 — “Gibbs free energy and cell potential are the same quantity
in different units”). The C0 round-trip test asserts E°cell is recovered from that ΔG° for every
ordered couple pair in the catalogue. Concentration dependence is the Nernst form already in
ThermodynamicMath, E = E°cell − (RT/nF)·ln Q, sharing §28.4’s reaction quotient.
- Activation overpotential: Butler–Volmer high-field (Tafel) limit,
η = (RT / (α·n·F))·ln(j/j₀),αthe charge-transfer coefficient in(0, 1]. IUPAC Gold Book, Tafel equation https://goldbook.iupac.org/terms/view/T06174 and Butler–Volmer equation https://goldbook.iupac.org/terms/view/BT07020. Only evaluated forj ≥ j₀; IR drop and concentration overpotential are out of C0 scope (§28.9). - The electrolysis driving voltage is
−E°cell + η_anode + η_cathodefor a non-spontaneous cell (E°cell < 0), i.e. the reversible decomposition potential plus both electrode overpotentials. - Faraday’s laws:
n = I·t / (z·F),m = n·M. IUPAC Gold Book, Faraday constant https://goldbook.iupac.org/terms/view/F02325. Amperes and seconds convert directly into moles; the electrolysis line’s throughput isF, not a tuned number (§28.6 consequence 3).
The vessel solver tick
Section titled “The vessel solver tick”VesselSolver.TryAdvanceTick is the §28.7 per-vessel integrator. It advances one fixed
ProcessTimeScale.ProcessSecondsPerSimulationTick (three process seconds at the 20 Hz / 60× clock),
split into a power-of-two number of equal deterministic sub-steps chosen once from the tick-start
state (§28.7 stiff-system rule). The stiffness estimate is the worst over all reactions of the
fractional limiting-reagent change and the fractional temperature swing the reaction would cause,
plus the swing from any applied electrical/heating work. Per sub-step, in a canonical ordering of the
physical reaction definition (with ReactionId only as a tie-breaker): evaluate the reaction (ReactionEvaluator), clamp its extent against the limiting reagent
(ReactionExtentMath) and against available sensible heat, apply Δn = ν·ξ, and accumulate
q = −Σ(ξ·ΔrH). Before any residual energy changes temperature, the solver heats/cools to the next
reachable supplied phase boundary and spends energy there on latent heat; only then does it apply
ΔT = q_remaining / ΣnCp(T) with ΣnCp recomputed after any phase transfer.
Conservation (§28.7 step 9) is checked two ways. Reaction construction proves both atom balance and
formal-charge balance exactly: Σν·atoms = 0 for every element and Σν·z = 0 in integer
elementary-charge units, so ionic/electrochemical content cannot enter the solver with a hidden
charge source or sink. The vessel tick then checks total mass — Σ(nᵢ·Mᵢ) before vs after. An
atom-balanced reaction conserves mass exactly because each molar mass is Σ(atomic weights) over the
same element table, so Σν·M = Σ(weight · Σν·atoms) = 0; the tolerance is correspondingly tight
(1e-6 g + 1e-9·massBefore). A drift beyond it fails the tick and the caller quarantines the vessel
rather than simulating a leak. The C0 acceptance test advances 10,000 reproducible randomized,
atom- and charge-balanced vessel scenarios twice and requires bit-identical final charges, state and
mass drift.
Stated C0 approximations added here
Section titled “Stated C0 approximations added here”Recorded per §28.9’s rule that the project writes its approximations down:
- Sensible-heat throttle. Within a sub-step a single reaction may not swing
Tby more than 10 % of the current temperature; past that its extent is capped to the vessel’s available sensible heat. This stands in for the thermal-feedback and shrinking-core self-limiting of a real strongly endothermic (or explosively exothermic) charge, which the fixed-sub-step-count rule cannot otherwise resolve. The reverse reaction then carriesTback toward the adiabatic equilibrium on the following sub-steps. - Temperature floor.
Tis held at1 Kif the arithmetic of an extreme endotherm would carry it lower mid-tick. A real vessel cannot be cooled below absolute zero by a reaction; the floor plus the recombination exotherm keep the tick physical. - Pure-phase boundaries. C0 accepts authored solid↔liquid and liquid↔gas boundaries at their declared reference pressure. It holds a vessel at the boundary while consuming/releasing latent heat, then carries any residual energy into the new phase. Pressure-dependent phase diagrams and aqueous/solution transitions remain later content, not silently approximated here.
- No spontaneous reverse from a reactant-free state. A reaction whose rate points backward only because its reactants are absent (so the reaction quotient is dominated by the products) is held at zero rate. The equilibrium amount of reactant such a state would regenerate is negligible, and the forward reaction resumes correctly the moment reactant is re-added.
- Environment heat transfer and venting/rupture are not in C0. Pressure
Σn_gas·R·T/Vis reported; conduction, radiation and pressure relief arrive with C1/C3.
Substance catalogue — Assets/_Game/Data/Chemistry/Substances/
Section titled “Substance catalogue — Assets/_Game/Data/Chemistry/Substances/”Unlike the fixtures above, these are the first entries in an actual authored
SubstanceCatalog (§36.1’s VoxelSandbox.Data authoring layer, baked into the Chemistry
core’s SubstanceTable). Each SubstanceDefinition asset also carries its own
sourceCitation field inline — this section exists so the catalogue’s provenance can be
read and cross-checked in one place. H is reproduced exactly as NIST-JANAF publishes it
and used verbatim as the substance’s authored standardEnthalpyOfFormationKilojoulesPerMol
— ReactionThermodynamics computes ΔfH°(T) = authored ΔfH° + ShomateEnthalpyChange(T),
and ShomateEnthalpyChange(298.15 K) is zero only when the authored value matches the
table’s own H exactly, so the two must never be sourced independently.
- Source for every entry below except Graphite (see its own note just after the table): NIST-JANAF Thermochemical Tables, 4th ed. (Chase, 1998), via the NIST Chemistry WebBook (webbook.nist.gov).
| Substance | Formula/Phase | CAS | ΔfH°(298.15) kJ/mol | S°(298.15) J/(mol·K) | Shomate range | WebBook page |
|---|---|---|---|---|---|---|
| Oxygen | O2(g) | 7782-44-7 | 0 (reference state) | 205.152 | 100-700 K | cbook.cgi?ID=C7782447 |
| Carbon dioxide | CO2(g) | 124-38-9 | -393.5224 | 213.785 | 298-1200 K | cbook.cgi?ID=C124389 |
| Carbon monoxide | CO(g) | 630-08-0 | -110.5271 | 197.660 | 298-1300 K | cbook.cgi?ID=C630080 |
| Water | H2O(l) | 7732-18-5 | -285.8304 | 69.95 | 298-500 K | cbook.cgi?ID=C7732185 (liquid-phase table) |
| Quicklime | CaO(s) | 1305-78-8 | -635.0894 | 38.19 | 298-3200 K | cbook.cgi?ID=C1305788 (solid-phase table) |
| Slaked lime | Ca(OH)2(s) | 1305-62-0 | -986.0851 | 83.36 | 298-1000 K | cbook.cgi?ID=C1305620 (solid-phase table) |
| Graphite | C(s), reference state | 7782-42-5 | 0 (reference state) | 5.740 | 298.15-2000 K | janaf.nist.gov/tables/C-002.html |
| Wustite | FeO(s) | 1345-25-1 | -272.04 | 60.75 | 298-1650 K | cbook.cgi?ID=C1345251 (solid-phase table) |
Graphite is different from the other six: JANAF publishes graphite as a row-by-row
T, Cp, S, H-H298 table (janaf.nist.gov/tables/C-002.html), not pre-fit Shomate
coefficients — JANAF does not fit graphite to the Shomate form at all, and NIST WebBook’s
condensed-phase page for carbon shows only isolated Cp/S measurements, no table. The
Shomate coefficients on GraphiteSolid.asset are this session’s own unweighted
least-squares fit of the Shomate Cp(t) = A + Bt + Ct² + Dt³ + E/t² polynomial to
JANAF’s published Cp(T) rows from 298.15-2000 K (max relative Cp error 1.6%; the
fitted H(T)-H(298) and S(T) curves that follow from A-E track JANAF’s own published
columns to within 0.1% across the whole range — checked, not assumed). This is a real fit
to a primary source, not an invented number, but it is this session’s derived fit, not a
republished literature Shomate table like the other six entries — flag it as such if a
later pass finds a published graphite Shomate fit to replace it with.
Densities are standard reference values from the CRC Handbook of Chemistry and Physics
(gases at 0 °C/1 atm, water at 25 °C, minerals at their normal density) — informational
for now; no current solver path reads DensityKilogramsPerCubicMeter.
Cross-checks against MASTERPLAN §36.3’s stated reaction enthalpies
Section titled “Cross-checks against MASTERPLAN §36.3’s stated reaction enthalpies”These substances let several of §36.3’s headline numbers be recomputed independently from the sourced data above, as a sanity check on both the masterplan text and the sourcing here:
- Calcination
CaCO3 -> CaO + CO2: needs calcite’s own ΔfH°, which NIST WebBook does not publish a Shomate fit for (see Known gaps below). Using the widely-cited calcite value ΔfH°(CaCO3, s) = -1206.9 kJ/mol (Robie & Hemingway, 1995, USGS Bulletin 2131): ΔrH° = (-635.0894 + -393.5224) - (-1206.9) = +178.3 kJ/mol, matching §36.3’s stated “ΔH°298 ≈ +178.3” exactly. - Slaking
CaO + H2O(l) -> Ca(OH)2: ΔrH° = -986.0851 - (-635.0894 + -285.8304) = -65.2 kJ/mol, close to §36.3’s stated “ΔH = -63.7” (the ~1.5 kJ/mol gap is ordinary literature-to-literature spread between compilations, not a sourcing error here). - Boudouard
C + CO2 <-> 2 CO: ΔrH° = 2(-110.5271) - 0 - (-393.5224) = +172.5 kJ/mol, matching §36.3’s stated “ΔH = +172.5” — the “keystone” reaction — essentially exactly, now that graphite is sourced. (Combustion’sΔrH°is not an independent check:CO2’s ownΔfH°is defined relative to graphite + O2, so recomputingC + O2 -> CO2from these three entries only recoversCO2’s own tabulatedΔfH°by construction, not a second independent measurement.)
Reactions — none authored yet
Section titled “Reactions — none authored yet”ReactionDefinition requires a real, citable Arrhenius pre-exponential factor and
activation energy (§28.5: “A and Ea are never invented merely to hit a desired play
time”) in addition to sourced thermodynamics. A heterogeneous definition also requires
an explicit kinetics material record: the tested feedstock/form and relevant preparation
(for example, wood species, pyrolysis temperature and particle-size fraction for a char).
That record is separate from a formula because the same C(s) formula does not make a
graphite experiment applicable to an arbitrary charcoal. Thermodynamics are now sourced for every
substance in §36.3’s Boudouard/combustion/calcination/slaking cluster, but kinetics
remain the blocker for all four:
- Combustion (
C + O2 -> CO2,2C + O2 -> 2CO) and Boudouard (C + CO2 <-> 2CO) are heterogeneous solid-gas reactions whose real literature rate constants are char/coal-source-specific, not a single graphite constant: a Boudouard literature search this session turned up activation energies from 143 to 255 kJ/mol depending on the specific coal char and CO/CO2 ratio, with no single citable “the graphite rate.” Authoring one of those char-specific values as “the” graphite reaction would misattribute a different material’s measured kinetics. - CO oxidation (
2 CO + O2 -> 2 CO2) has a well-known primary-source global rate expression — Dryer, F.L. & Glassman, I., High Temperature Oxidation of CO and CH4, 14th Symposium (International) on Combustion, 1973, pp. 987-1003:-d[CO]/dt = 10^14.6±0.25 · exp[-40000/(RT)] · [CO]^1.0 · [H2O]^0.5 · [O2]^0.25. Obstacle 1 (units) is now resolved. The activation energy is confirmed as 40,000 ± 1,200 cal/mol (≈167.4 ± 5.0 kJ/mol, at 4.184 J/cal), independently of the abstract-only inference this entry previously relied on — sourced via the EPA HERO reference database’s record of the paper’s abstract,https://hero.epa.gov/reference/6289932/, which reproduces the rate expression with its units stated explicitly rather than left to the era-convention inference this entry previously had to make. Obstacle 2 (functional form) is now more precisely characterised, not resolved — and it is larger than “do the unit conversion.” The literature orders sum to 1.75 (1.0 + 0.5 + 0.25), so converting each concentration[X] = a_X·p°/(RT)into this codebase’s activities leaves a(p°/(RT))^1.75factor that is a genuine T⁻¹·⁷⁵ power-law term on top of the Arrhenius exponential, plus the literature’s intrinsic per-unit-volume rate needs multiplying by an actual reactor volume to become this codebase’s extensive moles-per-secondr.ReactionKineticsMath’s Arrhenius form (k = A·exp(-Ea/RT), checked directly inAssets/_Game/Scripts/Chemistry/ReactionEvaluator.cs) has noTⁿprefactor slot, andReactionEvaluator.TryEvaluatenever multiplies the final rate byvolumeCubicMeters(volume only enters earlier, per species, computing each gas activity) — so there is no single vessel-independent constantA_minethat reproduces the literature rate exactly for every vessel size and temperature. Folding a reference volume and reference temperature into one constant to make it fit would itself be inventing a convention nowhere in the source, the same failure mode as inventingA/Eaoutright. Closing this needs an actual decision on whetherReactionKineticsMath/ReactionEvaluatorshould gain a modified-ArrheniusTⁿterm and an explicit volume multiplier for intrinsic (per-volume) literature rate laws — a Chemistry-core contract change, not a data lookup — before CO oxidation (or any other order-sum-≠-1, concentration-based literature rate) can become a faithfulReactionDefinition. It also needs H2O present as a catalyst the currentReactionSpecies/ReactionTermAuthoringschema cannot express as a non-stoichiometric third body (every term needs a non-zero coefficient) — though for this specific reaction, using the moist-air rate law as authored is arguably the more honest choice for a game where furnace/wood combustion realistically always has trace moisture present, rather than a limitation to route around. - Slaking (
CaO + H2O(l) -> Ca(OH)2) is diffusion/dissolution-controlled in the real literature (surface Ca²⁺/OH⁻ diffusion under moderate agitation, Ca(OH)2 surface dissolution under vigorous agitation), not a simple Arrhenius mass-action step. A defensible rate law needs a heterogeneous dissolution model this session did not have time to source to the project’s standard, rather than an ArrheniusA/Eapair that would misrepresent the real mechanism. - Calcination (
CaCO3 -> CaO + CO2) still needs calcite’s own Shomate fit before it can be authored at all — see Known gaps.
All four are left for whoever picks up reaction-content authoring next, with as much
substance-side thermodynamics done for them as this session could source. The
ReactionDefinition/ReactionCatalog authoring path itself is complete and covered by
Assets/_Game/Tests/EditMode/Data/ReactionCatalogTests.cs using fixture data, so adding a
real reaction once its kinetics are sourced is just authoring one more asset.
C3.6 fuel-in-air flammability eligibility
Section titled “C3.6 fuel-in-air flammability eligibility”FuelAirFlammabilityMath is intentionally a read-only, source-scoped eligibility
layer, not a combustion, explosion or damage model. Its first authored reference profile
is hydrogen in air: NASA’s Safety Standard for Hydrogen and Hydrogen Systems reports a
4.0–75.0 vol% hydrogen-in-air flammability interval at 14.7 psia / ambient temperature
(the report notes that pressure and propagation conditions affect the interval).
- Source: NASA, Safety Standard for Hydrogen and Hydrogen Systems (NASA-STD-8719.16B,
2008), section 2.11 / appendix A discussion of hydrogen-air limits,
https://www1.grc.nasa.gov/wp-content/uploads/chapter_06.pdf; accessed 2026-09-10. FuelAirFlammabilityProfile.CreateHydrogenInAirrecords those fractions as0.04and0.75and carries source idNASA-H2-AIR-FLAMMABILITY-4-75-2008. It does not claim that the reference interval applies outside its stated conditions.TryEvaluatePartsPerMilliononly converts a previously measured/modelled dry-air ppmv value to a fraction and classifies it as lean, within the published interval, or rich. The interval endpoints are inclusive. It rejects impossible (>100% v/v) and malformed inputs.- An
IsIgnitionCandidateresult additionally needs an explicit supplied ignition source, but still means only “candidate under the profile’s air assumption.” It does not assert oxygen composition, ignition energy, flame propagation, combustion, confinement or overpressure; it moves no gas and creates no heat. Those require C3’s atmospheric reaction-domain contract and a full mass/energy-conserving reaction before any player-facing ignition effect is permitted.
Known gaps
Section titled “Known gaps”Calcite (CaCO3, s) has no NIST/JANAF Shomate fit and no row-by-row Cp(T) table this
session could locate from a primary, independently-verifiable source (NIST WebBook’s page
for its CAS number has no thermochemistry table at all; JANAF’s own tables have no calcium
carbonate entry — calcium carbonate is a mineral, not one of JANAF’s combustion-chemistry
species). A search summary surfaced a plausible-looking Maier-Kelley-style fit
(Cp = -184.79 + 0.32322T - 3688200T⁻² - 1.2974e-4·T² + 3883.5T⁻¹ᐟ², attributed loosely to
a 1981 Physics and Chemistry of Minerals paper on natural calcite) but this session could
not reach the primary paper to verify the exact coefficients, units, or valid range, so it
is not used here — reproducing an unverified number would be worse than leaving the gap
documented. A future pass should get the Robie & Hemingway (1995, USGS Bulletin 2131) or
that 1981 paper’s actual table (both are geology references, likely behind a paywall or
requiring a library scan rather than open web search) and fit it the same way
GraphiteSolid.asset was fit above. Calcination is the only §36.3 T0-T2 reaction this
blocks; combustion and Boudouard are unblocked on the thermodynamics side (see the
substance table above) and wait only on kinetics.
Wollastonite (CaSiO3, s) — C2.5’s slag former — has the same shape of gap. NIST
WebBook’s page for its CAS number (13983-17-0) carries only molecular weight and an IR
spectrum link, no thermochemistry table; it is a mineral, not a JANAF combustion species.
Point values are genuinely sourced: ΔfH°(298.15 K) = -1634.5 ± 1.8 kJ/mol and
S°(298.15 K) = 81.358 J/(mol·K) (Robie & Hemingway, reexamining the calcite + quartz =
wollastonite equilibrium; consistent with the widely cited Robie, Hemingway & Fisher 1978,
USGS Bulletin 1452 compilation). No full Cp(T) table or published Shomate/Maier-Kelley
polynomial was reachable this session: the low-temperature heat-capacity source (Krupka,
Robie, Hemingway, Kerrick & Ito, 1985, American Mineralogist 70) is behind a broken/
unreachable host, the Holland & Powell (2011) internally-consistent dataset publishes Cp in
its own k0 + k1·T⁻⁰·⁵ + k2·T⁻² + k3·T⁻³ form (not directly a Shomate polynomial, and this
session could not reach a copy of the dataset table itself), and every other lead
(Journal of Phase Equilibria and Diffusion’s CaO-SiO2 Cp review, the European Journal of
Mineralogy wollastonite/pseudowollastonite paper) was paywalled past its abstract. Do not
fit a Shomate polynomial from the point values above — a single (ΔfH°, S°) pair
constrains none of a Shomate curve’s five Cp(T) coefficients; that would be invented
precision presented as sourced data, the exact failure mode §36.3 forbids. C2.5’s slag
reaction is blocked on this Cp(T) gap for wollastonite specifically, not on FeO (now
sourced above) and not on code structure.
Fayalite (Fe2SiO4, s) — the actual product of C2.5’s FeO-bearing case
(2 FeO + SiO2 -> Fe2SiO4) — has the identical gap, one level further downstream than it
first looks: FeO itself is now sourced (above), but the slag phase it forms is not. NIST
WebBook’s page for CAS 1317-71-1 shows only an IR-spectrum link, no thermochemistry table,
the same “mineral, not a JANAF species” pattern as wollastonite. Point values were reachable
this time: ΔfH°(298.15 K) = -1478.17 kJ/mol, S°(298.15 K) = 151.0 J/(mol·K), and a single
Cp(298.15 K) = 131.9 J/(mol·K) (Robie & Hemingway, 1982, American Mineralogist 67,
“Heat capacity and entropy of fayalite between 5.1 and 383 K”). The primary paper itself
(minsocam.org/ammin/AM67/AM67_463.pdf) was unreachable from this session (connection
refused — the Mineralogical Society of America’s own PDF archive host, also unreachable for
a different paper earlier this session; this looks like a host-level block from this
environment, not a broken individual link) and its calorimetric range (5.1-383 K) would not
have covered smelting temperatures even if reached. One Cp point is not a Cp(T) table:
it fixes none of a Shomate curve’s temperature-dependence coefficients any more than
wollastonite’s (ΔfH°, S°) pair did — do not fit one from this either. Net effect: both of C2.5’s
candidate slag products (CaSiO3, Fe2SiO4) are blocked on the same class of Cp(T) gap —
sourcing either one first is enough to author one real slag reaction and close C2.5’s
Done when, which asks for a gangue-bearing reduction that closes its atom balance with
a distinct condensed slag phase, not both cases simultaneously.
User-contributed notes
Corrections, clarifications, and practical tips for this page. Anonymous is fine — a name is optional. Basic Markdown works:
**bold**,*italic*,`code`, and links.Notes policy
Notes are lightly filtered for spam and may be edited or removed. Keep them about this page — no support requests, no personal data, nothing you would not publish. Links are limited and marked
nofollow.