Displacement Field Condition¶
The displacement field condition sets a specific value of the normal component of the electric displacement field \(\mathbf{D} = \varepsilon\mathbf{E}\) at the selected boundary:
\[
\left. \hat{\mathbf{n}} \cdot \mathbf{D} \right|_{\partial\Omega} = D_0,
\]
where \(\partial\Omega\) is the given boundary with the unit normal \(\hat{\mathbf{n}}\) and \(D_0\) is the prescribed normal displacement.
By Gauss's law \(\hat{\mathbf{n}}\cdot\mathbf{D}\) equals the surface charge density on a conductor, so this condition is the natural counterpart of the Charge Density condition on a boundary.
When to use this¶
- Imposed surface flux at the boundary of an air box surrounding the device (Neumann data when the normal \(\mathbf{D}\) is known from a far-field model).
- Symmetry planes where \(\hat{\mathbf{n}}\cdot\mathbf{D} = 0\) — the default (no condition) already gives this, but the explicit form makes the intent clear.
Usage¶
import mufem
from mufem.electromagnetics.electrostatics import (
ElectricDisplacementFieldBoundaryCondition,
)
cff_displacement = mufem.CffConstantVector((0.0, 0.0, 1.0e-9))
displacement_bc = ElectricDisplacementFieldBoundaryCondition(
name="Normal D = 1 nC/m^2",
marker="Air::Boundary" @ Bnd,
displacement_field=cff_displacement,
)
electrostatics_model.add_condition(displacement_bc)
Note: displacement_field takes a vector coefficient — the condition
extracts the normal component internally.