Decompose of dielectric function in metallic system

Deals with issues related to computation of optical spectra in reciprocal space: RPA, TDDFT, local field effects.

Moderators: Davide Sangalli, andrea.ferretti, myrta gruning, andrea marini, Daniele Varsano, Conor Hogan

Post Reply
andyamygto
Posts: 2
Joined: Wed Jul 19, 2023 4:16 pm

Decompose of dielectric function in metallic system

Post by andyamygto » Thu Jul 20, 2023 6:21 am

Hi all

I am trying to calculate the q-dependent dielectric function of metallic system using linear response method.
I know that we can use % BndsRnXd to choose the band in the Polarization function.
However, in the metallic system it seems like the code force to sum all the band crossing the Fermi level (namely metallic band)

Is there a way to do decompose the contribution of different metallic band to the dielectric function like the PRB 104, 125101 Fig.7?

Thanks in advance.
Chin En Hsu
PhD student
Department of Physics
Tamkang University
Tamsui, New Taipei 251301,
Taiwan

User avatar
Daniele Varsano
Posts: 3816
Joined: Tue Mar 17, 2009 2:23 pm
Contact:

Re: Decompose of dielectric function in metallic system

Post by Daniele Varsano » Thu Jul 20, 2023 5:20 pm

Dear Chin,
unfortunately, there is not an easy way to make this decomposition from input.
You can do it by selecting your band of interest inside the code. At the moment, I do not have better ideas.

Best,
Daniele
Dr. Daniele Varsano
S3-CNR Institute of Nanoscience and MaX Center, Italy
MaX - Materials design at the Exascale
http://www.nano.cnr.it
http://www.max-centre.eu/

andyamygto
Posts: 2
Joined: Wed Jul 19, 2023 4:16 pm

Re: Decompose of dielectric function in metallic system

Post by andyamygto » Fri Jul 21, 2023 1:51 am

Dear Daniele

Thanks for the information.

Actually I have tried to comment the line 59~64 in the src/pol_function/X_pre_setup.F

if (X%ib(1)>minval(Xen%nbf)+1) X%ib(1)=minval(Xen%nbf)+1
if (X%ib(2)<maxval(Xen%nbm) ) X%ib(2)=maxval(Xen%nbm)

if (X%ib(1)<0.or.X%ib(1)>maxval(Xen%nbm).or.X%ib(2)<X%ib(1)) X%ib(1)=1
if (X%ib(2)>Xen%nb.or.X%ib(2)<minval((/Xen%nbf(:n_sp_pol)/))) X%ib(2)=Xen%nb

It seems like the code will crush if I comment these lines the code will crush.
Can you hint that which part in the code is calculation the Screening matrix elements ?

Best,
Andy Hsu
Chin En Hsu
PhD student
Department of Physics
Tamkang University
Tamsui, New Taipei 251301,
Taiwan

Post Reply