PAOFLOW.phonon.do_vibrational_dielectric#

Vibrational (ionic) contribution to the dielectric function (Stage 5).

A polar zone-centre phonon modulates the macroscopic polarization and therefore contributes a resonance to the dielectric function. Adding the lattice (ionic) response to the electronic high-frequency dielectric tensor \(\varepsilon^{\infty}\) gives the full low-frequency dielectric function

\[\varepsilon_{\alpha\beta}(\omega) = \varepsilon^{\infty}_{\alpha\beta} + \frac{e^{2}}{\varepsilon_{0}\,m_{u}\,V} \sum_{\nu} \frac{\bar{Z}_{\nu,\alpha}\,\bar{Z}_{\nu,\beta}} {\omega_{\nu}^{2} - \omega^{2} - i\omega\gamma_{\nu}},\]

where \(\bar{Z}_{\nu,\alpha} = \sum_{k,\beta} Z^{*}_{k,\alpha\beta}\, e_{\nu,k\beta}/\sqrt{M_k}\) is the mode effective charge vector already used for the infrared intensities (mode_effective_charges()), \(S_{\nu,\alpha\beta} = \bar{Z}_{\nu,\alpha}\bar{Z}_{\nu,\beta}\) is the mode-oscillator-strength tensor (Gonze & Lee, PRB 55, 10355), \(V\) is the primitive-cell volume and \(m_u\) the atomic mass unit. The mode effective charges are returned in units of \(e\,\mathrm{amu}^{-1/2}\), so the elementary charge \(e\) and \(m_u\) are restored by the SI prefactor above.

The static limit \(\varepsilon(0) = \varepsilon^{\infty} + \sum_\nu S_\nu/\omega_\nu^2\) (the generalized Lyddane-Sachs-Teller relation) and, for a polar crystal, a reststrahlen band where \(\mathrm{Re}\,\varepsilon < 0\) (between the transverse \(\omega_{TO}\) and longitudinal \(\omega_{LO}\) frequencies) follow directly. Acoustic modes are rigid translations (\(\omega_\nu \le 0\), \(\bar{Z}_\nu = 0\)) and do not contribute.

Functions#

compute_vibrational_dielectric(data_controller[, ...])

Vibrational (ionic) dielectric function from Born charges and phonons.

Module Contents#

PAOFLOW.phonon.do_vibrational_dielectric.compute_vibrational_dielectric(data_controller, born=None, dielectric=None, born_file=None, gamma=4.0, freq_min=None, freq_max=None, npoints=2000, units='cm-1', emit_ev=True, emissivity=False, emis_angles=(0.0,), emis_ntheta=64, emis_temperature=(300.0,), outdir='vibdielectric', fname='phonon', write=True)[source]#

Vibrational (ionic) dielectric function from Born charges and phonons.

Parameters:
  • born (array_like, optional) – Born effective charges (natom_prim, 3, 3) in units of the elementary charge. When omitted they are read from born_file or a previous compute_born_and_epsilon() / attach_nac() call (arry['born_charges']).

  • dielectric (array_like, optional) – High-frequency dielectric tensor \(\varepsilon^{\infty}\) (3, 3). When omitted it is read from born_file or from arry['dielectric_tensor'].

  • born_file (str, optional) – Path to a phonopy BORN file providing both the Born charges and \(\varepsilon^{\infty}\).

  • gamma (float or array_like) – Phonon linewidth(s) used as the Lorentzian damping (in units). A scalar broadens every mode equally; an array gives a per-mode width.

  • freq_min (float, optional) – Frequency-axis limits of the dielectric function (in units). Defaults span 0 to just above the highest longitudinal-optical frequency, so the reststrahlen band is captured.

  • freq_max (float, optional) – Frequency-axis limits of the dielectric function (in units). Defaults span 0 to just above the highest longitudinal-optical frequency, so the reststrahlen band is captured.

  • npoints (int) – Number of points on the frequency grid.

  • units (str) – Frequency unit for inputs/outputs: 'cm-1' (default) or 'THz'.

  • emit_ev (bool) – When True (default) the per-component eps{r,i}_<ab>.dat files are written with the frequency axis in eV, so they can be plotted directly with PAOFLOW.GPAO.GPAO.plot_optical() (whose axis is in eV). When False the axis is written in units.

  • emissivity (bool) – When True the reststrahlen (phonon) emissivity is derived from the vibrational dielectric function via the Fresnel/Kirchhoff helpers in PAOFLOW.response.do_epsilon and written alongside the eps{r,i} files (directional refl_th*/emis_th*, spectral hemispherical emish_* and Planck-weighted total emist_*). The total hemispherical emissivity is integrated over the far-IR grid only, so it captures the lattice (phonon) contribution to the emissivity.

  • emis_angles (array_like) – Incidence angles (degrees) for the directional reflectivity/emissivity.

  • emis_ntheta (int) – Polar-angle samples for the hemispherical integral.

  • emis_temperature (float or array_like) – Temperature(s) (K) for the total hemispherical emissivity.

  • outdir (str) – Sub-directory (under opath) for the per-component dielectric files.

  • fname (str) – Output basename for the static-summary file.

  • write (bool) – When True the output files are written (rank 0 only).

Returns:

{'grid', 'grid_ev', 'eps', 'static', 'eps_inf', 'frequencies', 'mode_strengths', 'irreps'}.

Return type:

dict