formulary#
Functions to calculate common micromagnetic quantities.
- magnetostatic_energy_density(msat)#
Magnetostatic energy density (J/m³).
1/2 μ0 msat²
- Parameters:
msat (float) – Saturation magnetization (A/m).
- Returns:
Magnetostatic energy density (J/m³).
- Return type:
float
- Km(msat)#
Magnetostatic energy density (J/m³).
1/2 μ0 msat²
This is a short alias for magnetostatic_energy_density(msat).
- Parameters:
msat (float) – Saturation magnetization (A/m).
- Returns:
Magnetostatic energy density (J/m³).
- Return type:
float
- exchange_length(aex, msat)#
Ferromagnetic exchange length (m). Beware that different definitions exist without the √2 prefactor, but this one seems to be used most often.
\[l_{ex} = \sqrt{a_\text{ex}/K_\text{m}} = \sqrt{2a_\text{ex}/(\mu_0 m_\text{sat}^2)}\]- Parameters:
aex (float) – Exchange stiffness (J/m).
msat (float) – Saturation magnetization (A/m).
- Returns:
Exchange length (m).
- Return type:
float
- l_ex(aex, msat)#
Ferromagnetic exchange length (m). Beware that different definitions exist without the √2 prefactor, but this one seems to be used most often.
\[l_{ex} = \sqrt{a_\text{ex}/K_\text{m}} = \sqrt{2a_\text{ex}/(\mu_0 m_\text{sat}^2)}\]This is a short alias for exchange_length(aex, msat).
- Parameters:
aex (float) – Exchange stiffness (J/m).
msat (float) – Saturation magnetization (A/m).
- Returns:
Exchange length (m).
- Return type:
float
- wall_width(aex, K_eff)#
Bloch wall width (m). Mind the lack of any prefactor! Different definitions exist, for example with a prefactor π.
\[\sqrt{a_\text{ex}/K_{\text{eff}}}\]- Parameters:
aex (float) – Exchange stiffness (J/m).
K_eff (float) – Effective anisotropy constant (J/m³), for example Ku1.
- Returns:
Wall width (m).
- Return type:
float
- wall_energy(aex, K_eff)#
Bloch wall energy (J/m²): the energy per unit of Bloch domain wall area. Mind the lack of any prefactor, different definitions exist!
\[\sqrt{a_\text{ex} K_{\text{eff}}}\]- Parameters:
aex (float) – Exchange stiffness (J/m).
K_eff (float) – Effective anisotropy constant (J/m³), for example Ku1.
- Returns:
Wall energy (J/m²).
- Return type:
float
- helical_length(aex, D)#
Characteristic length scale of a DMI dominated system, such as with skyrmions. Mind the lack of any prefactor! Different definitions exist, with prefactors like 1, 2 or 4π.
aex/D
- Parameters:
aex (float) – Exchange stiffness (J/m).
D (float) – Strength of DMI (J/m²), for example interfacial DMI strength.
- Returns:
Helical length (m).
- Return type:
float
- magnetic_hardness(K1, msat)#
Magnetic hardness parameter κ (dimensionless). It should be greater than 1 for a permanent magnet and much less than 1 for a good temporary magnet.
\[\sqrt{\frac{|K_1|}{\mu_0 m_\text{sat}^2}}\]https://doi.org/10.1016/j.scriptamat.2015.09.021
- Parameters:
K1 (float) – Anisotropy energy density (J/m³), for example ku1.
msat (float) – Saturation magnetization (A/m).
- Returns:
Magnetic hardness parameter (dimensionless).
- Return type:
float
- bulk_modulus(C11, C44)#
For isotropic materials, the bulk modulus is given by K = C11 - 4/3 C44 = C12 + 2/3 C44. https://en.wikipedia.org/wiki/Hooke%27s_law
- Parameters:
C11 (float) – Stiffness constant C11 (Pa).
C44 (float) – Stiffness constant C44 (Pa).
- Returns:
Bulk modulus (Pa).
- Return type:
float
- Rayleigh_damping_coefficients(frequency_1, damping_ratio_1, frequency_2, damping_ratio_2)#
Rayleigh damping mass coefficient α and stiffness coefficient β calculated by providing damping ratios ζ₁,₂ at specified frequencies f₁,₂.
α = 4π f₁ f₂ * (ζ₁f₂ - ζ₂f₁) / (f₂² - f₁²)
β = 1/π * (ζ₂f₂ - ζ₁f₁) / (f₂² - f₁²)
with f₁/f₂ <= ζ₂/ζ₁ <= f₂/f₁
Based on https://www.comsol.com/blogs/how-to-model-different-types-of-damping-in-comsol-multiphysics and https://doc.comsol.com/6.3/doc/com.comsol.help.sme/sme_ug_modeling.05.126.html.
- Parameters:
frequency_1 (float) – Low frequency f₁ (Hz) at which damping_ratio_1 is expected. This should be smaller than frequency_2.
damping_ratio_1 (float) – Positive damping ratio ζ₁ (dimensionless) expected at frequency_1.
frequency_2 (float) – High frequency f₂ (Hz) at which damping_ratio_2 is expected. This should be larger than frequency_1.
damping_ratio_2 (float) – Positive damping ratio ζ₂ (dimensionless) expected at frequency_2.
- Returns:
Rayleigh damping mass coefficient α (1/s) and stiffness coefficient β (s).
- Return type:
tuple[float] of size 2
- Rayleigh_damping_stiffness_coefficient(frequency, damping_ratio)#
Rayleigh damping stiffness coefficient β, assuming a mass coefficient of zero, calculated by providing a damping ratio ζ at a specified frequency f.
β = ζ/(πf)
This is useful to obtain a damping that increases linearly with frequency, by only setting the viscosity tensor, but not the phenomenological elastic damping constant.
Based on https://doc.comsol.com/6.3/doc/com.comsol.help.sme/sme_ug_modeling.05.126.html.
- Parameters:
frequency (float) – Frequency f (Hz) at which the damping_ratio is expected.
damping_ratio (float) – Positive damping ratio ζ (dimensionless) expected at the frequency.
- Returns:
Rayleigh damping stiffness coefficient β (s).
- Return type:
float
See also