aiida_vibroscopy.utils.broadenings#

Broadening functions for plottin spectra.

Module Contents#

Functions#

lorentz(x_range, peak, intensity, gamma)

Compute a Lorentzian function.

multilorentz(x_range, peaks, intensities, gammas)

Compute Lorentzian function for multiple peaks, and sum it.

voigt_profile(x_range, peak, intensity, gamma_lorentz, ...)

Compute a Voigt profile convolution.

multilvoigt(x_range, peaks, intensities, ...)

Compute Lorentzian function for multiple peaks, and sum it.

gaussian(x_range, peak, intensity, sigma)

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