mammos_analysis.kuzmin#
Postprocessing functions for micromagnetic property estimation.
Functions
|
Compute spontaneous magnetization at temperature T using Kuz'min formula. |
|
Evaluate intrinsic micromagnetic properties using Kuz’min model. |
Classes
|
Result of Kuz'min magnetic properties estimation. |
- class mammos_analysis.kuzmin.KuzminResult(Ms, A, Tc, s, K1=None)[source]#
Result of Kuz’min magnetic properties estimation.
- Parameters:
- A: Callable[[Real | Quantity], Entity]#
Callable returning temperature-dependent exchange stiffness.
- K1: Callable[[Real | Quantity], Entity] | None = None#
Callable returning temperature-dependent uniaxial anisotropy.
- Ms: Callable[[Real | Quantity], Entity]#
Callable returning temperature-dependent spontaneous magnetization.
- plot(T=None, ax=None, celsius=False)[source]#
Create a plot for Ms, A, and K1 as a function of temperature.
- Parameters:
T (mammos_entity.Entity | astropy.units.Quantity | numpy.ndarray | None) – If specified, the entities are plotted against this array. Otherwise, a uniform array of 100 points is generated between the minimum and the maximum available data.
ax (matplotlib.axes.Axes | None) – optional matplotlib
Axesinstance to plot on an existing subplot.celsius (bool) – If True, plots the temperature in degree Celsius.
- Return type:
- mammos_analysis.kuzmin.kuzmin_formula(Ms_0, T_c, s, T)[source]#
Compute spontaneous magnetization at temperature T using Kuz’min formula.
The formula approximate spontaneous magnetization \(M_s(T)\) for \(0 < T < T_c\) as
\[\begin{split}M_s(T) = M_0 \left[ 1 - s \left( \frac{T}{T_c} \right)^{3/2} \\ - (1-s) \left( \frac{T}{T_c} \right)^{5/2} \right]^{1/3}\end{split}\]where \(M_0\) is the saturation magnetization, \(T_c\) is the Curie temperature, and \(s\) is an adjustable parameter.
Kuz’min, M.D., Skokov, K.P., Diop, L.B. et al. Exchange stiffness of ferromagnets. Eur. Phys. J. Plus 135, 301 (2020). https://doi.org/10.1140/epjp/s13360-020-00294-y
- Parameters:
Ms_0 – Spontaneous magnetization at 0 K.
T_c – Curie temperature.
s – Kuzmin exponent parameter.
T – Temperature(s) for evaluation.
- Returns:
Spontaneous magnetization at temperature T as an array.
- mammos_analysis.kuzmin.kuzmin_properties(Ms, T, Tc=None, Ms_0=None, K1_0=None, Tc_initial_guess=None, Ms_0_initial_guess=None, s_initial_guess=0.5)[source]#
Evaluate intrinsic micromagnetic properties using Kuz’min model.
Computes Ms, A, and K1 as function of temperature by fitting the Kuz’min equation to Ms vs T. The attributes Ms, A and K1 in the returned object can be called to get values at arbitrary temperatures.
K1 is only available in the output data if the value of the zero-temperature uniaxial anisotropy constant K1_0 has been passed.
If Ms_0 is None, then we check if the first temperature value is zero. If so, we Ms_0 corresponding to the first value of Ms. Otherwise, its value is fitted from Kuz’min curve.
If Tc is None, it will be treated as an optimization variable and estimated during the fitting process via curve fitting.
If Ms_0 is fitted and Ms_0_initial_guess is not defined, we start the optimization from the value 1.2 * max(Ms_0).
If Tc is fitted and Tc_initial_guess is not defined, we start the optimization from the highest temperature value T such that the corresponding Ms is higher than 0.1 * max(Ms).
- Parameters:
Ms (mammos_entity.Entity) – Spontaneous magnetization data points as a me.Entity.
T (mammos_entity.Entity) – Temperature data points as a me.Entity.
K1_0 (mammos_entity.Entity | None) – Magnetocrystalline anisotropy at 0 K as a me.Entity.
Tc (mammos_entity.Entity | None) – Curie temperature.
Ms_0 (mammos_entity.Entity | None) – Spontaneous magnetization at T=0.
Tc_initial_guess (mammos_entity.Entity | numbers.Real | astropy.units.Quantity | None) – Initial guess for Tc (if optimized).
Ms_0_initial_guess (mammos_entity.Entity | numbers.Real | astropy.units.Quantity | None) – Initial guess for Ms_0 (if optimized).
s_initial_guess (mammos_entity.Entity | numbers.Real | astropy.units.Quantity) – Initial guess for the parameter s appearing in the Kuz’min fit.
- Returns:
KuzminResult with temperature-dependent Ms, A, K1 (optional), Curie temperature (optional), and exponent.
- Raises:
ValueError – Value of Ms at zero temperature is not given.
ValueError – If K1_0 has incorrect unit.
- Return type: