MatLens · Ecuaciones y modelos

Magnetometría (VSM / SQUID)

Esta sección recoge las ecuaciones que MatLens usa para analizar lazos M–H, curvas ZFC/FC y la ley de Curie–Weiss, con las unidades y convenciones del código (internamente campo en Oe y momento en emu, sistema cgs).

Conversión de unidades

Código: matlens/core/magnetism.py::field_to_oe, matlens/core/magnetism.py::moment_to_emu, matlens/core/magnetism.py::per_mass, matlens/core/magnetism.py::per_volume.

MagnitudEquivalencia usada
Momento1 emu =10^{-3} A·m²
Magnetización másica1 emu/g =1 A·m²/kg
Magnetización volumétrica1 emu/cm³ =10^{3} A/m
Campo1 Oe =10^{3}/(4\pi) A/m; 1 T (como \mu_0 H) =10^{4} Oe; 1 mT =10 Oe; 1 G =1 Oe
\sigma = \frac{m}{m_{\mathrm{muestra}}}, \qquad M = \frac{m}{V}

con m en emu, la masa de muestra en mg (convertida a g) y V en cm³.

Referencias: Goldfarb & Fickett, NBS Special Publication 696 (1985); IEEE/ASTM SI-10.

Momento por fórmula unidad

Código: matlens/core/magnetism.py::emu_g_to_muB, matlens/core/magnetism.py::muB_to_emu_g.

n_B = \frac{M_s\, M_{fu}}{N_A\mu_B}, \qquad N_A\mu_B = 5584.9\ \text{emu/mol}

M_s en emu/g, M_{fu} masa molar de la fórmula en g/mol (a partir de la fórmula química o dada directamente), n_B en \mu_B por fórmula unidad. Constantes CODATA 2018 (N_A = 6.02214076\times10^{23} mol⁻¹, \mu_B = 9.2740100783\times10^{-21} erg/G).

Referencia: Cullity & Graham, Introduction to Magnetic Materials, 2.ª ed., Wiley 2009, §6.2.

Pendiente de campo alto y parámetros del lazo

Código: matlens/core/magnetism.py::high_field_slope, matlens/core/magnetism.py::loop_parameters, matlens/core/magnetism.py::split_branches, matlens/core/magnetism.py::center_loop.

Fondo lineal (para- o diamagnético) ajustado conjuntamente en ambas ramas de campo alto con pendiente común e interceptos separados:

M = \pm M_s^{\pm} + \chi_{hf} H \quad (|H| \ge H_{\min}), \qquad M_s = \tfrac{1}{2}\left(M_s^{+} - M_s^{-}\right)

Por defecto (saturation="approach", matlens/core/magnetism.py::high_field_approach) se añade el término de aproximación a la saturación, con ambas ramas plegadas a H>0:

M = M_s + \chi_{hf} H + a\,|H|^{\beta}, \qquad \beta = -2 \quad (|H| \ge H_{\min} = 0.7\,H_{\max})

El ajuste es lineal en los parámetros: mínimos cuadrados ordinarios (numpy.linalg.lstsq, sin pesos) sobre la matriz [1,\ h,\ h^{-2}] con h = |H|/H_{\max} (campo reducido, para que la matriz esté bien condicionada) y M\,\mathrm{sign}(H) como variable dependiente; \chi_{hf} se devuelve dividiendo la pendiente reducida por H_{\max}. Se necesitan al menos 6 puntos y rango 3. Si el ajuste da a > 0 (aproximación desde arriba, no física) o M_s \le 0, se usa el ajuste lineal y se añade la nota «Aproximación a la saturación no aplicable». Sin este término, un lazo que no satura en el campo máximo atribuye la curvatura a \chi_{hf} y subestima M_s.

Referencias: K. Fabian, Phys. Earth Planet. Inter. 154 (2006) 299; M. Jackson y P. Solheid, Geochem. Geophys. Geosyst. 11 (2010) Q04Z15.

Parámetros del lazo tras restar \chi_{hf} H:

H_c = \tfrac{1}{2}\left(H_{c2} - H_{c1}\right), \qquad H_{EB} = \tfrac{1}{2}\left(H_{c1} + H_{c2}\right), \qquad M_r = \tfrac{1}{2}\left(M_r^{+} - M_r^{-}\right), \qquad S = \frac{M_r}{M_s}
M_{\mathrm{shift}} = \tfrac{1}{2}\left(\langle M\rangle_{H \ge H_{\min}} + \langle M\rangle_{H \le -H_{\min}}\right)
SímboloSignificadoUnidades
H_{\min}campo mínimo del ajuste de campo alto; por defecto 0.7\,\max\lvert H\rvertOe
\chi_{hf}susceptibilidad de campo alto restada(unidad de M)/Oe
M_smagnetización de saturaciónunidad de M
H_{c1}, H_{c2}cruces por M=0 de la rama descendente y ascendenteOe
M_r^{+}, M_r^{-}M(H=0) en la rama descendente y ascendenteunidad de M
H_{EB}desplazamiento por exchange biasOe
M_{\mathrm{shift}}desplazamiento verticalunidad de M

Procedimiento: el barrido se divide en ramas monótonas (se descartan las de menos de 5 puntos); los cruces por cero y M_r se obtienen por interpolación lineal; si hay varios cruces en una rama se toma el de menor |H|. Sin restar fondo, M_s = \tfrac{1}{2}(\max M - \min M). Si solo hay una rama, H_c es el |H_c| de esa rama, H_{EB} = 0 y se anota que el lazo es incompleto. Se informan valores absolutos de M_s, M_r y H_c. center_loop resta H_{EB} y M_{\mathrm{shift}}.

Incertidumbre: no se propaga en estos parámetros.

Validez: el fondo lineal solo es correcto si la muestra está saturada para |H| \ge H_{\min}.

Referencias: Cullity & Graham 2009, cap. 9 y §9.5; Nogués & Schuller, J. Magn. Magn. Mater. 192, 203 (1999).

Ley de aproximación a la saturación y anisotropía

Código: matlens/core/magnetism.py::law_of_approach, matlens/core/magnetism.py::anisotropy_from_b.

M(H) = M_s\left(1 - \frac{a}{H} - \frac{b}{H^2}\right) + \chi H
b = \frac{8}{105}\frac{K_1^2}{M_s^2}\ \text{(cúbica)}, \qquad b = \frac{4}{15}\frac{K^2}{M_s^2}\ \text{(uniaxial)} \quad\Rightarrow\quad |K_1| = M_s\sqrt{b/c}
SímboloSignificadoUnidades
atérmino de inclusiones/defectos (opcional)Oe
btérmino de anisotropía magnetocristalinaOe²
\chisusceptibilidad forzada (opcional)(unidad de M)/Oe
c8/105 (cúbica) o 4/15 (uniaxial)—
K_1primera constante de anisotropía, policristal aleatorioerg/cm³ (×0.1 para J/m³)
M_s en K_1magnetización por volumenemu/cm³

Ajuste: mínimos cuadrados no lineales sin pesos (scipy.optimize.curve_fit) con los puntos |H| \ge H_{\min}; ambas ramas se pliegan a H>0 con M\,\mathrm{sign}(H). Valores iniciales: M_s = \max M, a = 0, b = (0.05\,H_{\min})^2, \chi = 0. a y \chi pueden fijarse en 0. Se exige b \ge 0 para calcular K_1.

Incertidumbre: \sigma(M_s) y \sigma(b) son la raíz de la diagonal de la covarianza de curve_fit (escalada por el residuo), k=1.

Nota (comportamiento del código): cuando a o \chi se fijan en 0, el parámetro sigue entre los argumentos de curve_fit aunque no influye en el modelo; la covarianza resulta singular y \sigma(M_s), \sigma(b) salen NaN (véase el ejemplo resuelto). Los valores centrales no se ven afectados.

Referencias: Akulov (1931); Néel (1948); Chikazumi, Physics of Ferromagnetism, 2.ª ed., OUP 1997, §18.4, ec. 18.61–18.62.

Temperatura de bloqueo (ZFC/FC)

Código: matlens/core/magnetism.py::blocking_temperature.

Método max: T_B = T_{\max}, máximo de la curva ZFC suavizada (media móvil de 5 puntos) refinado con una parábola por los tres puntos alrededor del máximo.

Método derivative:

f(T) \propto -\frac{d\left(M_{FC} - M_{ZFC}\right)}{dT}, \qquad \langle T_B\rangle = \int T\, f(T)\, dT \Big/ \int f(T)\, dT

con f recortada a valores no negativos, ambas curvas interpoladas sobre la rejilla común de temperaturas y suavizadas. T_{irr} es la temperatura a partir de la cual |M_{FC}-M_{ZFC}| cae por debajo del 2 % (por defecto) de su máximo.

Validez: conjunto de nanopartículas no interactuantes; T_{\max} \approx \beta\langle T_B\rangle con \beta \approx 1.5–2. Incertidumbre: no se propaga.

Referencias: Micha et al., J. Magn. Magn. Mater. 272–276, e967 (2004); Bruvera et al., J. Appl. Phys. 118, 184304 (2015).

Ley de Curie–Weiss y momento efectivo

Código: matlens/core/magnetism.py::curie_weiss_fit, matlens/core/magnetism.py::molar_susceptibility, matlens/core/magnetism.py::spin_only_moment.

\chi_{mol} = \frac{M}{H}\, M_{fu}, \qquad \chi_{mol} = \frac{C}{T - \theta} + \chi_0
\mu_{\mathrm{eff}} = \sqrt{\frac{3 k_B |C|}{N_A \mu_B^2}} \approx 2.828\sqrt{C}, \qquad \mu_{\mathrm{so}} = g\sqrt{S(S+1)},\ S = n/2
SímboloSignificadoUnidades
\chi_{mol}susceptibilidad molaremu/(mol·Oe)
Cconstante de Curieemu·K/(mol·Oe)
\thetatemperatura de Weiss (\theta<0: interacciones antiferromagnéticas dominantes)K
\chi_0término independiente de T (opcional)emu/(mol·Oe)
\mu_{\mathrm{eff}}momento efectivo\mu_B por fórmula unidad
g, nfactor g (2 por defecto) y número de electrones desapareados—

Ajuste: valores iniciales de la recta 1/\chi = (T-\theta)/C; después curve_fit no lineal sin pesos sobre \chi en el intervalo [T_{\min}, T_{\max}] elegido (mínimo 4 puntos). k_B = 1.380649\times10^{-16} erg/K.

Incertidumbre: \sigma(C) y \sigma(\theta) de la covarianza del ajuste, k=1.

Validez: solo en el régimen paramagnético, T muy por encima de la temperatura de orden.

Referencias: Kittel, Introduction to Solid State Physics, 8.ª ed., cap. 11; Blundell, Magnetism in Condensed Matter, OUP 2001, §2.3 y §5.1.

Modelo de Néel para espinelas e inversión a partir de Ms

Código: matlens/core/magnetism.py::neel_moment, matlens/core/magnetism.py::inversion_from_moment.

Para (\mathrm{M}_{1-x}\mathrm{Fe}_x)[\mathrm{M}_x\mathrm{Fe}_{2-x}]\mathrm{O}_4 con dos subredes colineales:

m_A = (1-x)\,m_M + x\,m_{Fe}, \qquad m_B = x\,m_M + (2-x)\,m_{Fe}, \qquad n_B = m_B - m_A
x = \frac{n_B - (2m_{Fe} - m_M)}{2m_M - 2m_{Fe}}, \qquad u(x) = \frac{u(n_B)}{|2m_M - 2m_{Fe}|}

m_M es el momento de solo espín del catión (\mu_B, tabla de reglas de Hund: Fe³⁺ 5, Fe²⁺ 4, Mn²⁺ 5, Co²⁺ 3, Ni²⁺ 2, Cu²⁺ 1, Zn²⁺/Mg²⁺ 0…) y m_{Fe} = 5\,\mu_B. Si no se da u(n_B) se toma el 5 % de n_B. El resultado se recorta a [0,1] con aviso.

Validez: espines colineales; la inclinación (Yafet–Kittel), el desorden superficial y los momentos orbitales (Co²⁺, con aviso específico) alteran M_s; n_B debe ser el momento a 0 K o baja temperatura. Valor solo orientativo.

Referencias: Néel, Ann. Phys. 3, 137 (1948); Cullity & Graham 2009, §6.4 y tablas 6.2–6.3; Yafet & Kittel, Phys. Rev. 87, 290 (1952); Smit & Wijn, Ferrites, Philips 1959, tabla 9.2 (valores de validación).

Supuestos físicos y límites de validez

  • Unidades cgs. Todo el cálculo interno es en Oe y emu; el campo en tesla se interpreta como \mu_0 H (1 T → 10^4 Oe). En materiales con magnetización grande y muestras no esféricas el campo interno difiere del aplicado por el campo desmagnetizante H_i = H - N_d M; MatLens no corrige la desimanación, lo que afecta a la forma del lazo y a M_r/M_s, no a M_s.
  • Pendiente de campo alto. Restar \chi_{hf} H supone que la fase ferromagnética está saturada para |H| \ge H_{\min}; si no lo está, la ley de aproximación absorbe la curvatura, pero un lazo muy lejos de la saturación (p. ej. superparamagnético a temperatura ambiente) sigue dando M_s subestimado.
  • Curie–Weiss solo describe el régimen paramagnético con T \gg |\theta|; cerca de la temperatura de orden, la curvatura de 1/\chi sesga \theta. La relación \mu_{\mathrm{eff}} \approx 2.828\sqrt{C} supone C en emu K mol⁻¹ Oe⁻¹ por fórmula unidad y no resta diamagnetismo del núcleo salvo que se ajuste \chi_0.
  • ZFC/FC. El método de la derivada supone partículas no interactuantes y una distribución de barreras de energía; con interacciones dipolares fuertes T_B es aparente.

Incertidumbre: qué se informa y qué no

ResultadoIncertidumbreTipo
M_s, M_r, H_c, H_{EB} del lazoninguna—
Ley de aproximación: M_s, bcovarianza de curve_fitanalítica, k = 1
K_1ninguna (no se propaga \sigma(b))—
Curie–Weiss: C, \thetacovarianza de curve_fitanalítica, k = 1
\mu_{\mathrm{eff}}ninguna—
Inversión xu(n_B)/\lvert 2m_M - 2m_{Fe}\rvert, con u(n_B) = 5 % si no se daanalítica, k = 1

No se incluye: la incertidumbre de la masa o del volumen de la muestra, la calibración del magnetómetro, el campo remanente del imán superconductor (que desplaza H_c y simula exchange bias de unas decenas de Oe), la elección de H_{\min} ni el error del modelo de Néel.

Avisos de validez

Notas y avisos que añade el código:

  • loop_parameters: «Aproximación a la saturación no aplicable: Ms por ajuste lineal a campo alto» (el ajuste no lineal da a > 0, M_s \le 0 o está indeterminado); «Lazo incompleto: Hc de una sola rama, sin desplazamiento de intercambio».
  • inversion_from_moment: siempre advierte que supone espines colineales; además «La inversión calculada cae fuera de [0, 1]; se recorta» y, para Co, «Co²⁺ tiene contribución orbital…».
  • Errores (ValueError): masa o volumen no positivos; menos de 3 puntos a campo alto; lazo con menos de 10 puntos; menos de 5 puntos en la ley de aproximación; b < 0 al calcular K_1; método de la derivada sin curva FC; Curie–Weiss con unidades distintas de emu o emu/g, sin masa molar o con menos de 4 puntos; m_M = m_{Fe} en la inversión (el momento no depende de x, p. ej. Mn²⁺).

Nota: el primer aviso de inversion_from_moment (espines colineales) es una cadena literal sin marcar para traducción (N_), a diferencia de los otros dos.

Referencias con DOI

DOI comprobados en Crossref: J. Nogués e I. K. Schuller, J. Magn. Magn. Mater. 192 (1999) 203, doi:10.1016/S0304-8853(98)00266-2; Y. Yafet y C. Kittel, Phys. Rev. 87 (1952) 290, doi:10.1103/PhysRev.87.290. Los demás artículos (Fabian 2006; Jackson y Solheid 2010; Micha et al. 2004; Bruvera et al. 2015; Néel 1948) se citan sin DOI porque no se han verificado; los libros se citan por edición.

Ejemplos resueltos

Generados por tools/gen_equation_examples.py (módulo tools/equation_examples/magnetism.py) ejecutando las funciones de MatLens sobre casos sintéticos; no se editan a mano.

Ejemplo resuelto: parámetros del lazo M–H

Lazo sintético (emu/g frente a Oe): ramas M_s\tanh[(H - H_{EB} \pm H_c)/w] con M_s = 60 emu/g, H_c = 150 Oe, H_{EB} = -20 Oe, w = 400 Oe, más una cola de aproximación -M_s b/H^2 (b = 4e+05 Oe², solo para |H| > 3000 Oe), un fondo diamagnético \chi = -2e-05 emu g⁻¹ Oe⁻¹ y ruido gaussiano de 0.02 emu/g (semilla fija); barrido ±20 kOe, 1601 puntos. loop_parameters:

SaturaciónM_s (emu/g)\chi_{hf}M_r (emu/g)H_c (Oe)H_{EB} (Oe)M_r/M_s
aproximación (por defecto)59.895-1.59e-0521.45150-19.90.358
lineal59.746-9.99e-0621.45150-19.90.359

Con la fórmula Fe₃O₄ (M_{fu} = 231.533 g/mol), emu_g_to_muB da n_B = 2.483 \mu_B/f.u.

La diferencia entre las dos filas es el sesgo que introduce atribuir la curvatura de campo alto a \chi_{hf} (ajuste lineal); no se informa como incertidumbre.

Ejemplo resuelto: ley de aproximación a la saturación y K₁

Rama sintética M = M_s(1 - b/H^2) con M_s = 480 emu/cm³ y b = 4e+05 Oe², 151 puntos entre 5 y 20 kOe, ruido 0.05 emu/cm³ (semilla fija); law_of_approach con a y \chi libres y anisotropy_from_b (cúbica):

MagnitudValor
M_s (emu/cm³)480.146 ± 0.23
b (Oe²)3.8844e+05 ± 1.5e+04
rms del residuo (emu/cm³)0.0437
a (Oe)3.39
\chi-4.31e-06
\lvert K_1\rvert (erg/cm³)1.084e+06

Con a y \chi fijados en 0 el ajuste da M_s = 479.993 y b = 3.9937e+05 Oe², pero u(M_s) = nan y u(b) = nan: los parámetros fijados siguen dentro de curve_fit sin influir en el modelo, la covarianza es singular y las incertidumbres salen NaN.

Ejemplo resuelto: Curie–Weiss y momento efectivo

Susceptibilidad molar sintética \chi = C/(T-\theta) con C = 4.38 emu K mol⁻¹ Oe⁻¹ y \theta = -15 K, ruido relativo 0.2 % (semilla fija), ajustada con curie_weiss_fit en 100–300 K:

MagnitudValor
C (emu K mol⁻¹ Oe⁻¹)4.3794 ± 0.0035
\theta (K)-14.96 ± 0.13
\mu_{eff} (\mu_B)5.918
\mu_{so} con n = 5, g = 2 (\mu_B)5.916

Ejemplo resuelto: inversión de espinelas a partir de n_B

inversion_from_moment con los momentos de la tabla de validación FERRITE_LITERATURE_MUB (NiFe₂O₄, CuFe₂O₄, MgFe₂O₄, CoFe₂O₄) y u(n_B) por defecto (5 %):

Ion Mn_B (\mu_B)xu(x)n.º de avisos
Ni2+2.30.950.0191
Cu2+1.30.9630.00811
Mg2+1.10.890.00551
Co2+3.70.8250.0462

Siempre hay al menos un aviso (espines colineales); Co²⁺ añade el de contribución orbital y, si x cae fuera de [0, 1], el de recorte. Con Mn²⁺ (m = 5 \mu_B = m_{Fe}) la función rechaza el cálculo: el momento no depende de x.

Generado desde MatLens c0ab138. ← Todas las técnicas