Traction Condition¶
The traction boundary condition prescribes a surface load (force per unit area) on the boundary \(\Gamma\):
\[
\boldsymbol{\sigma} \, \mathbf{n} \big|_{\Gamma} = \bar{\mathbf{t}},
\]
where \(\bar{\mathbf{t}}\) [Pa] is the user-supplied traction vector and \(\mathbf{n}\) is the outward unit normal. This is the natural (Neumann) boundary condition of the elasticity equation: untreated boundaries inherit \(\bar{\mathbf{t}} = \mathbf{0}\) (traction-free).
When to use this¶
- Distributed mechanical loads — pressure on a vessel wall, wind load on a panel, snow load on a roof.
- Point / patch forces approximated as a uniform traction on a small marker.
- Maxwell-stress coupling — surface tractions exported from an electromagnetic model (motor air gap, magnetic bearing, MRI gradient coil) applied as a structural load.
- Calibration / benchmarks with analytic traction profiles (cantilever tip load, pressure-loaded plate).
Usage¶
A constant traction tuple:
from mufem.structural import TractionBoundaryCondition
load_bc = TractionBoundaryCondition(
name="Load",
marker="Beam::Loaded" @ Bnd,
traction=(0.0, -1000.0, 0.0), # [Pa], pointing in -y
)
structural_model.add_condition(load_bc)
A vector coefficient for spatially- or time-dependent loads: