V-CPL-01 — Neumann Stefan problem via apparent heat capacity (Gpyro params)

Tags: moving_front, latent_heat, state_dependent_properties, coupled

References:

  • Carslaw & Jaeger (1959) §11.2
  • Lautenberger dissertation (2007) §3.4.3, Eqs. 3.137–3.138, Fig. 3.11

Problem statement

Gpyro's flagship moving-front verification (Lautenberger §3.4.3, Eqs. 3.137–3.138; Carslaw & Jaeger §11.2). Liquid initially at T₀ > Tm; wall (top face) dropped to T∞ < Tm at t = 0; a solidification front s(t) = 2λ√(αₛt) propagates inward releasing ΔH_m. Exact solution and eigenvalue in exact/stefan.jl (λ = 0.2317 for the dissertation parameters — self-tested against the published value and an independent quadrature energy balance).

Two solver realizations, per the suite plan:

Route A (this case): apparent heat capacity — Gaussian cp peak of variance σ² = 0.1 K² (Gpyro Eq. 3.5c with σm² = 0.1) carrying the full ΔH_m, exercising the T-dependent property path + property-derivative Jacobian through a 38× spike in c. Uses the dissertation's polypropylene-like parameter set verbatim, so profiles compare to dissertation Fig. 3.11.

Route B (V-CPL-01b): latent heat via a Tmax-gated reaction melt → solid (h = −ΔHm: solidification releases heat; our h > 0 = endothermic). The temperature gate is a tanh ramp of configurable width (Reaction(...; gate_width) [K], default 1.0; src/Physics/kinetics.jl). At the default 1 K width the dissertation's 5 K driving ΔT shifts the effective freezing point by ~20% of the driving force (measured: front 19% slow), so this CI case rescales to ±50 K driving ΔT (own exact λ from the same library), making the gate a ~1–2% effect. The dissertation parameter set with a narrow gate (e.g. 0.1 K) and the gate-width → 0 convergence sweep belong in report mode.

Geometry: cold Dirichlet wall on TOP (z = L; depth x = L − z), adiabatic bottom, L = 4 cm ≫ liquid penetration √(4αl t) ≈ 1.25 cm (back-face guard asserts undisturbedness). Geometrically stretched mesh, finest at the wall (Δztop ≈ 14 μm, ≈ 103 μm at the deepest front position ≈ 3 mm — Gpyro used uniform 50 μm).

No CI ConvergenceSpec: with fixed peak width σ (route A) or gate width (route B) the solver converges to the smeared problem, whose offset from the sharp-front Stefan solution dominates the mesh error — a meaningful order study is the σ → 0 + mesh ladder (report mode, as the plan's peak-width convergence study).

V-CPL-01 — Neumann Stefan problem via apparent heat capacity (Gpyro params)

Quantities of interest (n = 800)

QoIvalueexacterrortolerancewithin tolprovenance
T-history L∞ error at x = 0.5 mm0.014060.014060.05yesvs exact two-phase profile, t ≥ 100.0 s
T-history L∞ error at x = 1.0 mm0.027980.027980.1yesvs exact two-phase profile, t ≥ 100.0 s
T-history L∞ error at x = 1.5 mm0.038630.038630.12yesvs exact two-phase profile, t ≥ 100.0 s
T-history L∞ error at x = 2.0 mm0.1340.1340.4yesvs exact two-phase profile, t ≥ 100.0 s
front position at t = 100.0 s0.0016910.0016750.009350.03yess(t) = 2λ√(αₛt), λ = 0.23166
front position at t = 200.0 s0.0023910.0023690.0093560.03yess(t) = 2λ√(αₛt), λ = 0.23166
front position at t = 300.0 s0.0029280.0029010.0092590.03yess(t) = 2λ√(αₛt), λ = 0.23166
√t front-growth coefficient0.00016910.00016750.0092790.03yesfit over t ∈ [100.0, 300.0] s
back-face disturbance (semi-infinite validity)8.171e-0508.171e-050.01yesL = 4 cm vs penetration ≈ 1.25 cm

V-CPL-01 T_histories_at_depths

V-CPL-01 T_histories_at_depths_error

V-CPL-01 front_trajectory

V-CPL-01 front_trajectory_error

V-CPL-01 param_sigma2

Comparison with other codes

The same case was solved with Gpyro 0.8200 at 801 nodes (Δz=0.05 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-CPL-01 T_histories_at_depths_vs_codes_error

V-CPL-01 front_trajectory_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-CPL-01 solve_time

Solution overlays including the other codes' points: Thistoriesatdepthsvs_codes, fronttrajectoryvs_codes.

Solver configuration

settingvalue
integratorKenCarp4 (default)
abstol1.0e-8
reltol1.0e-6

V-CPL-01b — Neumann Stefan problem via gated reaction (±50 K rescaled)

Quantities of interest (n = 800)

QoIvalueexacterrortolerancewithin tolprovenance
T-history L∞ error at x = 0.5 mm0.17250.17250.55yesvs exact two-phase profile, t ≥ 50.0 s
T-history L∞ error at x = 1.0 mm0.33130.33131.1yesvs exact two-phase profile, t ≥ 50.0 s
T-history L∞ error at x = 1.5 mm0.52890.52891.9yesvs exact two-phase profile, t ≥ 50.0 s
T-history L∞ error at x = 2.0 mm1.2461.2463.8yesvs exact two-phase profile, t ≥ 50.0 s
front position at t = 50.0 s0.0015750.001590.0091040.045yess(t) = 2λ√(αₛt), λ = 0.31088
front position at t = 100.0 s0.0022190.0022480.012840.045yess(t) = 2λ√(αₛt), λ = 0.31088
front position at t = 150.0 s0.0027180.0027530.012910.045yess(t) = 2λ√(αₛt), λ = 0.31088
√t front-growth coefficient0.0002220.00022480.012270.035yesfit over t ∈ [50.0, 150.0] s
back-face disturbance (semi-infinite validity)2.541e-0802.541e-080.01yesL = 4 cm vs penetration ≈ 1.25 cm

V-CPL-01b T_histories_at_depths

V-CPL-01b T_histories_at_depths_error

V-CPL-01b front_trajectory

V-CPL-01b front_trajectory_error

V-CPL-01b param_A_rate

Comparison with other codes

The same case was solved with Gpyro 0.8200 at 801 nodes (Δz=0.05 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-CPL-01b T_histories_at_depths_vs_codes_error

V-CPL-01b front_trajectory_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-CPL-01b solve_time

Solution overlays including the other codes' points: Thistoriesatdepthsvs_codes, fronttrajectoryvs_codes.

Solver configuration

settingvalue
integratorKenCarp4 (default)
abstol1.0e-8
reltol1.0e-6