[QE-users] dielectric function from turbo_lanczos

Timrov Iurii iurii.timrov at epfl.ch
Tue Apr 21 11:43:00 CEST 2020


Dear Michal,


> Now, how do I convert the complex susceptibility chi (from the output of turbo_lanczos) to epsilon? I know that in principle epsilon = 1 + chi, but then the results don’t make sense. Am I missing some unit conversion or something else?
> Moreover, turbo_lanczos is complaining it hasn’t got enough information to compute S - what could be the cause of this?


S is the oscillator strength. Some useful information is written in the output file of the turbo_spectrum calculation (for finite systems):


chi_i_j: dipole polarizability tensor  in units of e^2*a_0^2/energy

S: oscillator strength in units of 1/energy

S(\hbar \omega) = 2m/( 3 \pi e^2 \hbar)  \omega sum_j chi_j_j

S(\hbar \omega) satisfies the f-sum rule:  \int_0^\infty dE S(E) = N_el


In your case you are interested in epsilon for periodic systems, so you may look in the code TDDFPT/tools/tddfpt_calculate_spectrum.f90. E.g. on lines 463-475 it is written:


DO ip=1,n_ipol

  DO ip2=1,n_ipol

     !

     !eps(ip,ip2) = (1.d0,0.d0)-(32.d0*pi/omega)*green(ip,ip2)

     !

     WRITE(17,'(5x,"chi_",i1,"_",i1,"=",2x,3(e21.15,2x))') &

         ip2, ip, start, dble(green(ip,ip2)), aimag(green(ip,ip2))


     ! write(*,'(5x,"eps_",i1,"_",i1,"=",2x,3(e21.15,2x))') &

     ! ip2, ip, ry*omeg, dble(eps), aimag(eps)

     !

  ENDDO

ENDDO


What you need is "eps", but it is commented out. So just uncomment it here and check in other places in this program and see what you obtain. Since this is commented out, one has to be careful and check if the result is correct. I do not know where the factor 32 comes from (one has to think). It was not me who coded this. You may also check the literature how the dielectric matrix is obtained from the susceptibility matrix (i.e. what are the prefactors).


HTH


Iurii


--
Dr. Iurii Timrov
Postdoctoral Researcher
STI - IMX - THEOS and NCCR - MARVEL
Swiss Federal Institute of Technology Lausanne (EPFL)
CH-1015 Lausanne, Switzerland
+41 21 69 34 881
http://people.epfl.ch/265334
________________________________
From: users <users-bounces at lists.quantum-espresso.org> on behalf of Michal Krompiec <michal.krompiec at gmail.com>
Sent: Monday, April 20, 2020 10:27:29 PM
To: Quantum Espresso users Forum
Subject: [QE-users] dielectric function from turbo_lanczos

Hello,
I'm trying to compare refractive index spectra calculated with epsilon.x and TDDFpT with the turbo_lanczos code. My system is a periodic supercell, I am using PBEsol functional, Gamma-only sampling and norm-conserving PPs.

>From the output of epsilon.x, I calculate refractive index n as follows:
n = np.sqrt(np.sqrt(np.square(eps_real_iso)+np.square(eps_imag_iso)+eps_real_iso))
# eps_real_iso and eps_imag_iso are averages of the spatial components of real and imaginary epsilon

Now, how do I convert the complex susceptibility chi (from the output of turbo_lanczos) to epsilon? I know that in principle epsilon = 1 + chi, but then the results don’t make sense. Am I missing some unit conversion or something else?
Moreover, turbo_lanczos is complaining it hasn’t got enough information to compute S - what could be the cause of this?

Thanks,
Michal Krompiec
Merck KGaA

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.quantum-espresso.org/pipermail/users/attachments/20200421/d0a72acd/attachment.html>


More information about the users mailing list