Time-Domain Magnetic Model¶
Introduction¶
This model uses the quasi-static approximation of Maxwell's equations where wave and displacement effects are neglected. It is typically used for low-frequency applications where magnetic fields and eddy currents dominate, such as electric machines, transformers, and induction heating.
The model uses the so-called A-formulation (also known as the electric formulation) and solves for the magnetic vector potential \(\mathbf{A}\):
where:
- \(\nu\) is the symmetric rank-2 reluctivity tensor,
- \(\sigma\) is the symmetric rank-2 electric conductivity tensor,
- \(\mathbf{J}\) is a prescribed divergence-free current density (\(\operatorname{div} \mathbf{J} = 0\)),
- \(\mathbf{B}_r\) is the remanent flux density.
The magnetic flux density is related to the magnetic vector potential by
The magnetic reluctivity is the inverse of the magnetic permeability tensor (\(\nu = \mu^{-1}\)). The electric conductivity tensor \(\sigma\) is usually diagonal — its off-diagonal terms are zero — and describes how well the material conducts electric current.
Equation (1) is augmented by the constitutive equations
In general the material properties \(\nu\), \(\sigma\), and \(\mathbf{B}_r\) can be nonlinear and depend on other physical quantities such as temperature.
In the governing equation, the prescribed current density \(\mathbf{J}\) on the right-hand side is supplied through support models such as the Excitation Coil Model.
Model¶
The model is created and added to the simulation with
time_domain_magnetic_model = TimeDomainMagneticModel(
marker=["Air", "Cylinder"] @ Vol,
order=1,
magnetostatic_initialization=False,
)
sim.get_model_manager().add_model(time_domain_magnetic_model)
where
markerspecifies the domain on which the model is solved (defaults to the whole volume),orderis the polynomial order of the finite element discretization (default1),magnetostatic_initializationcontrols whether an initial condition is obtained by first solving a magnetostatic problem (defaultFalse).
Solver¶
The model owns a solver that configures the linear (conjugate-gradient) iteration and the outer nonlinear (Newton) update, including an optional line search for strongly nonlinear materials. It is obtained with
See Solver for the full list of controls.
Materials¶
The governing equation requires three material properties: the magnetic reluctivity (inverse permeability), the electric conductivity, and the remanent flux density. A material is created by specifying a method for each of these material properties. Most cases can be set up using the General Material, with examples given in Table 1.
![]() Example simulation with three materials: Air, Copper and Steel. |
Air For non-magnetic and non-conductive regions such as air with $$ \mu = \mu_0,\qquad \sigma = 0,\qquad \mathbf{B}_r = 0, $$ the material is created with:
CopperFor non-magnetic but electrically conductive regions such as copper with $$ \mu = \mu_0,\qquad \sigma = \sigma_{\text{Cu}},\qquad \mathbf{B}_r = 0, $$ the material is created with:
SteelFor magnetic and electrically conductive regions such as steel with $$ \mu = \mu(|\mathbf{B}|),\qquad \sigma = \sigma_{\text{steel}},\qquad \mathbf{B}_r = 0, $$ the material is created with:
|
Once created, the materials must be added to the model:
Conditions¶
The following conditions are available for the time-domain magnetic model:
| Name | Supported Entities | Description |
|---|---|---|
| Tangential Magnetic Flux | Boundary | Enforces the magnetic flux density to be tangential to the boundary: $$ \mathbf{n} \cdot \mathbf{B} = 0 $$ on the boundary $\Gamma_0$. |
| Normal Magnetic Field | Boundary | Forces the magnetic field to be normal to the boundary by setting its tangential component to zero: $$ \left. \mathbf{H} \times \mathbf{n} \right|_{\Gamma_0} = 0. $$ |
| Tangential Magnetic Field | Boundary | Imposes a prescribed tangential magnetic field $$ \left. \mathbf{H} \times \mathbf{n} \right|_{\Gamma_0} = \mathbf{H}_\text{ext}, $$ where $\mathbf{H}_\text{ext}$ is the user-defined external magnetic field on the boundary $\Gamma_0$. |
| Matching Interface | Boundary pair | Stitches two matching boundaries together, optionally with a sign flip across the interface. Supports rigid transforms (translation and rotation), so it covers periodic and anti-periodic boundary conditions for full-period and pole-pitch sector models. |
Reports¶
The following reports are available for the time-domain magnetic model:
| Name | Field Type | Description |
|---|---|---|
| Magnetic Force Report | Vector | Returns the total magnetic force on an object. |
| Magnetic Torque Report | Vector | Returns the total magnetic torque on an object. |
Coefficients¶
The following functions are available for the time-domain magnetic model for visualization or querying:
| Name | Field Type | Description |
|---|---|---|
| Magnetic Flux Density | Vector | The magnetic flux density is computed as: $$ \mathbf{B} = \operatorname{curl} \mathbf{A}. $$ |
| Magnetic Field | Vector | The magnetic field obtained from the constitutive relation: $$ \mathbf{H} = \nu \left( \mathbf{B} - \mathbf{B}_r \right), $$ where $\mathbf{B}_r$ is the remanent flux density. |
| Electric Current Density | Vector | The electric current density inside the simulation domain. It is the sum of the eddy current density and the current density from the coils. |
| Ohmic Heating | Scalar | The ohmic heating per unit volume: $$ P_\Omega = \mathbf{J} \cdot \mathbf{E}. $$ |
| Electric Conductivity | Symmetric Tensor | The electric conductivity tensor $\sigma$. |
| Relative Magnetic Permeability | Scalar | The relative magnetic permeability $\mu_r = \mu / \mu_0$, evaluated as the inverse of the mean reluctivity diagonal so it remains meaningful for anisotropic and nonlinear materials. |
| Remanence Flux Density | Vector | The remanent flux density $\mathbf{B}_r$ provided by the materials. |
Multiphysics Coupling¶
Thermal Coupling¶
In conductive regions the model dissipates Ohmic (Joule) heating
which it 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 realises Joule-heating multiphysics, where the magnetic losses drive the temperature field, which in turn can feed back through temperature-dependent material properties.
from mufem.thermal import SolidTemperatureModel
# magnetic model (with its materials, coil / excitation) on the conductor
magnetic_model = TimeDomainMagneticModel(marker="Billet" @ Vol, order=1)
sim.get_model_manager().add_model(magnetic_model)
# adding a thermal model on the same region couples in the Ohmic 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-domain magnetic model:
- Superconductor Module — power-law E-J characteristic for LTS and HTS conductors (AC-loss studies, fault-current limiters, HTS magnets).
- 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.
A hysteresis module is planned.
