abinslib.isotropic_incoherent¶
Incoherent phonon mode intensities in the fully-isotropic approximation.
Functions¶
Calculate mode intensities in fully-isotropic approximation. |
|
|
Calculate fully-isotropic Debye-Waller factor. |
Calculate INS intensities in fully-isotropic incoherent approximation. |
|
Calculate INS intensities in fully-isotropic incoherent approximation. |
Module Contents¶
- abinslib.isotropic_incoherent.calculate_isotropic_incoherent_fundamentals(modes: euphonic.QpointPhononModes, mode_displacements: euphonic.Quantity, atomic_displacements: euphonic.Quantity, nominal_q2: euphonic.Quantity, include_dw: bool = True) numpy.ndarray[source]¶
Calculate mode intensities in fully-isotropic approximation.
S = exp(-(Q^2 tr(A)/3)) Q^2 tr(B) / 3
Fundamentals only
Atomic cross sections not applied
Ignore actual q-points and use nominal Q^2 instead
Return array indices (qpt, mode, atom)
- abinslib.isotropic_incoherent.calculate_isotropic_dw_factor(atomic_displacements: euphonic.Quantity, q2: euphonic.Quantity) numpy.ndarray[source]¶
Calculate fully-isotropic Debye-Waller factor.
The dot product between atomic displacements and Q vector is replaced with a scalar product between Q and tr(A)/3.
- Parameters:
atomic_displacements – displacement tensors with shape (natoms, 3, 3), corresponding to sum over phonon modes with <2n+1> Bose statistics. Generally this is obtained using
abinslib.displacements.Displacements.to_atomic_displacements()q2 – scalar Q^2 array of arbitrary shape and length^-2 dimensions
- Returns:
Debye-Waller factor array with shape
(natoms, *q2.shape)
- abinslib.isotropic_incoherent.calculate_isotropic_incoherent_spectra(modes: euphonic.QpointPhononModes, mode_displacements: abinslib.Displacements, atomic_displacements: euphonic.Quantity, nominal_q2: euphonic.Quantity, bins: euphonic.Quantity, apply_cross_section: bool = True, include_dw: bool = True) euphonic.spectra.Spectrum1DCollection[source]¶
Calculate INS intensities in fully-isotropic incoherent approximation.
Actual q-points of phonon modes will be disregarded; instead each mode intensity will be based on a separate array of nominal Q^2 values corresponding to modes. This is intended to approximate powder-averaging with kinematic constraints: for indirect geometry the energy-Q^2 relationship can be determined using abinslib.utils.calculate_indirect_q2.
- Parameters:
modes – phonon frequency and eigenvector dataset
mode_displacements – phonon mode displacement dataset (This can be obtained using
Displacements.from_modes(modes)().)atomic_displacements – thermal average atomic displacements indexed (atom, direction, direction)
nominal_q2 – Scalar Q^2 values corresponding to modes; note that all q-points are used and this is typically related to the mode frequency by neutron instrument parameters.
bins – Energy or frequency bins used as x_data in resulting spectra
apply_cross_section – Multiply each atom/isotope spectrum by a corresponding total neutron scattering cross-section (σ_tot).
include_dw – Multiply each spectrum by Debye-Waller factor; this is calculated from atomic_displacements and follows nominal_q2.
- Returns:
binned spectra of contribution from each nucleus
- abinslib.isotropic_incoherent.q_scaling_isotropic_incoherent_spectra(modes: euphonic.QpointPhononModes, mode_displacements: abinslib.Displacements, atomic_displacements: euphonic.Quantity, nominal_q2: euphonic.Quantity, bins: euphonic.Quantity) euphonic.spectra.Spectrum1DCollection[source]¶
Calculate INS intensities in fully-isotropic incoherent approximation.
Note that to give expected results, mode_displacements should have N+1 Bose occupation and atomic_displacements should have 2N+1 occupation.
Actual q-points of phonon modes will be disregarded; instead each mode intensity will be calculated at Q=1/Å then rescaled to nominal Q^2 values corresponding to energy bins. This is intended to approximate powder-averaging with kinematic constraints: for indirect geometry the energy-Q^2 relationship can be determined using abinslib.utils.calculate_indirect_q2.
- Parameters:
modes – phonon frequency and eigenvector dataset
mode_displacements – phonon mode displacement dataset (This can be obtained using
Displacements.from_modes(modes)().)atomic_displacements – thermal average atomic displacements indexed (atom, direction, direction)
nominal_q2 – Scalar Q^2 values corresponding to output bin centers.
bins – Energy or frequency bins used as x_data in resulting spectra
apply_cross_section – Multiply each atom/isotope spectrum by a corresponding total neutron scattering cross-section (σ_tot).
- Returns:
binned spectra of contribution from each nucleus