General Material¶
Introduction¶
A time-domain magnetic general material is defined by its magnetic permeability \(\mu\), electric conductivity \(\sigma\), and remanent magnetic flux density \(\mathbf{B}_r\) — plus a flag indicating whether eddy currents are computed in this material.
A material is created by specifying a property method for each of the three quantities:
my_material = TimeDomainMagneticGeneralMaterial(
name="My Material",
marker=my_material_marker,
magnetic_permeability=my_mu,
electric_conductivity=my_sigma,
remanent_flux_density=my_br,
has_eddy_currents=True,
)
Each property accepts either an explicit method object (see tables below) or a
convenient shorthand (a scalar, a list, a LinearTemperatureCoefficient, …)
that is wrapped automatically.
Passing None (the default) selects the trivial method
(non-magnetic / insulating / zero remanence).
Typical applications¶
The general material covers most regions encountered in low-frequency electromagnetic devices:
- Air, plastics, encapsulants — non-magnetic, insulating (defaults).
- Copper / aluminium windings — non-magnetic, finite conductivity; eddy currents disabled for stranded coils, enabled for solid conductors.
- Soft-magnetic iron (motor / transformer cores) — nonlinear BH curve, optional eddy currents.
- Permanent magnets (NdFeB, SmCo, ferrite) — near-unity permeability with a constant remanent flux density; magnetization may vary in space for Halbach-style arrays.
- Conductive shells and shielding — high conductivity with eddy currents to capture induced losses.
For superconducting materials, see the Superconductor Module; for stacks of thin ferromagnetic sheets, see the Lamination Module. A hysteresis module is planned.
Material Properties¶
Magnetic Permeability¶
The magnetic permeability links the magnetic field \(\mathbf{H}\) to the magnetic flux density \(\mathbf{B}\) through the constitutive law \(\mathbf{B} = \mu \mathbf{H}\). In general, \(\mu\) is a symmetric rank-2 tensor
whose components may further depend on the magnetic flux density (nonlinear materials) or on other physical quantities.
The available methods are summarized in Table 1.
| Name | Example | Description |
|---|---|---|
| Non-magnetic (default) |
Equivalently:
|
Vacuum permeability \( \mu = \mu_0 \). |
| Linear Isotropic |
Equivalently:
|
Constant, isotropic relative permeability $\mu_r$, so that \( \mu = \mu_0 \mu_r \). |
| BH Curve |
Equivalently:
|
Nonlinear isotropic permeability obtained from a tabulated $|\mathbf{B}|$–$|\mathbf{H}|$ curve via $$ \mu(|\mathbf{H}|) = \frac{|\mathbf{B}(|\mathbf{H}|)|}{|\mathbf{H}|}. $$ The table must be strictly monotonic. |
| Linear Anisotropic |
|
Constant, fully anisotropic permeability tensor. |
Electric Conductivity¶
The electric conductivity \(\sigma\) links the electric field \(\mathbf{E}\) to the electric current density \(\mathbf{J}\) via Ohm's law \(\mathbf{J} = \sigma \mathbf{E}\). It is expressed in siemens per meter (S/m). In general, \(\sigma\) is a symmetric rank-2 tensor
whose components may depend on temperature, current density, etc. In many practical cases the material is assumed isotropic.
| Name | Example | Description |
|---|---|---|
| Insulating (default) |
Equivalently:
|
Zero conductivity: \( \sigma = 0 \). |
| Linear Isotropic |
Equivalently:
|
Constant, isotropic conductivity. |
| Linear Anisotropic |
|
Constant, fully anisotropic conductivity tensor. |
| Linear Temperature Coefficient |
|
Isotropic conductivity with linear temperature dependence $$ \sigma(T) = \sigma_{\text{ref}} + \alpha \left( T - T_{\text{ref}} \right). $$ Requires a *Temperature Model* to be present. |
| Temperature Table |
|
Isotropic conductivity tabulated against temperature; linearly interpolated. Requires a *Temperature Model* to be present. |
Remanent Flux Density¶
The remanent flux density \(\mathbf{B}_r\) accounts for permanent magnetization. With the convention \(\mathbf{B} = \mu \mathbf{H} + \mathbf{B}_r\), it is the residual magnetic flux density retained after the external magnetizing field is removed. It is generally a vector
where \(B_r\) is the magnitude and \(\mathbf{d}\) the unit vector of the magnetization direction. The available methods are summarized in Table 3.
| Name | Example | Description |
|---|---|---|
| Zero (default) |
Equivalently:
|
\( \mathbf{B}_r = 0 \). |
| Constant Direction |
Equivalently:
|
Constant remanent flux density vector. |
| Variable |
|
Spatially varying remanent flux density driven by a user-provided vector coefficient. Useful for Halbach arrays, poloidal patterns, and any magnetization built from the existing coefficient building blocks (cylindrical / spherical coordinates, expressions, etc.). |
Example¶
A linear permanent-magnet material can be created in two equivalent ways.
Using the shorthand form:
from mufem.electromagnetics.timedomainmagnetic import TimeDomainMagneticGeneralMaterial
magnet_material = TimeDomainMagneticGeneralMaterial(
name="Magnet",
marker="Magnet" @ Vol,
magnetic_permeability=1.12,
remanent_flux_density=[1.02, 0.0, 0.0],
has_eddy_currents=False,
)
Using explicit method objects:
from mufem.electromagnetics.timedomainmagnetic import (
ElectricConductivityMethodInsulating,
MagneticPermeabilityMethodLinearIsotropic,
MagnetizationMethodDirection,
TimeDomainMagneticGeneralMaterial,
)
magnet_material = TimeDomainMagneticGeneralMaterial(
name="Magnet",
marker="Magnet" @ Vol,
magnetic_permeability=MagneticPermeabilityMethodLinearIsotropic(1.12),
electric_conductivity=ElectricConductivityMethodInsulating(),
remanent_flux_density=MagnetizationMethodDirection(1.02, 0.0, 0.0),
has_eddy_currents=False,
)