mammos_mumag.materials#

Materials class.

Functions

read_krn(fname)

Read material krn file and return as list of dictionaries.

read_yaml(fname)

Read material yaml file.

Classes

MaterialDomain([theta, phi, K1, K2, Ms, A])

Uniform material domain.

Materials([domains, filepath])

This class stores, reads, and writes material parameters.

class mammos_mumag.materials.MaterialDomain(theta=0.0, phi=0.0, K1=UniaxialAnisotropyConstant(value=0.0, unit=J / m3), K2=UniaxialAnisotropyConstant(value=0.0, unit=J / m3), Ms=SpontaneousMagnetization(value=0.0, unit=A / m), A=ExchangeStiffnessConstant(value=0.0, unit=J / m))#

Uniform material domain.

It collects material parameters, constant in a certain domain.

Parameters:
A: Entity = ExchangeStiffnessConstant(value=0.0, unit=J / m)#

Exchange stiffness constant in \(\mathrm{J}/\mathrm{m}\).

K1: Entity = UniaxialAnisotropyConstant(value=0.0, unit=J / m3)#

First magnetocrystalline anisotropy constant in \(\mathrm{J}/\mathrm{m}^3\).

K2: Entity = UniaxialAnisotropyConstant(value=0.0, unit=J / m3)#

Second magnetocrystalline anisotropy constant in \(\mathrm{J}/\mathrm{m}^3\).

Ms: Entity = SpontaneousMagnetization(value=0.0, unit=A / m)#

Spontaneous magnetisation in \(\mathrm{A}/\mathrm{m}\).

phi: float = 0.0#

Angle of the magnetocrystalline anisotropy axis from the \(x\)-direction in radians.

theta: float = 0.0#

Angle of the magnetocrystalline anisotropy axis from the \(z\)-direction in radians.

class mammos_mumag.materials.Materials(domains=<factory>, filepath=None)#

This class stores, reads, and writes material parameters.

Parameters:
add_domain(A, Ms, K1, K2, phi, theta)#

Append domain with specified parameters.

Parameters:
  • A (float) – Exchange stiffness constant in \(\mathrm{J}/\mathrm{m}\).

  • Ms (float) – Spontaneous magnetisation in \(\mathrm{T}\).

  • K1 (float) – First magnetocrystalline anisotropy constant in \(\mathrm{J}/\mathrm{m}^3\).

  • K2 (float) – Second magnetocrystalline anisotropy constant in \(\mathrm{J}/\mathrm{m}^3\).

  • phi (float) – Angle of the magnetocrystalline anisotropy axis from the \(x\)-direction in radians.

  • theta (float) – Angle of the magnetocrystalline anisotropy axis from the \(z\)-direction in radians.

Return type:

None

domains: list[MaterialDomain] = FieldInfo(annotation=list[MaterialDomain], required=False, default_factory=list)#

Each domain is a MaterialDomain class of material parameters, constant in each region.

filepath: Path | None = None#

Material file path.

read(fname)#

Read materials file.

This function overwrites the current domains attribute.

Currently accepted formats: krn and yaml.

Parameters:

fname (str | Path) – File name.

Raises:

NotImplementedError – Wrong file format.

Return type:

None

write_krn(fname)#

Write material krn file.

Each domain in domains is written on a single line with spaces as separators.

Parameters:

fname (str | Path) – File path

Return type:

None

write_yaml(fname)#

Write material yaml file.

Parameters:

fname (str | Path) – File path

Return type:

None

mammos_mumag.materials.read_krn(fname)#

Read material krn file and return as list of dictionaries.

Parameters:

fname (str | Path) – File path

Returns:

Domains as list of dictionaries, with each dictionary defining the material constant in a specific region.

Return type:

list[MaterialDomain]

mammos_mumag.materials.read_yaml(fname)#

Read material yaml file.

Parameters:

fname (str | Path) – File path

Returns:

Domains as list of dictionaries, with each dictionary defining the material constant in a specific region.

Return type:

list[MaterialDomain]