Heat Flux Boundary Condition¶
The heat flux boundary condition prescribes the normal heat flux across a boundary (Neumann condition): $$ q_n = -\hat{n} \cdot (\kappa \nabla T). $$
- \(q_n\) - prescribed outward normal heat flux [W/m\(^2\)]
- \(\hat{n}\) - outward unit normal
- \(\kappa\) - thermal conductivity [W/(m K)]
- \(T\) - solid temperature [K]
A positive value of \(q_n\) corresponds to heat leaving the solid, while a negative value corresponds to heat entering the solid.
Applicability¶
This boundary condition is applicable when the heat exchange at a boundary is known a priori, for example from experimental data or simplified models, and does not depend on the local surface temperature.
Typical use cases¶
- Laser, e-beam, and plasma heating with a known power density (welding, additive manufacturing, surface hardening).
- Heater elements with a prescribed surface flux from datasheet ratings.
- Solar / radiative loads on spacecraft and outdoor equipment when the incident flux is computed externally.
- Calibration / verification cases with analytic flux profiles.
Example¶
A scalar value is auto-wrapped into a coefficient:
condition = HeatFluxBoundaryCondition(
name="My Heat Flux Boundary Condition",
marker=my_marker,
normal_heat_flux=1000.0,
)
A coefficient function can be passed directly for space- or time-dependent fluxes:
import mufem
cff_normal_heat_flux = mufem.CffExpressionScalar("1000 * (1 - {Time}/10)")
condition = HeatFluxBoundaryCondition(
name="My Heat Flux Boundary Condition",
marker=my_marker,
normal_heat_flux=cff_normal_heat_flux,
)
Newton linearisation¶
When the prescribed flux is itself temperature-dependent (e.g.
\(q_n(T) = \alpha (T^2 - T_\mathrm{amb}^2)\)), the optional
normal_heat_flux_linearization argument supplies the Jacobian
\(\partial q_n / \partial T\) for Newton iterations. Omit it for fluxes that
don't depend on \(T\).