Skip to content

Volumetric Heat Source Condition

The volumetric heat source condition defines a prescribed heat power density within a solid volume. It represents internal heat generation and appears as the source term on the right-hand side of the solid temperature governing equation: $$ Q = Q_0. $$

  • \(Q\) - volumetric heat power density [W/m\(^3\)]
  • \(Q_0\) - prescribed volumetric heat power density [W/m\(^3\)]

Applicability

This condition is used when heat is generated within the volume of a material rather than entering through the boundary.

Typical use cases

  • Resistive / Joule heating \(Q = \sigma_e |E|^2\) — when the electromagnetic model is not solved (e.g. derived from a lumped current estimate).
  • Welding and additive-manufacturing heat sources (Goldak ellipsoid, moving spot, ring source) using a position- and time-dependent coefficient.
  • Nuclear or radioactive decay heating with a prescribed power map.
  • Exothermic chemical or curing reactions modelled with a user-supplied source term.

Example

A scalar value is auto-wrapped into a coefficient:

condition = VolumetricHeatSourceCondition(
    name="My Volumetric Heat Source Condition",
    marker=my_marker,
    heat_power_density=33000.0,
)

A coefficient function can be passed directly for space- or time-dependent sources (e.g. a moving welding heat source):

import mufem

cff_heat_power_density = mufem.CffExpressionScalar(
    "1e6 * exp(-((x() - 0.1 * {Time})^2 + y()^2) / 0.01)"
)

condition = VolumetricHeatSourceCondition(
    name="Welding Heat Source",
    marker=my_marker,
    heat_power_density=cff_heat_power_density,
)

When the volumetric heating comes from another model (Joule heating from an electromagnetic model, for instance), the coupling is registered automatically and you do not need to add this condition.