Polarizibility

graphenemodeling.graphene.monolayer.Polarizibility(q, omega, gamma, FermiLevel, T=0)

The Polarizibility \(\chi^0\) of graphene.

Parameters:
  • q (array-like, rad/m) – Difference between scattered wavevector and incident
  • omega (array-like, rad/s) – Angular frequency
  • gamma (scalar, rad/s) – scattering rate due to mechanisms such as impurities (i.e. not Landau Damping) We use the Mermin-corrected Relaxation time approximation (Eqn 4.9 of Ref 1)
  • FermiLevel (scalar, J) – Fermi level of graphene.
  • T (scalar, K) – Temperature

Notes

The Polarizibiliy function in graphene. Can be derived from a self-consistent field method or the Kubo formula.

\[\chi^0(\mathbf q, \omega) = \frac{g}{A}\sum_{nn'\mathbf k}\frac{f_{n\mathbf k} - f_{n'\mathbf{k+q}}}{\epsilon_{n\mathbf k}-\epsilon_{n'\mathbf{k+q}}+\hbar(\omega+i\eta)}|\left<n\mathbf k|e^{-i\mathbf{q\cdot r}}|n'\mathbf{k+q}\right>|^2\]

For gamma == 0, this returns equation 17 of Ref 2, which is the polarizibility for general complex frequencies.

For gamma > 0, we return the Mermin-corrected Relaxation time approximation (Eqn 4.9 of Ref 1), which calls the gamma==0 case.

Examples

Plot the real and imaginary part of \(\chi^0\), normalized to density of states. Replicates Fig. 1 of Ref. [3].

>>> from graphenemodeling.graphene import monolayer as mlg
>>> import matplotlib.pyplot as plt
>>> from matplotlib import cm
>>> from scipy.constants import elementary_charge as eV
>>> from scipy.constants import hbar
>>> eF = 0.4*eV
>>> gamma = 0
>>> DOS = mlg.DensityOfStates(eF,model='LowEnergy')
>>> kF = mlg.FermiWavenumber(eF,model='LowEnergy')
>>> omega = np.linspace(0.01,2.5,num=250) / (hbar/eF)
>>> q = np.linspace(0.01,2.5,num=250) * kF
>>> pol = mlg.Polarizibility(q, omega[:,np.newaxis],gamma,eF)
>>> fig, (re_ax, im_ax)  = plt.subplots(1,2,figsize=(11,4))
>>> re_img = re_ax.imshow(  np.real(pol)/DOS,
...                         extent=(q[0]/kF,q[-1]/kF,hbar*omega[0]/eF,hbar*omega[-1]/eF),
...                         vmin=-2,vmax=1, cmap=cm.gray,
...                         origin = 'lower', aspect='auto'
...                       )
<...
>>> re_cb = fig.colorbar(re_img, ax = re_ax)
>>> im_img = im_ax.imshow(  np.imag(pol)/DOS,
...                         extent=(q[0]/kF,q[-1]/kF,hbar*omega[0]/eF,hbar*omega[-1]/eF),
...                         vmin=-1,vmax=0, cmap=cm.gray,
...                         origin = 'lower', aspect='auto'
...                       )
<...
>>> im_cb = fig.colorbar(im_img, ax = im_ax)
>>> re_ax.set_ylabel('$\hbar\omega$/$\epsilon_F$',fontsize=14)
Text...
>>> re_ax.set_xlabel('$q/k_F$',fontsize=14)
Text...
>>> im_ax.set_ylabel('$\hbar\omega$/$\epsilon_F$',fontsize=14)
Text...
>>> im_ax.set_xlabel('$q/k_F$',fontsize=14)
Text...
>>> plt.show()

(Source code, png, hires.png, pdf)

_images/graphene-monolayer-Polarizibility-1.png

References

[1] Christensen Thesis 2017

[2] Sernelius, B. Retarded interactions in graphene systems.

[3] Wunsch, B., Stauber, T., Sols, F., and Guinea, F. (2006). Dynamical polarization of graphene at finite doping. New J. Phys. 8, 318–318. https://doi.org/10.1088%2F1367-2630%2F8%2F12%2F318.

[4] Hwang, E.H., and Das Sarma, S. (2007). Dielectric function, screening, and plasmons in two-dimensional graphene. Phys. Rev. B 75, 205418. https://link.aps.org/doi/10.1103/PhysRevB.75.205418.