Time-Harmonic Magnetic Model¶
Introduction¶
The time-harmonic magnetic model describes electromagnetic fields by their complex amplitudes at a single angular frequency \(\omega = 2 \pi f\), under the low-frequency (eddy-current) approximation where displacement currents are neglected. This approximation is appropriate when wave-propagation effects are negligible compared to magnetic diffusion and induction — typical for low-frequency magnetic devices such as transformers, induction-heating systems, and motor end-region analyses.
Every field quantity that varies sinusoidally as \(a(t) = \hat{a}\cos(\omega t + \varphi)\) is represented by a single complex amplitude (phasor) \(\tilde{a} = \hat{a}\,e^{j\varphi}\), so the time derivative \(\partial/\partial t\) becomes a multiplication by \(j\omega\) and the transient problem collapses to one complex-valued solve.
The model solves for the complex magnetic vector potential \(\tilde{\mathbf{A}}\):
where
- \(\nu = 1/\mu\) is the magnetic reluctivity,
- \(\sigma\) is the electric conductivity,
- \(\tilde{\mathbf{J}}_\mathrm{s}\) is the impressed (source) current density, supplied by support models such as the Excitation Coil Model.
The complex magnetic flux density is recovered from \(\tilde{\mathbf{B}} = \operatorname{curl} \tilde{\mathbf{A}}\), and the induced (eddy) current density inside conductive materials is \(\tilde{\mathbf{J}}_\mathrm{eddy} = \sigma \tilde{\mathbf{E}} = -j \omega \sigma \tilde{\mathbf{A}}\).
Model¶
The model is created and added to the simulation with
time_harmonic_magnetic_model = TimeHarmonicMagneticModel(
frequency=60.0,
marker=magnetic_domain,
order=2,
)
sim.get_model_manager().add_model(time_harmonic_magnetic_model)
where
frequency\(\left[ \mathrm{Hz} \right]\) is the operating frequency (required),markeris the domain on which the model is solved (defaults to the whole volume),orderis the polynomial order of the finite element discretization (default1).
The frequency can later be updated with
time_harmonic_magnetic_model.set_frequency(new_frequency) — useful for
frequency sweeps.
Solver¶
The model owns a solver that configures the linear solve (iterative or direct) and the outer update for nonlinear materials. It is obtained with
See Solver for the full list of controls.
Materials¶
The material parameters \(\nu\) and \(\sigma\) may be nonlinear and depend on other physical quantities such as temperature. A material is specified through the General Material, with examples summarized in Table 1.
![]() Example from the Compumag TEAM-7 case. The simulation contains three materials: Air, Copper, and Aluminum. |
Air For non-magnetic and non-conductive regions such as air with $$ \mu = \mu_0, \qquad \sigma = 0, $$ the material is created with:
Copper (stranded)For non-magnetic but electrically conductive regions such as a stranded copper coil with $$ \mu = \mu_0, \qquad \sigma = \sigma_{\text{Cu}}, $$ the material is created with:
(eddy currents are disabled because the coil is stranded.)
Aluminum (solid)For an electrically conductive solid conductor such as aluminum with $$ \mu = \mu_0, \qquad \sigma = \sigma_{\text{Al}}, $$ the material is created with:
Eddy currents are enabled by default.
|
Once created, the materials must be added to the model:
Conditions¶
The following conditions are available for the time-harmonic magnetic model:
| Name | Supported Entities | Description |
|---|---|---|
| Tangential Magnetic Flux | Boundary | Enforces the magnetic flux density to be tangential to the boundary: $$ \mathbf{n} \cdot \tilde{\mathbf{B}} = 0. $$ |
| Normal Magnetic Field | Boundary | Forces the magnetic field to be normal to the boundary by setting its tangential component to zero: $$ \left. \tilde{\mathbf{H}} \times \mathbf{n} \right|_{\Gamma_0} = 0. $$ |
| Tangential Magnetic Field | Boundary | Imposes a prescribed (complex) tangential magnetic field $$ \left. \tilde{\mathbf{H}} \times \mathbf{n} \right|_{\Gamma_0} = \tilde{\mathbf{H}}_\text{ext}. $$ Real and imaginary parts are specified separately. |
| Surface Impedance | Boundary | Leontovich impedance condition used to model good-conductor surfaces without resolving the skin depth in the mesh. |
Coefficients¶
The following functions are available for the time-harmonic magnetic model
for visualization or querying. Complex-valued coefficients are exported as
two real-valued fields with the -Real / -Imag suffixes.
| Name | Field Type | Description |
|---|---|---|
| Magnetic Flux Density | Complex Vector | $\tilde{\mathbf{B}} = \operatorname{curl} \tilde{\mathbf{A}}$. |
| Magnetic Field | Complex Vector | $\tilde{\mathbf{H}} = \nu \, \tilde{\mathbf{B}}$, with real reluctivity $\nu$. |
| Electric Current Density | Complex Vector | Total current density inside the model domain: induced eddy current plus impressed source current, $$ \tilde{\mathbf{J}} = -j \omega \sigma \tilde{\mathbf{A}} + \tilde{\mathbf{J}}_\mathrm{s}. $$ |
| Ohmic Heating | Scalar | Time-averaged ohmic loss density, $$ \langle P_\Omega \rangle = \frac{1}{2} \mathrm{Re} \left\{ \tilde{\mathbf{J}} \cdot \tilde{\mathbf{E}}^* \right\} = \frac{|\tilde{\mathbf{J}}|^2}{2 \sigma}, $$ where $^*$ denotes the complex conjugate. |
| Relative Magnetic Permeability | Scalar | The relative permeability $\mu_r = 1 / (\nu \, \mu_0)$. |
Multiphysics Coupling¶
Thermal Coupling¶
In conductive regions the eddy currents dissipate time-averaged Joule (Ohmic) heating, which the model exposes as a volumetric heat source. When a Solid Temperature model is added to the same simulation, this heating is automatically deposited as a volumetric source over the thermal domain — no explicit condition is required. This is the basis of induction-heating analysis, where the eddy-current losses set the temperature rise of the workpiece.
from mufem.thermal import SolidTemperatureModel
# time-harmonic magnetic model on the workpiece (plus coil / materials)
magnetic_model = TimeHarmonicMagneticModel(frequency=2000.0, marker="Billet" @ Vol)
sim.get_model_manager().add_model(magnetic_model)
# adding a thermal model on the same region couples in the Joule heating
thermal_model = SolidTemperatureModel(marker="Billet" @ Vol, order=1)
sim.get_model_manager().add_model(thermal_model)
See the Solid Temperature model for the thermal materials, boundary conditions, and solver settings.
Modules¶
Constitutive behaviour outside the scope of the General Material is provided through dedicated modules that plug into the time-harmonic magnetic model:
- Lamination Module — stacks of thin ferromagnetic sheets (transformer cores, motor stators / rotors). Provides a homogenised anisotropic constitutive law plus a sub-grid in-sheet eddy-current correction so the laminate does not have to be resolved sheet-by-sheet.
