Boundary Conditions

AdditiveFOAM supplies two free-surface boundary conditions in addition to standard OpenFOAM conditions. marangoni is a velocity condition for thermocapillary shear and zero penetration; mixedTemperature is a temperature condition for convection and thermal radiation to an ambient environment. Both are assigned to patches in the corresponding files under 0/, and both can read shared material coefficients from constant/transportProperties.

Condition Field Physical model
marangoni U Tangential surface-tension stress generated by the surface temperature gradient
mixedTemperature T Conductive balance with convective and radiative surface heat loss

On an exposed build surface, assign marangoni to the patch in 0/U when fluid flow is enabled and assign mixedTemperature to the same patch in 0/T when convective or radiative loss is required. A thermal-only case does not need marangoni, because the velocity solve is disabled. Confirm the patch names match the mesh boundary and supply dSigmadT and emissivity either in transportProperties or directly in the patch dictionaries.

marangoni

Applied to U, this condition removes normal velocity and sets the normal gradient needed to balance viscous and tangential surface-tension stresses.

top
{
    type       marangoni;
    dSigmadT  -3.0e-4;
    Tmax       3500;
    value      uniform (0 0 0);
}
Entry Required Default Meaning
dSigmadT Yes, locally or globally Surface-tension temperature slope in N/(m K)
Tmax No Unlimited Clamp temperature before evaluating its tangential gradient
value No Evaluated Patch value written by OpenFOAM

If dSigmadT is absent from the patch, it is read from transportProperties; absence from both is fatal. The condition reads mu from transportProperties.

Marangoni stress balance

Let \(\mathbf{n}\) be the outward unit normal and define the tangential projector

\[\mathbf{P}=\mathbf{I}-\mathbf{n}\mathbf{n}.\]

Here \(\mathbf I\) is the identity tensor and \(\mathbf P\) removes the component parallel to \(\mathbf n\).

The optional temperature cap is applied before differentiating,

\[T^*=\operatorname{clip}_{(-\infty,\,T_{\max}]}\!\left[T\right],\]

and the surface gradient is the tangential part of the full temperature gradient:

\[\nabla_sT^*=\mathbf{P}\nabla T^*.\]

Here \(T\) is temperature, \(T_{\max}\) is the optional cap, \(T^*\) is the capped temperature, \(\nabla\) is the spatial gradient, and \(\nabla_s\) is its surface-tangential component.

For surface tension \(\sigma(T)\) with the constant configured slope

\[\nabla_s\sigma=\frac{\mathrm{d}\sigma}{\mathrm{d}T}\nabla_sT^*,\]

the tangential viscous-stress balance is

\[\mu\mathbf{P}\frac{\partial\mathbf{U}}{\partial n} =\nabla_s\sigma =\frac{\mathrm{d}\sigma}{\mathrm{d}T}\nabla_sT^*.\]

Here \(\sigma\) is surface tension, \(\mathrm d\sigma/\mathrm dT\) is dSigmadT, \(\mu\) is dynamic viscosity, and \(\mathbf U\) is velocity.

The condition also enforces no penetration by projecting the adjacent cell velocity \(\mathbf{U}_i\) onto the patch plane:

\[\mathbf{U}_p=\mathbf{P}\mathbf{U}_i, \qquad \mathbf{U}_p\cdot\mathbf{n}=0.\]

For a patch-face inverse distance \(\delta_f\) (deltaCoeffs), the implemented vector normal gradient is

\[\left.\frac{\partial\mathbf{U}}{\partial n}\right|_p =\delta_f\left(\mathbf{P}\mathbf{U}_i-\mathbf{U}_i\right) +\frac{1}{\mu}\frac{\mathrm{d}\sigma}{\mathrm{d}T}\nabla_sT^*.\]

The first term is purely normal and supplies the correction needed for \(\mathbf{U}_p\cdot\mathbf{n}=0\). Applying \(\mathbf{P}\) removes that term and recovers the tangential stress balance exactly. For the usual negative dSigmadT, surface tension decreases as temperature rises, so the surface traction points from hotter regions toward cooler, higher-surface-tension regions.

mixedTemperature

Applied to T, this condition combines convection to an ambient temperature with radiation:

top
{
    type        mixedTemperature;
    h           10;
    emissivity  0.4;
    Tinf        uniform 300;
    value       uniform 300;
}
Entry Required Default Meaning
h Yes Convective heat-transfer coefficient in W/(m² K)
Tinf Yes Ambient temperature patch field in K
emissivity Yes, locally or globally Surface emissivity
value No Tinf Patch value written by OpenFOAM

If emissivity is absent from the patch, it is read from transportProperties. The condition uses the local kappa patch field and a Stefan–Boltzmann constant of \(5.67\times10^{-8}\) W/(m² K⁴).

Convective-radiative temperature balance

With outward normal \(\mathbf{n}\), the conductive heat leaving the domain balances convection and radiation:

\[-\kappa\frac{\partial T}{\partial n} =h(T_p-T_\infty) +\epsilon\sigma_{\mathrm{SB}}(T_p^4-T_\infty^4).\]

Here \(\kappa\) is thermal conductivity, \(T_p\) is patch temperature, \(T_\infty\) is Tinf, \(h\) is the convective heat-transfer coefficient, \(\epsilon\) is emissivity, and \(\sigma_{\mathrm{SB}}\) is the Stefan–Boltzmann constant.

The fourth-power difference factors exactly as

\[T_p^4-T_\infty^4 =(T_p-T_\infty)(T_p+T_\infty)(T_p^2+T_\infty^2).\]

The condition therefore defines a temperature-dependent radiative coefficient

\[h_{\mathrm{rad}} =\epsilon\sigma_{\mathrm{SB}} (T_p^2+T_\infty^2)(T_p+T_\infty)\]

and combines it with convection:

\[h_{\mathrm{eff}}=h+h_{\mathrm{rad}}.\]

Here \(h_{\mathrm{rad}}\) is the linearized radiative coefficient and \(h_{\mathrm{eff}}\) is the combined surface heat-transfer coefficient.

The nonlinear flux balance can then be written in Robin form,

\[-\kappa\frac{\partial T}{\partial n} =h_{\mathrm{eff}}(T_p-T_\infty).\]

Let \(T_i\) be the adjacent cell temperature and \(\delta_f\) the inverse cell-centre-to-face distance. Using

\[\left.\frac{\partial T}{\partial n}\right|_p \approx\delta_f(T_p-T_i)\]

gives

\[-\kappa\delta_f(T_p-T_i) =h_{\mathrm{eff}}(T_p-T_\infty),\]

so the patch temperature is

\[T_p= \frac{\kappa\delta_fT_i+h_{\mathrm{eff}}T_\infty} {\kappa\delta_f+h_{\mathrm{eff}}}.\]

OpenFOAM expresses this as a mixed condition,

\[T_p=wT_\infty+(1-w)T_i,\]

with

\[w=\frac{h_{\mathrm{eff}}}{h_{\mathrm{eff}}+\kappa\delta_f} =\frac{1}{1+\kappa\delta_f/h_{\mathrm{eff}}}.\]

Here \(T_i\) is the adjacent-cell temperature, \(\delta_f\) is the inverse normal distance from its centre to the patch face, and \(w\) is OpenFOAM’s mixed-condition value fraction.

The implementation recomputes \(h_{\mathrm{eff}}\) from the current patch temperature whenever it updates the coefficients and floors \(h_{\mathrm{eff}}\) at \(10^{-15}\) when evaluating \(w\). Thus \(w\to1\) approaches a fixed ambient temperature when surface losses dominate, while \(w\to0\) approaches zero gradient when conduction to the face dominates.