Dear Iurii, Thank you. The patch to turbo_spectrum didn't work for me (it does compile but the results don't look good). But I obtained really nice results with turbo_eels, thanks for recommending it! Best regards,
Michal On Tue, 21 Apr 2020 at 14:10, Timrov Iurii <iurii.tim...@epfl.ch> wrote: > > Dear Michal, > > > > 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) > > > Since it is commented out, there are some mistakes there. If you want you can > try the fix: > > > DO ip=1,n_ipol > > DO ip2=1,n_ipol > > ! > > eps(ip,ip2) = (1.d0,0.d0) - (32.d0*pi/volume) * 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, rytoev*omeg, dble(eps), aimag(eps) > > ! > > ENDDO > > ENDDO > > > But I haven't tested whether this gives the correct result. > > > > 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? > > > No need to perform the convergence test w.r.t q. Just try this (should be > ok): > > > &lr_control > > itermax = 2000, <- this has to be checked > > q1 = 0.001, > > q2 = 0.000, > > q3 = 0.000 > > / > > > Regards, > > 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-boun...@lists.quantum-espresso.org> on behalf of Michal > Krompiec <michal.kromp...@gmail.com> > Sent: Tuesday, April 21, 2020 2:43:19 PM > To: Quantum ESPRESSO users Forum > Subject: Re: [QE-users] dielectric function from turbo_lanczos > > 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.tim...@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-boun...@lists.quantum-espresso.org> on behalf of Michal > > Krompiec <michal.kromp...@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.tim...@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-boun...@lists.quantum-espresso.org> on behalf of > > > Michal Krompiec <michal.kromp...@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@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@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@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@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@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@lists.quantum-espresso.org https://lists.quantum-espresso.org/mailman/listinfo/users