Skip to content

Time-Harmonic Magnetic Material

Introduction

A time-harmonic magnetic general material is defined by its magnetic permeability \(\mu\) and electric conductivity \(\sigma\), 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 = TimeHarmonicMagneticGeneralMaterial(
    name="My Material",
    marker=my_material_marker,
    magnetic_permeability=my_mu,
    electric_conductivity=my_sigma,
    has_eddy_currents=True,
)

Where the two material properties my_mu (\(\mu\)) and my_sigma (\(\sigma\)) can be defined by specifying a property method to compute those.

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. In the time-harmonic model, the permeability may be complex: \(\mu = \mu' + i\mu''\), to represent magnetic losses in an effective way (if modeled).

The magnetic permeability can be defined by the following methods summarized in Table 1.

Table 1: Magnetic Permeability Methods
Name Example Description
Non-magnetic (default)
my_mu = None
Alternatively:
my_mu = methods.MagneticPermeabilityMethodLinearIsotropic(1.0, 0.0)
Default linear isotropic relative permeability $\mu_r = 1$ with zero imaginary part.
Linear Isotropic (complex)
my_mu = methods.MagneticPermeabilityMethodLinearIsotropic(
    relative_permeability_value_real=132.0,
    permeability_value_imag=0.0,
)
Specify a constant isotropic permeability using real and optional imaginary parts.
Nonlinear Isotropic (BH curve)
my_mu = methods.MagneticPermeabilityMethodNonlinearIsotropic(
    magnetic_field_strength=[0, 120, 330, 500, 3100],
    magnetic_flux_density=[0.00, 0.10, 1.00, 1.30, 1.65],
    averaging_method=methods.AveragingMethod.SIMPLE_AVERAGE,
)
Nonlinear isotropic BH specification from tabulated $(H, B)$ data. The frequency-domain representation uses an averaging. Supported averaging methods: NONE, SIMPLE_AVERAGE.
Temperature Table (Susceptibility)
my_mu = methods.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=[1000.0, 800.0, 600.0, 200.0],
)
Temperature-dependent magnetic response using a susceptibility table $\chi(T)$ combined with a reference BH curve. Requires a temperature model/field (this method consumes temperature).

Electrical Conductivity

The electrical conductivity is the measure of a material's ability to conduct electric current. The electrical conductivity can be defined by the following methods summarized in Table 2.

Table 2: Electrical Conductivity Methods
Name Example Description
Insulating (default)
my_sigma = None
Equivalent to:
my_sigma = methods.ElectricConductivityMethodLinearIsotropic(0.0)
Uses zero conductivity.
Linear Isotropic
my_sigma = 5.8e7
Or explicitly:
my_sigma = methods.ElectricConductivityMethodLinearIsotropic(5.8e7)
Constant isotropic conductivity.
Temperature Table As a tuple shorthand:
my_sigma = ([293.15, 400.0, 600.0, 800.0],
            [5.8e7, 4.9e7, 3.8e7, 3.0e7])
Or explicitly:
my_sigma = methods.ElectricConductivityMethodTemperatureTable(
    temperature=[293.15, 400.0, 600.0, 800.0],
    electric_conductivity=[5.8e7, 4.9e7, 3.8e7, 3.0e7],
)
Conductivity specified from a temperature table.

Examples

from mufem.electromagnetics.timeharmonicmagnetic import TimeHarmonicMagneticGeneralMaterial

material = TimeHarmonicMagneticGeneralMaterial(
    name="Steel",
    marker=steel_marker,
    magnetic_permeability=132.0,  # float -> LinearIsotropic(real=132, imag=0)
    electric_conductivity=5.8e7,  # float -> LinearIsotropic(sigma)
    has_eddy_currents=True,
)

Temperature-table shorthand for conductivity:

material = TimeHarmonicMagneticGeneralMaterial(
    name="CopperHot",
    marker=copper_marker,
    magnetic_permeability=None,  # -> mu_r=1
    electric_conductivity=(
        [293.15, 400.0, 600.0, 800.0],
        [5.8e7, 4.9e7, 3.8e7, 3.0e7],
    ),
    has_eddy_currents=True,
)