Skip to content

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.