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\) material properties — with an additional flag to indicate if eddy currents are present.
A user can define their own material by specifying the material property methods individually using:
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 of the three material properties my_mu (\(\mu\)), my_sigma (\(\sigma\)), and
my_br (\(\mathbf{B}_r\)) is defined by specifying a property method that computes it.
Material Properties¶
Magnetic Permeability¶
The magnetic permeability describes how a material responds to a magnetic field and how strongly magnetic flux is established inside the material. It links the magnetic field strength \(\mathbf{H}\) to the magnetic flux density \(\mathbf{B}\) via the magnetic constitutive law \(\mathbf{B} = \mu \mathbf{H}\).
In general, the magnetic permeability \(\mu\) is described by a symmetric rank-2 tensor:
Note that each component may additionally depend on other physical quantities (e.g., temperature) or be nonlinear (dependent on the magnetic flux density).
The magnetic permeability can be defined by the methods summarized in Table 1.
| Name | Example | Description |
|---|---|---|
| Non-magnetic (default) |
Alternatively also using
|
Uses the vacuum permeability \( \mu = \mu_0 \). |
| Constant |
Alternatively also using
|
Specify a constant, isotropic relative magnetic permeability $\mu_r$, so that \( \mu = \mu_0 \mu_r \). |
| BH Curve |
Alternatively also using
|
The BH Curve is a non-linear isotropic specification, where the permeability is obtained from the magnitude relation $$ \begin{align*} \mu(|\mathbf{H}|) = \frac{|\mathbf{B}(|\mathbf{H}|)|}{|\mathbf{H}|}, \end{align*} $$ and $|\mathbf{B}|$ and $|\mathbf{H}|$ are given by tabulated values. Note that the table must be strictly monotonic. |
| Linear Temperature Coefficient |
|
Specify an isotropic relative magnetic permeability with a linear temperature dependence
\( \mu(T) = \mu_0 \left( \mu_{\text{ref}} + \alpha (T - T_{\text{ref}}) \right) \), where:
|
| Orthotropic Tensor |
|
$$ \begin{align*} \mu &= \left( \begin{array}{ccc} \mu_{xx} & & \\ & \mu_{yy} & \\ & & \mu_{zz} \end{array} \right) \end{align*} $$ allows the specification of each axis component of the magnetic permeability tensor. |
Electrical Conductivity¶
The electric conductivity measures a material's ability to conduct electric current. It is represented by the symbol \(\sigma\) and is expressed in units of siemens per meter (S/m). The electric conductivity links the electric field \(\mathbf{E}\) to the electric current density \(\mathbf{J}\) via Ohm's law \(\mathbf{J} = \sigma \mathbf{E}\).
In general, the electric conductivity \(\sigma\) is described by a symmetric rank-2 tensor:
Note that each component may additionally depend on other physical quantities (e.g., temperature or current density). In many cases an isotropic material is assumed, where the tensor is diagonal.
| Name | Example | Description |
|---|---|---|
| Insulating (Default) |
Alternatively
|
Specifies a zero electrical conductivity: $$ \begin{align*} \sigma &= 0 \end{align*} $$ |
| Constant |
|
ElectricConductivityPropertyMethodConstantSpecify a constant, isotropic electrical conductivity: $$ \begin{align*} \sigma &= \sigma_{\text{usr}} \end{align*} $$ |
| Constant Anisotropic |
|
Specify a (symmetric) electrical conductivity tensor: $$ \begin{align*} \sigma &= \left( \begin{array}{ccc} \sigma_{xx} & \sigma_{xy} & \sigma_{xz} \\ & \sigma_{yy} & \sigma_{yz} \\ & & \sigma_{zz} \end{array} \right) \end{align*} $$ allowing individual component specification. |
| Linear Temperature Coefficient |
|
Specify an isotropic electrical conductivity with linear temperature dependence:
$$
\begin{align*}
\sigma(T) &= \left[
\sigma_{\text{ref}} - \gamma \left( T - T_{\text{ref}} \right)
\right]\mathbf{I}
\end{align*}
$$
where:
|
| Temperature Table |
|
Specify an isotropic electrical conductivity from a temperature table: $$ \begin{align*} \sigma(T) &= \sigma(T)\mathbf{I} \end{align*} $$ Note that this requires a Temperature Model to be present. |
Magnetization¶
The magnetization describes the density of magnetic dipole moments inside a material and represents the magnetic moment per unit volume. It contributes to the magnetic flux density alongside the applied magnetic field, so that \(\mathbf{B} = \mu \mathbf{H} + \mathbf{B}_r\). For permanent magnets, the material is commonly characterized by the remanent flux density \(\mathbf{B}_r\), which describes the magnetic flux density retained after removal of the external magnetizing field.
In general, the remanent flux density is described as a vector: $$ \begin{align} \mathbf{B}_r = B_r \mathbf{d}, \end{align} $$
where
- \(B_r\) — remanent flux density magnitude
- \(\mathbf{d}\) — unit vector defining the magnetization direction
The magnetization may depend on temperature, external magnetic fields, and material history (e.g., nonlinear or hysteretic behavior).
The magnetization can be defined by the following methods summarized in Table 3.
| Name | Example | Description |
|---|---|---|
| Zero (Default) |
|
Specify zero remanent flux density: $$ \begin{align*} \mathbf{B}_r &= 0 \end{align*} $$ |
| Constant |
|
Specify a constant remanent flux density vector: $$ \begin{align*} \mathbf{B}_r &= \mathbf{B}_{r,\text{usr}} \end{align*} $$ |
Examples¶
We can create a linear permanent magnet material through a function using
from mufem.electromagnetics.timedomainmagnetic import TimeDomainMagneticGeneralMaterial
magnet_material = TimeDomainMagneticGeneralMaterial.Magnet(
name="Magnet Material",
marker=my_magnet_material_marker,
relative_permeability=1.12,
electric_conductivity=0.0,
magnetization=[1.02, 0.0, 0.0],
)
the same can be achieved by specifying the methods individually using
from mufem.electromagnetics.timedomainmagnetic import (
ElectricConductivityMethodInsulating,
TimeDomainMagneticGeneralMaterial,
MagneticPermeabilityMethodLinearIsotropic,
MagnetizationMethodDirection
)
permeability_non_magnetic = MagneticPermeabilityMethodLinearIsotropic(1.12)
conductivity_insulating = ElectricConductivityMethodInsulating()
magnetization_direction = MagnetizationMethodDirection(1.02, 0.0, 0.0)
magnet_material = TimeDomainMagneticGeneralMaterial(
"Magnet Material",
my_magnet_material_marker,
permeability_non_magnetic,
conductivity_insulating,
magnetization_direction,
)