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 is wrapped 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 require an averaging procedure to obtain an effective permeability for a sinusoidal excitation; supported methods are NONE and SIMPLE_AVERAGE (the latter uses $B_\text{eff}(H) = \tfrac{2}{H} \int_0^H B(H') \, dH'$).
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 $\chi(T)$. Requires a Temperature Model to be present.

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})$. Requires a Temperature Model to 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. Requires a Temperature Model to 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,
)