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.

data
  • R00 Preferred value selectionpreferred, fired in C-0412
    choose row with quality A > B > D > C, matching form, T window containing operating T; else nearest T with flag extrapolated
    inputs: properties. source: house rule
stress
  • R01 Biaxial modulusM, fired in C-0412
    M = E / (1 - nu)
    inputs: E, nu. source: standard
  • R02 Total CTE mismatchDelta_alpha_tot, fired in C-0412
    alpha_metal - alpha_ceramic, secant values over [T_ref, T_op]
    inputs: alpha. source: standard
  • R03 Temperature excursionDelta_T, fired in C-0412
    T_process - T_op (sign carried)
    inputs: duty cycle
  • R04 Unrelieved mismatch stresssigma_mis, fired in C-0412
    sigma = M_film * Delta_alpha * Delta_T
    inputs: M, Delta_alpha, Delta_T. source: Stoney/Timoshenko limit
  • R05 Step stress, graded stacksigma_step, fired in C-0412
    sigma_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-0412
    Phi = M_H Delta_alpha_tot Delta_T / ((n + 1) sigma_c); pass if Phi <= 1
    inputs: R05, sigma_c. source: Paper 2
  • R07 Minimum step countn_min, fired in C-0412
    n_min = ceil(M_H Delta_alpha_tot Delta_T / sigma_c) - 1, floor 0
    inputs: R06. source: Paper 2
  • R08 Membrane stresssigma_mem, fired in C-0412
    sigma_mem = E_m/(1-nu_m) * Delta_alpha_(m,sub) * Delta_T, capped at sigma_y with plastic strain reported
    inputs: E, nu, alpha, sigma_y. source: Paper 1
  • R09 Plastic strainepsilon_pl, fired in C-0412
    epsilon_pl = (sigma_mem - sigma_y)/E_m if sigma_mem > sigma_y
    inputs: R08. source: Paper 1
  • R24 Membrane gatemembrane_gate, fired in C-0412
    pass if h_m sigma_y >= sum over ceramic-side layers of sigma_i h_i
    inputs: R05, R08. source: Paper 1 membrane_gate.py
characterisation
  • R10 Grain size from XRDd_xrd, fired in C-0412
    Scherrer 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 reflections
    inputs: XRD file. source: Paper 3 scripts
  • R11 Residual stress from XRDsigma_r_xrd, fired in C-0412
    sin^2 psi: sigma = (E/(1+nu)) * (d(d_psi)/d(sin^2 psi)) / d_0
    inputs: XRD file, E, nu. source: standard
kinetics
  • R12 Effective diffusivityD_eff, fired in C-0412
    D_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-0412
    t_bt = h^2 / (6 D_eff); Harrison regime A if sqrt(D_l t) > d, C if sqrt(D_l t) < delta, else B
    inputs: R12, h, t. source: Paper 3
  • R14 Pulses survivedN_surv, fired in C-0412
    sum of segment t_i D_eff(T_i) until h^2/6 is consumed
    inputs: R12, duty cycle. source: Paper 3
uncertainty
  • R15 Survival probabilityP_survive, fired in C-0412
    Monte Carlo over inputs (lognormal D0, normal Q, E, alpha, uniform d); fraction of draws with N_surv >= N
    inputs: R14. source: Paper 3, Paper 5
  • R20 Sobol indicesS_i, fired in C-0412
    first-order and total S_i of the verdict quantity over the input distributions, Saltelli sampling
    inputs: R15. source: Paper 5
  • R21 Measure nextmeasure_next, fired in C-0412
    rank inputs by S_Ti x relative uncertainty x (1 / instrument cost); top three with instrument and expected uncertainty after measurement
    inputs: R20, instrument table. source: Paper 5
fracture
  • R16 Energy release rateG, fired in C-0412
    G = Z sigma^2 h / E_bar, E_bar = E/(1-nu^2), Z = 0.5 edge delamination, Z = 1.976 channelling crack
    inputs: sigma, h, E, nu. source: Hutchinson and Suo 1992, Paper 4
  • R17 Phase anglepsi_load, fired in C-0412
    from Dundurs alpha_D, beta_D; edge delamination psi approximately 52 deg for alpha_D = 0
    inputs: E, nu. source: Hutchinson and Suo
  • R18 Fracture marginmargin, fired in C-0412
    margin = G_c(psi) / G; G_c(psi) = G_Ic [1 + tan^2((1 - lambda) psi)], lambda default 0.3; delamination if margin < 1
    inputs: R16, R17, G_c. source: Paper 4
  • R22 Dundurs parameteralpha_D, fired in C-0412
    alpha_D = (E_bar_1 - E_bar_2)/(E_bar_1 + E_bar_2)
    inputs: E, nu. source: standard
verdict
  • R19 Weakest interfaceweakest, fired in C-0412
    minimum over interfaces of 1/Phi and R18 margin, and the minimum R13 time; verdict names the interface and the mechanism
    inputs: R06, R13, R18. source: house rule
  • R23 Process windowwindow, fired in C-0412
    set of (T_process, ramp) for which R06 and R18 pass and R13 exceeds the duty; 2D region
    inputs: R06, R13, R18. source: house rule
Activity0 / 42 steps
mock: simulated measurement. quality C: placeholder, to verifyR00 to R24