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 \(q_n\) means heat leaves the solid. A negative \(q_n\) means heat enters the solid.

Applicability

Use this boundary condition when you know the heat exchange in advance, for example from test data or simple models, and it 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\).