V-HC-01 — semi-infinite solid, convective surface BC (erfc)

Tags: heat_conduction, convective_bc, surface_newton

References:

  • Carslaw & Jaeger (1959), Conduction of Heat in Solids, §2.7
  • Lautenberger dissertation (2007) §3.4.1 (parameters)
  • FDS Verification Guide ht3d_slab; ThermaKin (FSS 9:1141) Eq. 25

Problem statement

The one verification case shared by all three reference codes (FDS ht3d_slab, Gpyro §3.4.1, ThermaKin Eq. 25), in Gpyro's variant: constant absorbed radiant flux q″ = 25 kW/m² plus convective exchange h = 20 W/m²K with T∞ = T₀ = 300 K; k = 0.2 W/(m·K), ρ = 1000 kg/m³, c = 1400 J/(kg·K), so profiles at t = 30/60/90/180 s are directly comparable to the dissertation figures.

Because the combined surface BC is linear in Ts, absorbed-flux + convection is exactly convection toward T∞eff = T∞ + q″/h = 1550 K, and the Carslaw & Jaeger §2.7 erfc solution (exact/semi_infinite.jl) applies unchanged.

Coverage beyond the existing Dirichlet erf test: HeatFluxBC + ConvectiveBC enter the surface Newton solve, so the surface temperature is an unknown coupled to the interior — the place surface-BC bugs live.

Domain: L = 5 cm ≫ thermal penetration (erfc(η) ≈ 3e-12 at the back face at t = 180 s), so the finite slab is semi-infinite to well below the QoI tolerances; the back-face-rise QoI enforces this assumption explicitly.

Quantities of interest (n = 500)

QoIvalueexacterrortolerancewithin tolprovenance
L∞ T-profile error, t=30.0 s0.0099240.0099240.75yesobserved 0.24/0.21/0.18/0.14 K at t=30/60/90/180 s
L∞ T-profile error, t=60.0 s0.0083540.0083540.75yesobserved 0.24/0.21/0.18/0.14 K at t=30/60/90/180 s
L∞ T-profile error, t=90.0 s0.0073410.0073410.75yesobserved 0.24/0.21/0.18/0.14 K at t=30/60/90/180 s
L∞ T-profile error, t=180.0 s0.0055440.0055440.75yesobserved 0.24/0.21/0.18/0.14 K at t=30/60/90/180 s
surface temperature, t=30.0 s545.8545.70.020051.5yessurface Newton solve vs exact θ_s = 1 − erfcx(h√(αt)/k); observed 0.50/0.26/0.16/0.06 K at t=30/60/90/180 s
surface temperature, t=60.0 s625.5625.50.010181.5yessurface Newton solve vs exact θ_s = 1 − erfcx(h√(αt)/k); observed 0.50/0.26/0.16/0.06 K at t=30/60/90/180 s
surface temperature, t=90.0 s679.9679.90.0063591.5yessurface Newton solve vs exact θ_s = 1 − erfcx(h√(αt)/k); observed 0.50/0.26/0.16/0.06 K at t=30/60/90/180 s
surface temperature, t=180.0 s784.9784.90.0022791.5yessurface Newton solve vs exact θ_s = 1 − erfcx(h√(αt)/k); observed 0.50/0.26/0.16/0.06 K at t=30/60/90/180 s
back-face rise (semi-infinite validity)7.188e-1007.188e-101e-06yesguards the semi-infinite assumption of the reference solution

V-HC-01 T_profiles

V-HC-01 T_profiles_error

V-HC-01 surface_T_history

V-HC-01 surface_T_history_error

V-HC-01 convergence

Comparison with other codes

The same case was solved with FDS 6.11.0 at 133 cells (Δx≈0.38 mm) and Gpyro 0.8200 at 500 nodes (Δz=0.1 mm); decks, outputs, and run provenance are committed under test/verification/reference/. Each code's error against the same exact solution is drawn below on a log scale, muted gray behind this solver's series — the signed linear-scale panel above shows where the error lives, this one compares magnitudes across codes.

V-HC-01 T_profiles_vs_codes_error

V-HC-01 surface_T_history_vs_codes_error

Wall times at every ladder rung against the reference runs. Resolutions and simulated spans differ where noted (details in reference/timings.csv), so cross-code timings are indicative rather than a controlled benchmark; rungs at a matched resolution are directly comparable.

V-HC-01 solve_time

Solution overlays including the other codes' points: Tprofilesvs_codes, surfaceThistoryvscodes.

Convergence

n_cellshwall (s)L2Linf
250.040.013750.78572.901
500.020.035650.20030.8012
1000.010.069460.050270.2059
1330.0075190.10130.028440.117
2000.0050.15330.012580.05197
4000.00250.3940.0031460.01304
5000.0020.44980.0020130.008354

Observed order 1.993 (L2), expected 2.0.

Solver configuration

settingvalue
integratorKenCarp4 (default)
abstol1.0e-12
reltol1.0e-10