aiida_vibroscopy.utils.broadenings
#
Broadening functions for plottin spectra.
Module Contents#
Functions#
|
Compute a Lorentzian function. |
|
Compute Lorentzian function for multiple peaks, and sum it. |
|
Compute a Voigt profile convolution. |
|
Compute Lorentzian function for multiple peaks, and sum it. |
|
Compute a Gaussian function. |
- aiida_vibroscopy.utils.broadenings.lorentz(x_range: numpy.ndarray, peak: float, intensity: float, gamma: float)[source]#
Compute a Lorentzian function.
Note
assuming all quantities in cm-1, but intensity at arb. units
- Parameters:
x_range – frequency range
peak – peak position
intensity – intensity of the peak
gamma – broadening, full width at half maximum (FWHM)
- Returns:
numpy.ndarray
- aiida_vibroscopy.utils.broadenings.multilorentz(x_range: numpy.ndarray, peaks: list[float], intensities: list[float], gammas: float | list[float])[source]#
Compute Lorentzian function for multiple peaks, and sum it.
Note
assuming all quantities in cm-1, but intensities at arb. units
- Parameters:
x_range – frequency range
peaks – list of peak positions
intensities – list of intensities for each position
gammas – list of broadenings, i.e. full width at half maximum (FWHM)
- Returns:
numpy.ndarray
- aiida_vibroscopy.utils.broadenings.voigt_profile(x_range: numpy.ndarray, peak: float, intensity: float, gamma_lorentz: float, sigma_gaussian: float)[source]#
Compute a Voigt profile convolution.
Note
assuming all quantities in cm-1, but intensities at arb. units; implementation as from Ida et al. J. Appl. Cryst. (2000). 33, 1311
Important
FWHM_Gaussian = 2 * sqrt(2 * ln(2)) * sigma_gaussian; FWHM_Gaussian ~ 2.355 * sigma_gaussian
- Parameters:
x_range – frequency range
peak – peak position
intensity – intensity of the peak
gamma_lorentz – Lorentzian broadening, full width at half maximum (FWHM)
sigma_gaussian – Guassian broadening, corresponding to the deviation standard (not FWHM)
- Returns:
numpy.ndarray
- aiida_vibroscopy.utils.broadenings.multilvoigt(x_range: numpy.ndarray, peaks: list[float], intensities: list[float], gammas_lorentz: float | list[float], sigma_gaussian: float)[source]#
Compute Lorentzian function for multiple peaks, and sum it.
Note
assuming all quantities in cm-1, but intensities at arb. units
Important
FWHM_Gaussian = 2 * sqrt(2 * ln(2)) * sigma_gaussian; FWHM_Gaussian ~ 2.355 * sigma_gaussian
- Parameters:
x_range – frequency range
peaks – list of peak positions
intensities – list of intensities for each position
gammas_lorentz – list (or single value) of Lorentzian broadenings, i.e. full width at half maximum (FWHM)
sigma_gaussian – Guassian broadening, corresponding to sigma
- Returns:
numpy.ndarray
- aiida_vibroscopy.utils.broadenings.gaussian(x_range: numpy.ndarray, peak: float, intensity: float, sigma: float)[source]#
Compute a Gaussian function.
Note
assuming all quantities in cm-1, but intensity at arb. units
Important
FWHM_Gaussian = 2 * sqrt(2 * ln(2)) * sigma_gaussian; FWHM_Gaussian ~ 2.355 * sigma_gaussian
- Parameters:
x_range – frequency range
peak – peak position
intensity – intensity of the peak
sigma – standard deviation of the Gaussian
- Returns:
numpy.ndarray