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

Reply via email to