MatLens · Ecuaciones y modelos

Difracción de rayos X (XRD)

Esta sección resume las ecuaciones que MatLens evalúa en el análisis de difracción de rayos X de polvo, con las convenciones exactas del código.

Ley de Bragg y conversiones de eje

Código: matlens/xrd/processing.py::two_theta_to_d, matlens/xrd/processing.py::d_to_two_theta, matlens/xrd/processing.py::two_theta_to_q.

d = \frac{\lambda}{2\sin\theta}, \qquad 2\theta = 2\arcsin\!\left(\frac{\lambda}{2d}\right), \qquad Q = \frac{4\pi\sin\theta}{\lambda}
SímboloSignificadoUnidades
2\thetaángulo de difraccióngrados (convertido a rad internamente)
\lambdalongitud de ondaÅ
despaciado interplanarÅ
Qmódulo del vector de dispersiónÅ⁻¹

Longitudes de onda por defecto (matlens/xrd/crystal.py::TUBES): Cu Kα1 = 1.540598 Å, Kα2 = 1.544426 Å; Co, Mo, Cr, Fe y Ag también están tabulados, todos con razón Kα2/Kα1 = 0.5. En d_to_two_theta el argumento del arcoseno se recorta a [-1, 1].

Validez: difracción cinemática de primer orden (n = 1). Referencia: implementación propia.

Derivación. Dos planos paralelos separados d reflejan en fase cuando la diferencia de camino 2d\sin\theta es un múltiplo entero de \lambda: n\lambda = 2d\sin\theta. MatLens toma siempre n = 1; una reflexión de orden n sobre (hkl) aparece como la de primer orden de (nh\,nk\,nl), con d/n. Q = 4\pi\sin\theta/\lambda = 2\pi/d es independiente de la longitud de onda, y es el eje natural para comparar medidas con tubos distintos y para la PDF.

Cuándo falla. La ley supone dispersión elástica y cinemática (sin refracción ni extinción). El índice de refracción de los rayos X (1 - \delta, \delta \sim 10^{-5}) desplaza los picos a ángulo bajo en una cantidad que MatLens no corrige; los desplazamientos de cero, de altura de muestra y de transparencia solo se modelan en Rietveld. El eje de entrada se considera ya calibrado.

Ejemplo resuelto

Entrada: tres posiciones de pico (°2θ) con Cu Kα1, \lambda = 1.540598 Å; se llama a two_theta_to_d y two_theta_to_q.

2θ (°)d (Å)Q (Å⁻¹)
28.4433.135492.00389
47.3041.920083.27235
56.1221.63753.83706

Comprobación: Q\,d = 2\pi en todas las filas (6.2831853).

Eliminación de Kα2 (Rachinger)

Código: matlens/xrd/processing.py::strip_ka2.

Para cada punto i, interpretado como posición Kα2, se calcula el ángulo de la línea Kα1 que lo genera y se resta una fracción de la intensidad ya corregida en esa posición:

2\theta_1 = 2\arcsin\!\left(\frac{\lambda_1}{\lambda_2}\sin\theta_i\right), \qquad I'(2\theta_i) = I(2\theta_i) - R\, I'(2\theta_1)
SímboloSignificadoUnidades
\lambda_1, \lambda_2longitudes de onda Kα1 y Kα2Å
Rrazón de intensidades I_{K\alpha2}/I_{K\alpha1} (por defecto 0.5)adimensional
I'intensidad corregidacuentas

El recorrido es ascendente en 2\theta, de modo que I'(2\theta_1) ya está corregido (recursión de Rachinger). I'(2\theta_1) se obtiene por interpolación lineal entre los dos puntos vecinos; los puntos cuyo 2\theta_1 cae antes del inicio del barrido no se modifican. No hay ajuste ni incertidumbre asociada.

Nota (diferencia con la literatura): Rachinger usa la separación aproximada \Delta 2\theta \approx 2\tan\theta\,\Delta\lambda/\lambda; MatLens usa la geometría exacta del doblete (sin aproximación de ángulo pequeño).

Supuestos: perfiles de Kα1 y Kα2 idénticos en forma; razón R constante; paso del barrido suficientemente fino. Referencia: Rachinger, J. Sci. Instrum. 25 (1948) 254, doi:10.1088/0950-7671/25/7/125.

Cuándo falla. Con un paso grueso respecto a la separación del doblete, la interpolación lineal deja residuos; el ruido de cada punto se propaga recursivamente a los puntos situados más arriba (la varianza crece en una fracción R^2 por cada paso de la recursión), y un R distinto del real deja picos fantasma o «agujeros» negativos. La corrección no se aplica cuando la radiación ya es monocromática (Kα1).

Ejemplo resuelto

Doblete sintético: lorentzianas de FWHM 0.08° con Kα1 en 40.30° (altura 1000) y Kα2 en su posición exacta 40.4045° (altura 500, R = 0.5), paso 0.01°. Tras strip_ka2:

magnitudvalor
separación Kα1–Kα2 (°2θ)0.1045
intensidad en 2θ(Kα2) antes631.69
intensidad en 2θ(Kα2) después144.15
máx. de abs(I′ − I_Kα1 verdadera)8.48

El residuo no nulo procede de la interpolación lineal en un paso de 0.01°.

Tamaño de cristalito (Scherrer)

Código: matlens/xrd/processing.py::scherrer.

D = \frac{K\lambda}{\beta\cos\theta}

La anchura instrumental se resta según la forma de pico elegida (Klug & Alexander, X-ray Diffraction Procedures, 2.ª ed., Wiley, 1974):

\beta_{\text{Gauss}} = \sqrt{\max\!\left(B^2 - b^2,\ 0\right)}, \qquad \beta_{\text{Lorentz}} = \max(B - b,\ 0)

con B la FWHM observada y b la instrumental (las anchuras gaussianas se suman en cuadratura y las lorentzianas linealmente al convolucionar). Con el perfil «voigt» (matlens/xrd/processing.py::sample_broadening) el pico observado, ajustado como pseudo-Voigt (FWHM H, fracción lorentziana \eta), se separa en sus componentes gaussiana y lorentziana invirtiendo las relaciones de Thompson, Cox & Hastings (J. Appl. Cryst. 20 (1987) 79):

\eta = 1.36603\,q - 0.47719\,q^2 + 0.11116\,q^3,\quad q = H_L/H,
H^5 = H_G^5 + 2.69269\,H_G^4H_L + 2.42843\,H_G^3H_L^2 + 4.47163\,H_G^2H_L^3 + 0.07842\,H_GH_L^4 + H_L^5

y se resta el instrumento por componentes, H_{G,s}^2 = H_G^2 - b_G^2, H_{L,s} = H_L - b_L; \beta es la FWHM de la Voigt de la muestra, \beta = \mathrm{TCH}(H_{G,s}, H_{L,s}) (de Keijser et al., J. Appl. Cryst. 15 (1982) 308). La anchura de Caglioti se trata como gaussiana (b_L = 0).

SímboloSignificadoUnidades
Dtamaño aparente de cristalitocalculado en Å, reportado en nm
Kconstante de forma (convención FWHM); por defecto 0.9, editableadimensional
\lambdalongitud de onda (por defecto Cu Kα1)Å
\betaensanchamiento de la muestra (FWHM), convertido a radrad
B, bFWHM medida e instrumental°2θ
\thetamitad de la posición del picorad

Anchura instrumental: un valor fijo, o la función de Caglioti (Caglioti, Paoletti & Ricci, Nucl. Instrum. 3 (1958) 223) medida con un estándar (LaB₆ SRM 660, Si SRM 640),

b^2 = U\tan^2\theta + V\tan\theta + W ,

tomada de los parámetros caglioti_u/v/w del paso, de las claves U, V, W del archivo o del perfil instrumental de la hoja («Caglioti: U=…, V=…, W=…»). Sin ninguna, el resultado lleva el aviso «Sin corrección instrumental: el tamaño es un límite inferior / aparente». Si \beta = 0 el tamaño es infinito. No se propaga incertidumbre.

Selección de picos por fase (matlens/recipes/ops.py::xrd_scherrer, matlens/xrd/phase_assign.py): con las fases declaradas (CIF), cada pico observado se asigna a la fase cuyas reflexiones calculadas lo explican; los que tienen reflexiones de dos fases dentro de \max(\text{tol}, B) se excluyen. «Los picos más intensos» son los más intensos asignados a la fase pedida y sin solapamiento. Con varias fases y ninguna declarada, el paso se niega; sin fases se usa el patrón entero con un aviso.

Convención (Langford & Wilson, J. Appl. Cryst. 11 (1978) 102): K depende de la medida de anchura (FWHM o anchura integral), de la forma de los cristalitos y de su distribución; aquí \beta es la FWHM y K = 0.9 es el valor habitual para cristalitos aproximadamente esféricos con esa convención. Con la anchura integral debe usarse el K correspondiente a esa medida.

Comparación con Rietveld: el tamaño Scherrer de un pico es un tamaño aparente promedio en volumen a lo largo de la normal a ese plano; el tamaño de Rietveld (o LVol de un ajuste de patrón completo) sale de un modelo de perfil sobre todas las reflexiones, con otra separación tamaño/deformación. Son magnitudes distintas y no se espera que coincidan exactamente.

Validez (avisos del código): FWHM ≤ 0 invalida el resultado; se advierte sin corrección instrumental y si D cae fuera de ≈ 2–100 nm. Se ignora la contribución de microdeformación (use Williamson–Hall).

Derivación y significado. Un cristal con N planos de espaciado d (D = Nd en la dirección normal a los planos) produce una función de interferencia \sin^2(N\phi)/\sin^2\phi cuya anchura en 2\theta es inversamente proporcional a N; derivando la ley de Bragg, \Delta(2\theta)\cos\theta \approx \lambda/D. La constante K absorbe la forma del cristal y la definición de anchura (FWHM o anchura integral): 0.89–0.94 para esferas y cubos con FWHM (Langford & Wilson 1978). D es un tamaño aparente promediado en volumen del dominio coherente en la dirección [hkl], no el tamaño de partícula: una partícula policristalina o maclada da un D menor que su diámetro.

Algoritmo en MatLens (scherrer): (1) si la forma es lorentz, \beta = \mathrm{FWHM} - \mathrm{FWHM}_\text{inst} (sin recorte: un valor negativo produce \beta \le 0 y D = \infty); si es gauss (por defecto), resta en cuadratura con recorte a 0; (2) \beta y \theta a radianes; (3) D = K\lambda/(\beta\cos\theta) en Å, dividido por 10 para nm; (4) comprobaciones de validez.

Incertidumbre. No se calcula. Por propagación de primer orden, u(D)/D \approx u(\beta)/\beta, de modo que un error de 0.01° en una FWHM de 0.1° ya supone un 10 % en D. El error de modelo (forma del cristal, distribución de tamaños, microdeformación ignorada, elección de K) suele dominar y no está incluido.

Cuándo falla. Por encima de ≈ 100–200 nm el ensanchamiento por tamaño es comparable al instrumental y la resta no es fiable; por debajo de ≈ 2 nm los picos dejan de ser reflexiones de Bragg bien definidas. La microdeformación también ensancha (con \tan\theta) y se confunde con tamaño si se usa un solo pico.

Ejemplo resuelto

Pico a 2θ = 38.18° con FWHM medida 0.30°, Cu Kα1, K = 0.9; anchura instrumental desde Caglioti (U, V, W) = (0.004, −0.002, 0.003) °² con instrumental_fwhm. Resultado de scherrer:

correcciónFWHM_inst (°)β (°)D (nm)validez
gaussiana0.052790.295328.47ok (—)
lorentziana0.052790.247234.01ok (—)
sin corrección00.328.02warning (anchura instrumental = 0: tamaño sin corregir (use LaB6/Si))

Williamson–Hall

Código: matlens/xrd/processing.py::williamson_hall.

\beta\cos\theta = \frac{K\lambda}{D} + 4\varepsilon\sin\theta

Se ajusta por mínimos cuadrados lineales sin ponderar (numpy.polyfit, grado 1) la recta y = m x + b con x = 4\sin\theta e y = \beta\cos\theta:

D = \frac{K\lambda}{b}, \qquad \varepsilon = m, \qquad R^2 = 1 - \frac{\sum (y - \hat y)^2}{\sum (y - \bar y)^2}
SímboloSignificadoUnidades
\beta\sqrt{\max(\mathrm{FWHM}^2 - \mathrm{FWHM}_{\text{inst}}^2, 0)} en radrad
\varepsilonmicrodeformaciónadimensional
b, mintercepto y pendienterad
Kpor defecto 0.9adimensional
Dtamaño, reportado en nmnm

Requiere al menos dos picos; la anchura instrumental puede ser escalar o una por pico. No se reportan incertidumbres de D ni de \varepsilon, solo R^2.

Nota (diferencia con la literatura): la corrección instrumental es siempre cuadrática (gaussiana), aunque el modelo de Williamson–Hall suma anchuras de forma lineal (lorentziana); se usa FWHM en lugar de anchura integral.

Validez (avisos del código): intercepto ≤ 0 invalida el tamaño; \varepsilon < 0, R^2 < 0.8 o corrección instrumental nula generan advertencias. Supone deformación isotrópica (modelo de deformación uniforme). Referencia: implementación propia (relación citada en el docstring del módulo); Williamson & Hall, Acta Metall. 1 (1953) 22, doi:10.1016/0001-6160(53)90006-6.

Derivación. La microdeformación \varepsilon = \Delta d/d ensancha por derivación de la ley de Bragg: \beta_\varepsilon = 4\varepsilon\tan\theta. Si los ensanchamientos por tamaño (K\lambda/(D\cos\theta)) y por deformación se suman linealmente (perfiles lorentzianos), al multiplicar por \cos\theta se obtiene una recta en 4\sin\theta. El intercepto mide el tamaño y la pendiente la deformación.

Algoritmo en MatLens. (1) Anchura instrumental: escalar o un valor por pico (difundido con numpy.broadcast_to); (2) \beta en rad con resta cuadrática recortada a 0; (3) x = 4\sin\theta, y = \beta\cos\theta; (4) se lanza un error si hay menos de 2 picos; (5) recta por mínimos cuadrados sin pesos (numpy.polyfit); (6) D = K\lambda/b (Å → nm) solo si b > 0, si no D = \infty; (7) R^2 y comprobaciones.

Incertidumbre. No se calcula ninguna; con dos picos el ajuste es exacto (R^2 = 1) y no dice nada sobre la calidad. Con N picos, el error estándar de la pendiente y del intercepto podría obtenerse de la covarianza del ajuste lineal; MatLens no lo hace. Las reflexiones de distintas familias hkl con anisotropía elástica dispersan los puntos (lo que reduce R^2) sin que eso sea ruido.

Cuándo falla. Deformación o tamaño anisótropos, distribuciones de tamaños anchas, fallas de apilamiento (ensanchamiento selectivo por hkl) y picos solapados con FWHM mal medida.

Ejemplo resuelto

Siete picos generados con D = 25 nm y \varepsilon = 1.5×10⁻³ (ensanchamientos sumados linealmente, como en el modelo), a los que se suma en cuadratura una anchura instrumental de 0.05° y un ruido relativo gaussiano del 2 % (semilla fija). FWHM de entrada:

2θ (°)FWHM (°)
28.40.4018
330.435
47.40.4794
56.20.5628
69.10.6419
76.30.6702
880.7838

Resultado de williamson_hall:

magnitudvalor
pendiente = ε0.001681
intercepto (rad)0.005192
D (nm)26.7
R²0.9694
validezok (—)

La desviación respecto a los valores de partida mide el sesgo de restar la anchura instrumental en cuadratura y del ruido; MatLens no da incertidumbre de D ni de \varepsilon.

Refinamiento de celda unidad

Código: matlens/xrd/peaksearch.py::refine_cell.

Para cada reflexión indexada:

Q_{hkl} = \frac{1}{d^2} = \mathbf{h}^{\mathsf T} G^{*} \mathbf{h} = \sum_i c_i\, t_i(h,k,l)

con los términos independientes permitidos por el sistema cristalino:

SistemaTérminos t_i
cúbicoh^2+k^2+l^2
tetragonalh^2+k^2, l^2
hexagonal (y trigonal en ejes hexagonales)h^2+hk+k^2, l^2
ortorrómbicoh^2, k^2, l^2
monoclínicoh^2, k^2, l^2, hl
triclínicoh^2, k^2, l^2, kl, hl, hk

Q observado se calcula como Q = (2\sin\theta/\lambda)^2 con \theta = (2\theta_{\text{obs}} - z)/2. Con corrección de cero activada (por defecto) se añade una columna lineal:

Q(2\theta_{\text{obs}} - z) \approx Q_{\text{verdadero}} + \frac{2\sin 2\theta}{\lambda^2}\,\frac{\pi}{180}\,\delta

donde \delta (grados) se acumula en el cero z.

Procedimiento: 3 iteraciones. En cada una se genera la lista de reflexiones de la celda actual, se asignan picos observados a reflexiones uno a uno (pares más cercanos primero) dentro de una tolerancia que comienza en 0.15° y se reduce a la mitad por iteración (mínimo 0.05°), y se resuelve el sistema lineal por mínimos cuadrados sin ponderar (numpy.linalg.lstsq). Se necesitan al menos (parámetros + 1) picos indexados. Los valores iniciales son la celda de la fase de referencia (CIF) y cero = 0. La celda directa se recupera invirtiendo G^{*} (o con fórmulas cerradas en sistemas de alta simetría).

Incertidumbre (k = 1): solo para los coeficientes c_i,

s^2 = \frac{\sum (A c - Q)^2}{N - p}, \qquad \operatorname{cov}(c) = s^2 (A^{\mathsf T} A)^{+}

No se propaga a a, b, c, \alpha, \beta, \gamma ni al volumen.

Figura de mérito:

F_N = \frac{N}{\langle|\Delta 2\theta|\rangle\, N_{\text{pos}}}
SímboloSignificadoUnidades
Nnúmero de líneas observadas indexadas—
\langle\lvert\Delta 2\theta\rvert\ranglemedia de \lvert 2\theta_{\text{obs}} - 2\theta_{\text{calc}} - z\rvert°
N_{\text{pos}}reflexiones calculadas posibles hasta el último pico observado—
Amatriz de diseño de N filas y p columnasÅ⁻²

Muestras multifase (matlens/xrd/phase_assign.py::assign_peaks, paso xrd.cell): con varias fases, las reflexiones de cada fase (posición e intensidad relativa calculadas del CIF; solo las de intensidad ≥ 1 % de la línea más fuerte de la fase) se comparan con los picos observados. Un pico se asigna a una fase si está a menos de la tolerancia de una de sus reflexiones y ninguna reflexión de otra fase cae dentro de \max(\text{tol}, \mathrm{FWHM}_{\text{obs}}); si caen reflexiones de dos fases se marca como solapado. La asignación se repite una vez con las celdas refinadas. La celda de cada fase se refina excluyendo los picos solapados y los de otras fases; los picos usados se listan en el resultado. Si quedan menos de p+1 picos, el paso se detiene y sugiere el refinamiento Rietveld de patrón completo (Rietveld, J. Appl. Cryst. 2 (1969) 65), que se ejecuta (escala, fondo, celda, cero, W y tamaño) si se activa «Rietveld si faltan picos».

Validez: los trigonales se tratan en ejes hexagonales (la celda romboédrica no está soportada); requiere una celda inicial cercana a la verdadera. Referencia: Smith & Snyder, J. Appl. Cryst. 12 (1979) 60, doi:10.1107/S002188987901178X (figura de mérito).

Detalles del algoritmo leídos del código. En cada iteración la lista de reflexiones se genera hasta d_\text{min} = \lambda/(2\sin(\min(2\theta_\text{obs,max} + 2°, 179°)/2)). La asignación es uno a uno: se ordenan todos los pares (observado, calculado) con distancia \le tolerancia y se aceptan de menor a mayor distancia, sin reutilizar ni el pico ni la reflexión. Si quedan menos de p + 1 pares (p = términos + cero), se lanza un error con el número de picos indexados. Los grados de libertad son \max(N - p, 1). La celda se reconstruye con fórmulas cerradas (cúbico a = c_1^{-1/2}; tetragonal y hexagonal a = c_1^{-1/2} o \sqrt{4/(3c_1)}, c = c_2^{-1/2}; ortorrómbico por eje) o invirtiendo G^* (monoclínico, triclínico).

Incertidumbre (lo que no incluye). La esd devuelta (esd["Q-coef"]) es la de los coeficientes en Å⁻², no la de a, b, c; el usuario debe propagarla: para un cúbico, \sigma(a) = \tfrac12 a^3\sigma(c_1). Las correlaciones con el cero no se informan. El error sistemático por desplazamiento de muestra (que varía como \cos\theta, no como una constante) no está modelado: solo se corrige un cero constante.

Ejemplo resuelto

Ocho reflexiones de una celda cúbica con a = 5.4400 Å, desplazadas +0.03° en cero y con ruido gaussiano de 0.004° (semilla fija); celda inicial a = 5.431 Å (Si, grupo Fd\bar3m). Resultado de refine_cell:

magnitudvalor
a (Å)5.43988
cero z (°)0.02809
volumen (ų)160.978
σ(c₁) (Å⁻²), k = 13.66e-06
líneas indexadas N8
F_N195.3

Por propagación de primer orden, a = c_1^{-1/2} da \sigma(a) = \tfrac12 a^3\sigma(c_1) = 0.000295 Å; MatLens no hace este paso.

Función de distribución de pares G(r)

Código: matlens/core/pdf_analysis.py::g_of_r.

G(r) = \frac{2}{\pi}\int_{Q_{\min}}^{Q_{\max}} Q\,[S(Q) - 1]\, M(Q)\, \sin(Qr)\, \mathrm{d}Q

con la función de modificación de Lorch (opcional):

M(Q) = \frac{\sin(\pi Q/Q_{\max})}{\pi Q/Q_{\max}}

(M = 1 sin Lorch). La integral se evalúa con la regla del trapecio sobre los puntos medidos.

SímboloSignificadoUnidades
S(Q)factor de estructura total, ya corregido y normalizadoadimensional
Qvector de dispersiónÅ⁻¹
rdistancia; por defecto 0–30 Å en pasos de 0.01 ÅÅ
G(r)PDF reducidaÅ⁻²
Q_{\min}, Q_{\max}límites; por defecto los extremos de los datosÅ⁻¹

La resolución en r reportada es \pi/Q_{\max} (Å). Se descartan valores no finitos; se requieren al menos 20 puntos. Se advierte si Q_{\max} < 15 Å⁻¹ (oscilaciones de terminación de período ≈ 2\pi/Q_{\max}). No hay propagación de incertidumbre.

Modelo de comparación (matlens/core/pdf_analysis.py::debye_sq), ecuación de Debye para N dispersores puntuales iguales:

S(Q) = 1 + \frac{1}{N}\sum_{i \ne j} \frac{\sin(Q r_{ij})}{Q r_{ij}}

Supuestos: MatLens no aplica correcciones de fondo, absorción, Compton ni normalización; S(Q) debe venir ya corregido. Referencias: Egami & Billinge, Underneath the Bragg Peaks, 2.ª ed., Pergamon 2012, cap. 3; Lorch, J. Phys. C 2, 229 (1969), doi:10.1088/0022-3719/2/2/305; Debye, Ann. Phys. 351, 809 (1915), doi:10.1002/andp.19153510606.

Significado. G(r) = 4\pi r[\rho(r) - \rho_0] es la transformada seno de la función de interferencia reducida F(Q) = Q[S(Q) - 1]; sus máximos están en las distancias interatómicas. Al truncar en Q_\max, G(r) queda convolucionada con \sin(Q_\max r)/r, que produce las oscilaciones de terminación; la función de Lorch las suprime a costa de ensanchar los picos (peor resolución en r).

Cuándo falla. Si S(Q) no está normalizado a 1 en alto Q, G(r) tiene una pendiente espuria a bajo r; las correcciones (fondo, polarización, absorción, Compton, Laue) deben hacerse antes. Con un difractómetro de Cu (Q_\max \approx 8 Å⁻¹) la resolución \pi/Q_\max ≈ 0.4 Å es insuficiente para separar distancias de enlace próximas.

Ejemplo resuelto

Agregado cúbico centrado en las caras de 3×3×3 celdas (108 átomos, a = 3.6 Å, vecino más próximo a/\sqrt2 = 2.5456 Å); S(Q) calculado con debye_sq entre 0.5 y 25 Å⁻¹ y transformado con g_of_r (Lorch activado):

magnitudvalor
primer máximo de G(r) en 2–3 Å (Å)2.55
resolución π/Q_max (Å)0.1257

Puntuación de búsqueda-identificación (search-match)

Código: matlens/xrd/searchmatch.py::score_entry, matlens/xrd/searchmatch.py::_score_at.

\text{Puntuación} = 100\,\left(0.5\, C + 0.2\, E + 0.3\, I\right)
C = \frac{\sum_{\text{ref. coincidentes}} I_{\text{ref}}}{\sum_{\text{ref. en rango}} I_{\text{ref}}}, \qquad E = \frac{\sum_{\text{obs. explicados}} I_{\text{obs}}}{\sum_{\text{obs.}} I_{\text{obs}}}, \qquad I = \max\!\left(0,\ 1 - \frac{1}{10}\left\langle \left|\sqrt{I_{\text{ref}}} - k\sqrt{I_{\text{obs}}}\right|\right\rangle\right)

con k = \mathbf a\cdot\mathbf b/\mathbf b\cdot\mathbf b (\mathbf a = \sqrt{I_{\text{ref}}}, \mathbf b = \sqrt{I_{\text{obs}}}) la escala óptima por mínimos cuadrados. Las intensidades se normalizan a máximo 100.

ParámetroValor por defecto
tolerancia de posición0.12 °2θ, ampliada a 0.5·mediana(FWHM) si es mayor; coincidencia si la distancia ≤ tol/2
desplazamiento de cero9 valores en [-\text{tol}, +\text{tol}]; se elige el de mayor C
escala de celda9 factores en [0.99, 1.01]; una celda escalada exige C \ge 0.8 y ninguna línea fuerte ausente
líneas de referenciase ignoran las de intensidad relativa < 2
rechazomás de una línea de referencia > 50 % sin coincidencia
puntuación mínima20 en search, 45 en auto_identify

Entre factores de celda se penaliza la distorsión con 2|1-f|/0.01 puntos. La identificación multifase (matlens/xrd/searchmatch.py::auto_identify) es voraz: acepta la mejor fase, elimina sus picos explicados y repite (hasta 5 fases, ganancia mínima de intensidad explicada 5 %).

Validez: la puntuación es heurística (0–100), no una probabilidad; no tiene incertidumbre. Referencia: implementación propia.

Referencias adicionales con DOI

  • Langford & Wilson, J. Appl. Cryst. 11 (1978) 102, doi:10.1107/S0021889878012844 (constante de Scherrer según forma y definición de anchura).
  • Caglioti, Paoletti & Ricci, Nucl. Instrum. 3 (1958) 223, doi:10.1016/0369-643X(58)90029-X (perfil instrumental U, V, W).
  • Scherrer, Nachr. Ges. Wiss. Göttingen (1918) 98 (sin DOI).

Generado desde MatLens c0ab138. ← Todas las técnicas