General Material¶
Introduction¶
A time-domain magnetic general material has three properties: the magnetic permeability \(\mu\), the electric conductivity \(\sigma\), and the remanent magnetic flux density \(\mathbf{B}_r\). A flag also sets whether mufem computes eddy currents in the material.
You create a material with 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 mufem wraps automatically.
If you pass None (the default), mufem selects the trivial method
(non-magnetic / insulating / zero remanence).
Typical applications¶
The general material covers most regions 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.
Table 1 summarizes the available methods.
| 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}\) by 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, and so on. In many practical cases you can assume the material is 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 that stays after you remove the external magnetizing field. It is generally a vector
where \(B_r\) is the magnitude and \(\mathbf{d}\) the unit vector of the magnetization direction. Table 3 summarizes the available methods.
| 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, and so on). |
Example¶
You can create a linear permanent-magnet material 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,
)