[QE-users] dielectric function from turbo_lanczos

Michal Krompiec michal.krompiec at gmail.com
Tue Apr 21 14:43:19 CEST 2020


Dear Iurii,
Unfortunately, the commented-out code from
tddpft_calculate_spectrum.f90 doesn't compile, and my knowledge of
Fortran is not nearly good enough to fix this:
tddfpt_calculate_spectrum.f90(469): error #6366: The shapes of the
array expressions do not conform.   [EPS]
              eps(ip,ip2) = (1.d0,0.d0)-(32.d0*pi/omega)*green(ip,ip2)

I will go for the turbo_eels route, then. What value of q is low
enough (to approximate q->0), in your experience? If it needs to be
determined by a convergence test, what is a good starting point?

Best,

Michal


On Tue, 21 Apr 2020 at 13:20, Timrov Iurii <iurii.timrov at epfl.ch> wrote:
>
> Dear Michal,
>
>
> > But I noticed that eps is calculated for the EELS spectrum (line 555)
> > and  Re(eps) and Im(eps) are printed to the output file. Would it make
> > sense to use this for the calculation of the refractive index?
>
>
> I think yes. But use turboEELS code in this case.
>
>
> Please note that the susceptibility \chi in the turbo_lanczos code and \chi in turbo_eels code are not the same thing. In the former case \chi is proportional to \epsilon, while in the latter case \chi is proportional to \epsilon^-1.
>
>
> So if you use the turboEELS (turbo_eels) code with q->0, you will obtain \chi from which you will obtain \epsilon^-1. Then the code also computes \epsilon from \epsilon^-1.
>
>
> Greetings,
>
> 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: Tuesday, April 21, 2020 12:57:39 PM
> To: Quantum ESPRESSO users Forum
> Subject: Re: [QE-users] dielectric function from turbo_lanczos
>
> Dear Iurii,
> Thanks, I will try that.
> But I noticed that eps is calculated for the EELS spectrum (line 555)
> and  Re(eps) and Im(eps) are printed to the output file. Would it make
> sense to use this for the calculation of the refractive index?
>
> Best,
>
> Michal
>
> On Tue, 21 Apr 2020 at 10:43, Timrov Iurii <iurii.timrov at epfl.ch> wrote:
> >
> > 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
> >
> > _______________________________________________
> > Quantum ESPRESSO is supported by MaX (www.max-centre.eu/quantum-espresso)
> > users mailing list users at lists.quantum-espresso.org
> > https://lists.quantum-espresso.org/mailman/listinfo/users
> _______________________________________________
> Quantum ESPRESSO is supported by MaX (www.max-centre.eu/quantum-espresso)
> users mailing list users at lists.quantum-espresso.org
> https://lists.quantum-espresso.org/mailman/listinfo/users
> _______________________________________________
> Quantum ESPRESSO is supported by MaX (www.max-centre.eu/quantum-espresso)
> users mailing list users at lists.quantum-espresso.org
> https://lists.quantum-espresso.org/mailman/listinfo/users


More information about the users mailing list