Skip to content

Mushy Zone Condition

The mushy-zone condition adds a latent-heat storage term that activates between a solidus and a liquidus temperature. It captures the additional energy absorbed (or released) by a material as it changes phase, without requiring a true enthalpy formulation.

The transient contribution added to the heat equation is

\[ \frac{\partial}{\partial t} \bigl( \rho L \, g(T) \bigr), \]

where \(L\) is the latent heat per unit mass and \(g(T)\) is the linear liquid fraction

\[ g(T) = \begin{cases} 0, & T \le T_\mathrm{sol}, \\ \dfrac{T - T_\mathrm{sol}}{T_\mathrm{liq} - T_\mathrm{sol}}, & T_\mathrm{sol} < T < T_\mathrm{liq}, \\ 1, & T \ge T_\mathrm{liq}. \end{cases} \]

Backward-Euler time stepping with Newton linearisation gives both a residual contribution and a Jacobian term proportional to \(g'(T)\).

Applicability

The condition is appropriate when the phase transition occurs over a finite temperature range (alloys, mushy-zone solidification) rather than at a sharp melting point. For latent heat of a pure substance with a single melting temperature, set \(T_\mathrm{liq} - T_\mathrm{sol}\) to a small numerical band.

Typical use cases

  • Casting and solidification of metallic alloys.
  • Welding pool dynamics — latent heat in the fusion zone.
  • Phase-change thermal-storage materials (paraffin waxes, salt hydrates) used in building HVAC and battery cooling.
  • Additive-manufacturing simulations where a moving heat source melts and resolidifies powder.

Example

from mufem.thermal import MushyZoneCondition

mushy_zone = MushyZoneCondition(
    name="Fusion Latent Heat",
    marker="Workpiece" @ Vol,
    latent_heat=2.7e5,          # [J/kg]
    temperature_solidus=1703.0, # [K]
    temperature_liquidus=1803.0,
)

solid_thermal_model.add_condition(mushy_zone)