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 <[email protected]> on behalf of Michal
Krompiec <[email protected]>
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 <[email protected]> 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 <[email protected]> on behalf of Michal
> Krompiec <[email protected]>
> 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 <[email protected]> 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 <[email protected]> on behalf of Michal
> > Krompiec <[email protected]>
> > 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<http://www.max-centre.eu/quantum-espresso>)
> > users mailing list [email protected]
> > https://lists.quantum-espresso.org/mailman/listinfo/users
> _______________________________________________
> Quantum ESPRESSO is supported by MaX
> (www.max-centre.eu/quantum-espresso<http://www.max-centre.eu/quantum-espresso>)
> users mailing list [email protected]
> https://lists.quantum-espresso.org/mailman/listinfo/users
> _______________________________________________
> Quantum ESPRESSO is supported by MaX
> (www.max-centre.eu/quantum-espresso<http://www.max-centre.eu/quantum-espresso>)
> users mailing list [email protected]
> https://lists.quantum-espresso.org/mailman/listinfo/users
_______________________________________________
Quantum ESPRESSO is supported by MaX
(www.max-centre.eu/quantum-espresso<http://www.max-centre.eu/quantum-espresso>)
users mailing list [email protected]
https://lists.quantum-espresso.org/mailman/listinfo/users
_______________________________________________
Quantum ESPRESSO is supported by MaX (www.max-centre.eu/quantum-espresso)
users mailing list [email protected]
https://lists.quantum-espresso.org/mailman/listinfo/users