Skip to content

General Material

Introduction

A time-harmonic magnetic general material is defined by its magnetic permeability \(\mu\) and electric conductivity \(\sigma\) — plus a flag indicating whether eddy currents are computed in this material.

A material is created by specifying a property method for each quantity:

my_material = TimeHarmonicMagneticGeneralMaterial(
    name="My Material",
    marker=my_material_marker,
    magnetic_permeability=my_mu,
    electric_conductivity=my_sigma,
    has_eddy_currents=True,
)

Each property accepts either an explicit method object (see tables below) or a convenient shorthand (a scalar, a LinearTemperatureCoefficient, …) that mufem wraps automatically. Passing None (the default) selects the trivial method (\(\mu_r = 1\) / insulating).

Typical applications

The general material covers the regions most often encountered in frequency-domain eddy-current studies:

  • Air, plastics, encapsulants — non-magnetic, insulating (defaults).
  • Stranded coils (litz wire, multi-strand windings) — finite \(\sigma\) but has_eddy_currents=False: the source current is imposed externally and no induced current is solved for in the conductor.
  • Solid conductors (bus-bars, end-windings, squirrel-cage rotors) — finite \(\sigma\) with has_eddy_currents=True to resolve the skin- and proximity-effect current distribution.
  • Soft-magnetic cores (transformer laminations, motor stators) — nonlinear BH curve with harmonic averaging to model saturation under sinusoidal excitation.
  • Induction-heating workpieces (steel billets, tubes, aluminium pans) — temperature-dependent \(\sigma\) and BH curve; couples naturally to a Temperature Model for full thermo-electromagnetic analysis.

Permanent magnets have no remanence support in the time-harmonic model — use the time-domain model instead. For stacks of thin ferromagnetic sheets, use the Lamination Module, which provides a dedicated time-harmonic material with anisotropic homogenisation and in-sheet eddy-current correction.

Material Properties

Magnetic Permeability

The magnetic permeability \(\mu\) links the magnetic field \(\tilde{\mathbf{H}}\) to the magnetic flux density \(\tilde{\mathbf{B}}\) through \(\tilde{\mathbf{B}} = \mu \tilde{\mathbf{H}}\). In the time-harmonic model the permeability is treated as a real scalar that may depend on field magnitude (nonlinear materials) or temperature. The available methods are summarized in Table 1.

Table 1: Magnetic Permeability Methods
Name Example Description
Linear Isotropic (default $\mu_r = 1$)
my_mu = None
Equivalently:
my_mu = MagneticPermeabilityPropertyMethodConstant(
    relative_permeability_value=1.0,
)
Constant, isotropic relative permeability $\mu_r$ so that $\mu = \mu_0 \mu_r$. Defaults to vacuum permeability.
Linear Isotropic
my_mu = 132.0
Equivalently:
my_mu = MagneticPermeabilityPropertyMethodConstant(
    relative_permeability_value=132.0,
)
Constant, isotropic relative permeability.
Nonlinear Isotropic (BH curve)
my_mu = MagneticPermeabilityMethodNonlinearIsotropic(
    magnetic_field_strength=[0, 120, 330, 500, 3100],
    magnetic_flux_density=[0.00, 0.10, 1.00, 1.30, 1.65],
    averaging_method=(
        MagneticPermeabilityMethodNonlinearIsotropic
        .AveragingMethod.SIMPLE_AVERAGE
    ),
)
Nonlinear isotropic material from a tabulated $(H, B)$ curve. Time-harmonic problems need an averaging method to get an effective reluctivity $\nu$ for a sinusoidal flux density with peak value $B_p$ (T). $H(B)$ is the BH curve (A/m). The methods are:
  • NONE: the table reluctivity at $B_p$.
  • SIMPLE_AVERAGE: the energy-equivalent reluctivity $\nu = \tfrac{2}{B_p^2} \int_0^{B_p} H(B) \, dB$.
  • EFFECTIVE_HARMONIC: the reluctivity that gives the fundamental harmonic of $H(t)$, $\nu = \tfrac{4}{\pi B_p} \int_0^{\pi/2} H(B_p \cos\theta) \cos\theta \, d\theta$. Its value is between the peak secant value $H(B_p)/B_p$ and the SIMPLE_AVERAGE value.
All methods limit $\nu$ to the vacuum reluctivity $1/\mu_0$ (m/H) or less.
Temperature-Dependent Susceptibility
my_mu = MagneticPermeabilityMethodTemperatureTableSusceptibility(
    magnetic_field_strength=[0, 120, 330, 500, 3100],
    magnetic_flux_density=[0.00, 0.10, 1.00, 1.30, 1.65],
    temperature=[293.15, 400.0, 600.0, 800.0],
    susceptibility=[1.00, 0.80, 0.60, 0.20],
)
Temperature-dependent magnetic response: a reference BH curve scaled by a temperature-dependent susceptibility factor $\chi(T)$. A Temperature Model must be present. The point reluctivity at temperature $T$ is $$ \nu(B, T) = \frac{1}{\mu_0 + \chi(T)\,\bigl(\mu_s(B) - \mu_0\bigr)} , $$ and the effective reluctivity is its energy average over one cycle, $$ \nu_\text{eq}(B_p, T) = \frac{2}{B_p^2} \int_0^{B_p} B\,\nu(B, T)\, dB , $$ where:
  • $\mu_s(B) = B / H(B)$ is the secant permeability of the reference BH curve (H/m),
  • $\mu_0$ is the vacuum permeability (H/m),
  • $\chi(T)$ is the susceptibility factor, linearly interpolated from the temperature (K) and susceptibility tables (dimensionless). Use $1$ at the reference temperature of the BH curve and $0$ above the Curie temperature. Values are limited to $[0, 1]$,
  • $B_p$ is the peak magnetic flux density (T).
mufem scales the BH curve before it calculates the average. This is the same energy average as SIMPLE_AVERAGE. Typical application: steel workpieces in induction heating that become non-magnetic above the Curie temperature.

Electric Conductivity

The electric conductivity \(\sigma\) relates the electric field \(\tilde{\mathbf{E}}\) to the conduction current density via Ohm's law \(\tilde{\mathbf{J}} = \sigma \tilde{\mathbf{E}}\). Available methods are summarized in Table 2.

Table 2: Electric Conductivity Methods
Name Example Description
Insulating (default)
my_sigma = None
Equivalently:
my_sigma = ElectricConductivityPropertyMethodConstant(
    conductivity=0.0,
)
Zero conductivity: $\sigma = 0$.
Linear Isotropic
my_sigma = 5.8e7
Equivalently:
my_sigma = ElectricConductivityPropertyMethodConstant(
    conductivity=5.8e7,
)
Constant, isotropic conductivity.
Linear Temperature Coefficient
my_sigma = mufem.methods.LinearTemperatureCoefficient(
    reference_value=5.8e7,
    temperature_coefficient=-3.9e5,
    reference_temperature=293.15,
)
Isotropic conductivity with linear temperature dependence $\sigma(T) = \sigma_\text{ref} + \alpha(T - T_\text{ref})$. A Temperature Model must be present.
Temperature Table
my_sigma = mufem.methods.TemperatureTable(
    temperature=[293.15, 400.0, 600.0, 800.0],
    values=[5.8e7, 4.9e7, 3.8e7, 3.0e7],
)
Equivalently:
my_sigma = ElectricConductivityMethodTemperatureTable(
    temperature_table=mufem.methods.TemperatureTable(...),
)
Isotropic conductivity tabulated against temperature; linearly interpolated. A Temperature Model must be present.

Example

A solid iron material with a nonlinear BH curve and a temperature-dependent electric conductivity, suitable for induction heating:

from mufem.electromagnetics.timeharmonicmagnetic import (
    ElectricConductivityMethodTemperatureTable,
    MagneticPermeabilityMethodNonlinearIsotropic,
    TimeHarmonicMagneticGeneralMaterial,
)

iron_permeability = MagneticPermeabilityMethodNonlinearIsotropic(
    magnetic_field_strength=bh_curve[:, 0],
    magnetic_flux_density=bh_curve[:, 1],
    averaging_method=(
        MagneticPermeabilityMethodNonlinearIsotropic
        .AveragingMethod.SIMPLE_AVERAGE
    ),
)

iron_conductivity = ElectricConductivityMethodTemperatureTable(
    mufem.methods.TemperatureTable(
        temperature=sigma_T[:, 0],
        values=sigma_T[:, 1],
    ),
)

iron_material = TimeHarmonicMagneticGeneralMaterial(
    name="Iron",
    marker="Iron" @ Vol,
    magnetic_permeability=iron_permeability,
    electric_conductivity=iron_conductivity,
    has_eddy_currents=True,
)