{
  "case": "thermal_stress / Timoshenko (1925) bimetallic strip curvature under uniform heating",
  "citation": "Timoshenko, S. (1925) 'Analysis of Bi-Metal Thermostats', J. Opt. Soc. Am. 11(3); equal-thickness equal-modulus (n=m=1) special case kappa=1.5*(alpha1-alpha2)*deltaT/h, derived here independently via composite-beam equilibrium (N=0, M=0) and cross-checked against that known special case.",
  "backend_fix": "Added expression-valued material coefficient support to dolfinx_backend.py's _solve_thermal_with_stress (_material_coeff/_mesh_bbox helpers), mirroring the existing BC-value expression pattern (ConditionEvaluator) -- lets alpha (and E, nu, k) vary spatially within a single mesh volume, which is what a bonded bimetallic strip needs. See module docstring for the full story (this replaced an earlier single-material substitute case after being directly challenged and re-tested).",
  "geometry": {
    "L_m": 0.5,
    "width_m": 0.02,
    "total_thickness_m": 0.02
  },
  "material": {
    "E_Pa": 150000000000.0,
    "nu": 0.3,
    "alpha_bottom_1_K": 1.9e-05,
    "alpha_top_1_K": 1.2e-05,
    "k_W_mK": 100.0,
    "T_ref_K": 293.15
  },
  "delta_T_K": 100.0,
  "kappa_1_per_m": 0.052500000000000005,
  "runs": [
    {
      "size_factor": 1.0,
      "n_dofs": 6859,
      "tip_dz_exact_m": 0.006562500000000001,
      "tip_dz_fem_m": 0.006709246469808607,
      "tip_error_pct": 2.2361366827978153,
      "temp_uniformity_max_deviation_K": 1.0106759873451665e-10,
      "max_von_mises_pa": 54068902.95831905,
      "elapsed_s": 16.750096321105957
    },
    {
      "size_factor": 0.5,
      "n_dofs": 59319,
      "tip_dz_exact_m": 0.006562500000000001,
      "tip_dz_fem_m": 0.006646623598704856,
      "tip_error_pct": 1.2818834088358853,
      "temp_uniformity_max_deviation_K": 2.4294877221109346e-10,
      "max_von_mises_pa": 85943087.38557278,
      "elapsed_s": 2509.662129878998
    }
  ],
  "tip_error_pct": 1.2818834088358853,
  "temp_uniformity_max_deviation_K": 2.4294877221109346e-10,
  "pass": true
}