Safetyvoice UK

Effective safety culture depends not only on good policies, but on how consistently and transparently they are applied across institutions. As part of our ongoing work on research culture and EDI, we’ve launched SafetyVoice UK — an independent, sector-wide platform for laboratory users, researchers, and technical staff across UK Higher Education to share anonymised experiences of how safety policies are applied in practice. Safety is fundamental. But clear communication, appropriate documentation, and opportunities for dialogue are what make policies work well for everyone. When these elements are inconsistent, it can affect confidence, wellbeing, and the ability to work effectively. SafetyVoice UK is open to contributors from any UK HEI or research organisation. Using AI-assisted anonymisation, the platform identifies common themes across the sector while protecting individual contributors — supporting a more transparent, EDI-aligned approach to safety governance. We welcome colleagues across the sector to share their experiences or perspectives. 🔗 https://safetyvoice.org.uk/ #HigherEducation #LabSafety #EDI #SafetyCulture #ResearchCulture

@UUK (Universities UK), @USHA_HE (Universities Safety & Health Association), or @AdvanceHE

h setting

In COMSOL: h_top = 14.4, h_bot = 7.2 W/m²K are fixed constants from t=0. Full convective cooling is applied from the very first second.

In TS: h is recomputed every timestep from the Churchill & Chu correlation at T_mean:

T_mean = float(np.mean(T))   # starts at T_amb = 20°C
ht = calc_h_top(T_mean)      # → h ≈ 0 at t=0 !

At t=0, T_mean = T_amb, so ΔT = 0, Ra = 0, h = 0. TS starts with essentially zero convective cooling and only builds up h as the board heats. The full h=14.4 isn’t reached until T_mean ≈ 55°C (ΔT ≈ 35K above ambient).

So early in the transient:

TimeCOMSOL h_topTS h_top (approx)
t = 0 s14.4 W/m²K~0
t = 60 s14.4 W/m²K~5–8
t = 300 s14.4 W/m²K~11–13
SS14.4 W/m²K14.4

TS has far less cooling during the transient → rises faster and higher. At SS both converge to the same h, so SS temperatures should match closely. This matches exactly what the chart shows.

Simple fix: evaluate h at a representative ΔT from the start (e.g., use the current local temperature rather than T_mean, or initialise h at the SS value and let it update). The most direct fix to match the COMSOL setup would be to use fixed h values:

# Option: fix h to SS calibrated values (matches COMSOL setup)
ht = calc_h_top(T_AMB + 35.0)   # evaluate at design ΔT=35K, constant
hb = calc_h_bottom(T_AMB + 35.0)

Or keep temperature-dependent h but evaluate at a better representative temperature than T_mean.no, I want fix that in comsol, not in TS, teach me how to defin ht and hb in comsol as fucntion of position and temperature.

In COMSOL, you define h as an expression in T directly in the Heat Flux boundary condition. Here’s how:


Step 1 — Define parameters (Global Definitions > Parameters)

NameExpressionDescription
T_amb293.15[K]Ambient temperature
k_air0.0271[W/(m*K)]Air conductivity
nu_air1.655e-5[m^2/s]Kinematic viscosity
alpha_air2.34e-5[m^2/s]Thermal diffusivity
L_c0.0292[m]Characteristic length (A/P)
H_SCALE1.76Nu calibration multiplier

Step 2 — Define variables (Global Definitions > Variables)

dT_surf   = max(T - T_amb, 0.001[K])
T_film    = (T + T_amb) / 2
beta_air  = 1 / T_film
Ra        = 9.81[m/s^2] * beta_air * dT_surf * L_c^3 / (nu_air * alpha_air)
Nu_top    = if(Ra < 1e7, 0.54 * Ra^0.25, 0.15 * Ra^(1/3))
Nu_bot    = 0.27 * Ra^0.25
h_top_fn  = Nu_top * k_air / L_c * H_SCALE
h_bot_fn  = Nu_bot * k_air / L_c * H_SCALE

max(..., 0.001) avoids Ra=0 at t=0 when T=T_amb.


Step 3 — Apply to boundary conditions

Top surface — Heat Flux BC:

  • Type: General inward heat flux
  • Expression: h_top_fn * (T_amb - T)

Bottom surface — Heat Flux BC:

  • Expression: h_bot_fn * (T_amb - T)

Alternatively, use the built-in “Convective heat flux” type and enter h_top_fn in the h field — COMSOL will evaluate it locally at each surface node’s current T automatically.


What this achieves

  • At t=0: T=T_amb, dT≈0, Ra≈0, h≈0 (matches TS behaviour)
  • At SS: Ra≈71,000, h_top≈14.4, h_bot≈7.2 W/m²K (matches calibrated values)
  • COMSOL evaluates the expression locally per element at each timestep — better than TS which uses T_mean globally
  • The transient h buildup will match TS more closely