code wiki / (root) / nx_arrhenius.nx

nx_arrhenius.nx

buildroot/runtime/nx_arrhenius.nx

10639 B229 linesdepth 3pulls 3 transitivereach 0 importersview sourcekind orphan library
docsdependenciesstructsconstsfunctions

about

nx_arrhenius.nx -- Arrhenius rate-vs-temperature primitive. license_tier: PUBLIC_DOMAIN_PHYSICS genealogy_id: arrhenius_1889_aktivieringsenergi + van_hoff_1884_kinetics + ellis_roberts_1980_seed_viability_eq_uses_arrhenius_form + nishi_q10_fixed_point_substrate_2026 The canonical chemical-kinetics + biological-rate primitive. ⚠INTENDED consumers, NOT current ones. This header used to read "Used by:" and list the four lanes below. As of 2026-07-25 NOTHING in the tree imports this file except its own cross-check gate -- the list was a design intent that read like an inventory of live dependents, which is how a dead primitive keeps looking load-bearing. Corrected to say what is true: - Seed viability decay (Ellis-Roberts 1980 σ-equation) [planned] - Soil microbial respiration rate (Lloyd & Taylor 1994) [planned] - Indoor-greenhouse climate-effect modeling (greenhouse plant growth rates per Q10 biological rule of thumb) [planned] - Reservoir nutrient solution chemistry kinetics [planned] - Any temperature-dependent rate the substrate needs to model The zero-consumer state is also why the reciprocal-precision defect fixed below survived: nothing called it, so nothing noticed it always returned "temperature has no effect". A primitive with no gate AND no callers is not a capability, it is an unverified intention. ===== The equation =============================================== k(T) = A * exp(-Ea / (R * T)) where: k(T) = rate constant at absolute temperature T A = pre-exponential factor (frequency factor) Ea = activation energy [J / mol] R = universal gas constant = 8.314 J/(mol*K) T = absolute temperature [Kelvin] In practice the substrate cares about RATE RATIOS more than absolute rate constants:

dependencies 2 imports · 0 importers

nx_syscalls.nx nx_exp.nx nx_arrhenius.nx

imports: nx_syscalls.nxnx_exp.nx

imported by: nobody (leaf or entry point)

structs

none

consts

80const NX_ARRH_R_J_PER_MOL_K_Q10: i64 = 8514
84const NX_ARRH_Q10_ONE: i64 = 1024
88const NX_ARRH_KELVIN_OFFSET_Q10: i64 = 279706
92const NX_ARRH_T_FREEZER_Q10: i64 = 261177 // -18°C = 255.15 K (long-term seed storage)
93const NX_ARRH_T_FRIDGE_Q10: i64 = 283802 // 4°C = 277.15 K
94const NX_ARRH_T_ROOM_Q10: i64 = 304586 // 25°C = 298.15 K (lab reference)
95const NX_ARRH_T_WARM_Q10: i64 = 314978 // 35°C = 308.15 K (accelerated-aging tests)
96const NX_ARRH_T_HOT_Q10: i64 = 325370 // 45°C = 318.15 K
99const NX_ARRH_EA_SEED_DECAY_TYPICAL_Q10: i64 = 92160000 // ~90 kJ/mol (orthodox seed)
100const NX_ARRH_EA_SEED_DECAY_OILSEED_Q10: i64 = 107520000 // ~105 kJ/mol (oilseed, lipid)
101const NX_ARRH_EA_SOIL_RESPIRATION_Q10: i64 = 66560000 // ~65 kJ/mol (Lloyd-Taylor)
105const NX_ARRH_OK: i64 = 0
106const NX_ARRH_ERR_BAD_TEMP: i64 = -1 // T <= 0 K (invalid)
107const NX_ARRH_ERR_BAD_EA: i64 = -2 // Ea < 0 (invalid)

functions

115func nx_arrh_celsius_to_kelvin_q10(c_q10: i64) -> i64
119func nx_arrh_kelvin_to_celsius_q10(k_q10: i64) -> i64
140func nx_arrh_rate_ratio_q10(ea_j_per_mol_q10: i64, t1_kelvin_q10: i64, t2_kelvin_q10: i64) -> i64
186func nx_arrh_rate_ratio_celsius_q10(ea_j_per_mol_q10: i64, t1_c_q10: i64, t2_c_q10: i64) -> i64
208func nx_arrh_biological_q10_coefficient(ea_j_per_mol_q10: i64, t_ref_kelvin_q10: i64) -> i64
226func nx_arrh_harrington_longevity_multiplier_q10(t1_c_q10: i64, t2_c_q10: i64) -> i64