lineshape_tools.lineshape

Implements functionality to evaluate optical lineshapes.

Functions

get_Stot(→ float)

Calculate the Huang-Rhys factor Stot.

gaussian(→ numpy.ndarray)

Evaluate the Gaussian function with smearing s.

lorentzian(→ numpy.ndarray)

Evaluate the Lorentzian function with broadening g.

get_phonon_spec_func(→ tuple[numpy.ndarray, ...)

Compute the phonon spectral function and related quantities.

convert_A_to_L(→ tuple[numpy.ndarray, numpy.ndarray])

Convert phonon spectral function into a (normalized) optical intensity.

Module Contents

lineshape_tools.lineshape.get_Stot(dq: numpy.ndarray, omega: numpy.ndarray) float[source]

Calculate the Huang-Rhys factor Stot.

Parameters:
  • dq (np.ndarray) – mass-weighted displacement vector in normal mode basis in (amu^{1/2} Ang).

  • omega (np.ndarray) – normal mode phonon frequencies (in eV/amu/Ang^2).

lineshape_tools.lineshape.gaussian(x: numpy.ndarray, s: float) numpy.ndarray[source]

Evaluate the Gaussian function with smearing s.

lineshape_tools.lineshape.lorentzian(x: numpy.ndarray, g: float) numpy.ndarray[source]

Evaluate the Lorentzian function with broadening g.

lineshape_tools.lineshape.get_phonon_spec_func(
dq: numpy.ndarray,
omega: numpy.ndarray,
broadening: Broadening | None = None,
resolution: float = 0.001,
w_max: float | None = None,
pad: float = 0.1,
T: float = 0.0,
**kwargs,
) tuple[numpy.ndarray, numpy.ndarray, numpy.ndarray, numpy.ndarray][source]

Compute the phonon spectral function and related quantities.

If broadening is not provided, kwargs will be passed to Broadening.create (see Broadening.create()).

When T == 0. (the default), an optimized evaluation of the spectral function is utilized.

Parameters:
  • dq (np.ndarray) – mass-weighted displacement vector in normal mode basis in (amu^{1/2} Ang).

  • omega (np.ndarray) – normal mode phonon frequencies (in eV/amu/Ang^2).

  • broadening (Broadening) – instance of Broadening.

  • resolution (float) – desired energy resolution (in eV) of the calculated spectral functions.

  • w_max (np.ndarray) – maximum frequency in grid.

  • pad (float) – energy (in eV) below ZPL to pad the spectral function.

  • T (float) – Temperature in kelvin.

  • **kwargs – keyword arguments passed to Broadening.create() when broadening is not provided as input.

Returns:

frequencies at which the functions were evaluated at (ħω) dos (np.ndarray): phonon density of states ρ(ħω) S_w (np.ndarray): Huang-Rhys spectral density S(ħω) A_w (np.ndarray): spectral function A(ħω)

Return type:

w (np.ndarray)

lineshape_tools.lineshape.convert_A_to_L(
w: numpy.ndarray,
A: numpy.ndarray,
dE: float,
emission: bool = True,
norm: str = 'area',
) tuple[numpy.ndarray, numpy.ndarray][source]

Convert phonon spectral function into a (normalized) optical intensity.

Parameters:
  • w (np.ndarray) – frequencies (in eV) where A is evaluated.

  • A (np.ndarray) – spectral function.

  • dE (float) – energy of the zero-phonon line.

  • emission (bool) – determines if the intensity corresponds to emission or absorption.

  • norm (str) – normalization of luminescence (area or max).

Returns:

expanded range of frequencies where intensity is evaluated. L (np.ndarray): optical intensity L(ħω) on expanded frequencies new_w.

Return type:

new_w (np.ndarray)