Dielectric function tools#

The DielectricFunction class inherits from hyperspy.api.signals.ComplexSignal and can thus access complex properties. To convert a hyperspy.api.signals.ComplexSignal to a DielectricFunction, make sure that the signal dimension and signal type are properly set:

>>> s.set_signal_type('DielectricFunction')

Note that DielectricFunction is complex and therefore is a subclass of hyperspy.api.signals.ComplexSignal1D.

Number of effective electrons#

The Bethe f-sum rule gives rise to two definitions of the effective number (see [Egerton2011]):

\[ \begin{align}\begin{aligned}n_{\mathrm{eff1}}\left(-\Im\left(\epsilon^{-1}\right)\right)=\frac{2\epsilon_{0}m_{0}}{\pi\hbar^{2}e^{2}n_{a}}\int_{0}^{E}E'\Im\left(\frac{-1}{\epsilon}\right)dE'\\n_{\mathrm{eff2}}\left(\epsilon_{2}\right)=\frac{2\epsilon_{0}m_{0}}{\pi\hbar^{2}e^{2}n_{a}}\int_{0}^{E}E'\epsilon_{2}\left(E'\right)dE'\end{aligned}\end{align} \]

where \(n_a\) is the number of atoms (or molecules) per unit volume of the sample, \(\epsilon_0\) is the vacuum permittivity, \(m_0\) is the electron mass and \(e\) is the electron charge.

The get_number_of_effective_electrons() method computes both.

Compute the electron energy-loss signal#

The get_electron_energy_loss_spectrum() “naively” computes the single-scattering electron-energy loss spectrum from the dielectric function given the zero-loss peak (or its integral) and the sample thickness using:

\[S\left(E\right)=\frac{2I_{0}t}{\pi a_{0}m_{0}v^{2}}\ln\left[1+\left(\frac{\beta}{\theta(E)}\right)^{2}\right]\Im\left[\frac{-1}{\epsilon\left(E\right)}\right]\]

where \(I_0\) is the zero-loss peak integral, \(t\) the sample thickness, \(\beta\) the collection semi-angle and \(\theta(E)\) the characteristic scattering angle.