app / rule set
engine 0.1, data 2026.09.05-1
Rule set R00 to R24
Every console line cites one of these. The equation and inputs come from data/quantities.json; the console template is the code registry. Both are versioned with the engine.
- R00 Preferred value selectionpreferred, fired in C-0412choose row with quality A > B > D > C, matching form, T window containing operating T; else nearest T with flag extrapolatedinputs: properties. source: house rule
- R01 Biaxial modulusM, fired in C-0412M = E / (1 - nu)inputs: E, nu. source: standard
- R02 Total CTE mismatchDelta_alpha_tot, fired in C-0412alpha_metal - alpha_ceramic, secant values over [T_ref, T_op]inputs: alpha. source: standard
- R03 Temperature excursionDelta_T, fired in C-0412T_process - T_op (sign carried)inputs: duty cycle
- R04 Unrelieved mismatch stresssigma_mis, fired in C-0412sigma = M_film * Delta_alpha * Delta_Tinputs: M, Delta_alpha, Delta_T. source: Stoney/Timoshenko limit
- R05 Step stress, graded stacksigma_step, fired in C-0412sigma_step = M_H * Delta_alpha_tot * Delta_T / (n + 1)inputs: M_H, Delta_alpha_tot, Delta_T, n. source: Paper 2 minimax
- R06 Survival criterion PhiPhi, fired in C-0412Phi = M_H Delta_alpha_tot Delta_T / ((n + 1) sigma_c); pass if Phi <= 1inputs: R05, sigma_c. source: Paper 2
- R07 Minimum step countn_min, fired in C-0412n_min = ceil(M_H Delta_alpha_tot Delta_T / sigma_c) - 1, floor 0inputs: R06. source: Paper 2
- R08 Membrane stresssigma_mem, fired in C-0412sigma_mem = E_m/(1-nu_m) * Delta_alpha_(m,sub) * Delta_T, capped at sigma_y with plastic strain reportedinputs: E, nu, alpha, sigma_y. source: Paper 1
- R09 Plastic strainepsilon_pl, fired in C-0412epsilon_pl = (sigma_mem - sigma_y)/E_m if sigma_mem > sigma_yinputs: R08. source: Paper 1
- R24 Membrane gatemembrane_gate, fired in C-0412pass if h_m sigma_y >= sum over ceramic-side layers of sigma_i h_iinputs: R05, R08. source: Paper 1 membrane_gate.py
- R10 Grain size from XRDd_xrd, fired in C-0412Scherrer d = K lambda / (beta cos theta), K = 0.9, beta^2 = beta_obs^2 - beta_inst^2; lower bound when strain broadening is present; Williamson-Hall when >= 3 reflectionsinputs: XRD file. source: Paper 3 scripts
- R11 Residual stress from XRDsigma_r_xrd, fired in C-0412sin^2 psi: sigma = (E/(1+nu)) * (d(d_psi)/d(sin^2 psi)) / d_0inputs: XRD file, E, nu. source: standard
- R12 Effective diffusivityD_eff, fired in C-0412D_eff = D_l + (3 delta / d) D_gb; D = D0 exp(-Q/RT)inputs: D0, Q, d, delta, T. source: Paper 3, Hart
- R13 Barrier breakthrough timet_bt, fired in C-0412t_bt = h^2 / (6 D_eff); Harrison regime A if sqrt(D_l t) > d, C if sqrt(D_l t) < delta, else Binputs: R12, h, t. source: Paper 3
- R14 Pulses survivedN_surv, fired in C-0412sum of segment t_i D_eff(T_i) until h^2/6 is consumedinputs: R12, duty cycle. source: Paper 3
- R15 Survival probabilityP_survive, fired in C-0412Monte Carlo over inputs (lognormal D0, normal Q, E, alpha, uniform d); fraction of draws with N_surv >= Ninputs: R14. source: Paper 3, Paper 5
- R20 Sobol indicesS_i, fired in C-0412first-order and total S_i of the verdict quantity over the input distributions, Saltelli samplinginputs: R15. source: Paper 5
- R21 Measure nextmeasure_next, fired in C-0412rank inputs by S_Ti x relative uncertainty x (1 / instrument cost); top three with instrument and expected uncertainty after measurementinputs: R20, instrument table. source: Paper 5
- R16 Energy release rateG, fired in C-0412G = Z sigma^2 h / E_bar, E_bar = E/(1-nu^2), Z = 0.5 edge delamination, Z = 1.976 channelling crackinputs: sigma, h, E, nu. source: Hutchinson and Suo 1992, Paper 4
- R17 Phase anglepsi_load, fired in C-0412from Dundurs alpha_D, beta_D; edge delamination psi approximately 52 deg for alpha_D = 0inputs: E, nu. source: Hutchinson and Suo
- R18 Fracture marginmargin, fired in C-0412margin = G_c(psi) / G; G_c(psi) = G_Ic [1 + tan^2((1 - lambda) psi)], lambda default 0.3; delamination if margin < 1inputs: R16, R17, G_c. source: Paper 4
- R22 Dundurs parameteralpha_D, fired in C-0412alpha_D = (E_bar_1 - E_bar_2)/(E_bar_1 + E_bar_2)inputs: E, nu. source: standard
- R19 Weakest interfaceweakest, fired in C-0412minimum over interfaces of 1/Phi and R18 margin, and the minimum R13 time; verdict names the interface and the mechanisminputs: R06, R13, R18. source: house rule
- R23 Process windowwindow, fired in C-0412set of (T_process, ramp) for which R06 and R18 pass and R13 exceeds the duty; 2D regioninputs: R06, R13, R18. source: house rule