Skip to content

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\).