epdfsuite.lobato_scattering
Lobato parametrization for electron and X-ray scattering factors.
Based on: Lobato, I., & Van Dyck, D. (2014). An accurate parameterization for scattering factors, electron densities and electrostatic potentials for neutral atoms that obey all physical constraints. Acta Crystallographica Section A, 70(6), 636-649.
This is a simplified standalone implementation extracted from abTEM to avoid heavy dependencies on visualization libraries.
Functions
|
Compute scattering factor profiles for multiple elements. |
|
Compute electron scattering factor using Lobato parametrization. |
|
Compute X-ray scattering factor using Lobato parametrization. |
Classes
Calculator for electron and X-ray scattering factors using Lobato parametrization. |
- epdfsuite.lobato_scattering.electron_scattering_factor(k2, params)[source]
Compute electron scattering factor using Lobato parametrization.
- Parameters:
k2 (float or ndarray) – Squared scattering vector magnitude (in 1/Angstrom^2)
params (ndarray) – Lobato parameters [2 x 5] array where params[0] are ‘a’ coefficients and params[1] are ‘b’ coefficients
- Returns:
f (float or ndarray) – Electron scattering factor
Notes
Based on Lobato & Van Dyck (2014), Acta Cryst. A70, 636-649 f_e(k^2) = sum_i [ a_i * (2 + b_i * k^2) / (1 + b_i * k^2)^2 ]
- epdfsuite.lobato_scattering.x_ray_scattering_factor(k, params)[source]
Compute X-ray scattering factor using Lobato parametrization.
- Parameters:
k (float or ndarray) – Scattering vector magnitude (in 1/Angstrom)
params (ndarray) – Lobato parameters [2 x 5] array
- Returns:
f (float or ndarray) – X-ray scattering factor
Notes
Uses Bohr radius conversion: 1 Bohr = 0.529177 Angstrom Based on Lobato & Van Dyck (2014), Acta Cryst. A70, 636-649 f_xray(k) = sum_i [ 2*pi^2*a0 * a_i / (b_i * (1 + b_i * k^2)^2) ] where a0 is the Bohr radius in Angstrom
- epdfsuite.lobato_scattering.compute_scattering_profile(elements, s_values, xray=False)[source]
Compute scattering factor profiles for multiple elements.
- Parameters:
elements (list of str) – List of element symbols (e.g., [‘Au’, ‘C’])
s_values (ndarray) – Scattering vector magnitudes in 1/Angstrom (s = sin(theta)/lambda)
xray (bool, optional) – If True, compute X-ray scattering factors. If False (default), compute electron scattering factors.
- Returns:
profiles (ndarray) – Array of shape (n_elements, n_points) with scattering profiles
- class epdfsuite.lobato_scattering.LobatoScatteringCalculator[source]
Bases:
objectCalculator for electron and X-ray scattering factors using Lobato parametrization.
This provides a simplified interface similar to abtem’s LobatoParametrization.
- line_profiles(elements, cutoff, sampling, name='scattering_factor')[source]
Compute scattering factor line profiles.
- Parameters:
elements (list of str) – Element symbols
cutoff (float) – Maximum s value (1/Angstrom)
sampling (float) – Sampling interval in s (1/Angstrom)
name (str, optional) – Type of scattering factor: “scattering_factor” for electrons, “x_ray_scattering_factor” for X-rays
- Returns:
result (SimpleNamespace) – Object with ‘array’ attribute containing profiles of shape (n_elements, n_points)