RPA dielectric function

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
sponce
Posts: 12
Joined: Tue Oct 04, 2011 9:52 am

RPA dielectric function

Post by sponce » Sat Sep 16, 2017 9:45 pm

Dear Developers and Yambo user,

Is there a way to print the RPA dielectric function in Yambo?
In particular I'm interested in its q-dependence:
\epsilon_{G=0,G'=0}(q,\omega=0)

Is there an input variable that will write this information somewhere? If not, could you point me to the subroutine where I could add a print for this.

Thank you very much,
Best wishes,
Samuel
Samuel Poncé
Department of Materials, University of Oxford

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

Re: RPA dielectric function

Post by Daniele Varsano » Sun Sep 17, 2017 8:49 am

Dear Samuel,
this can be done by using the yambo-py utility. Here there is an example on how to extract the data you are looking for:
http://www.yambo-code.org/wiki/index.ph ... ption_(BN)
in particular:

Code: Select all

>yambopy plotem1s PATH
it is the function that do that.

Note that the ndb.em1s files do contains the response function vX_GG' and not the eps-1_GG' so a delta_GG' has to be added (I think that the python script do it! but may be it is worth to check).

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/

sponce
Posts: 12
Joined: Tue Oct 04, 2011 9:52 am

Re: RPA dielectric function

Post by sponce » Mon Sep 18, 2017 2:08 pm

Dear Daniele,

Thank you very much for the quick reply.
I did not know about the python yambo ! Very nice. Super easy to install.

I'm doing GW calculations (not BSE). Yambo seems to not produce ndb.em1s files in that case.

I first though it was because I was doing dynamical screening ( em1d variable ).
Is there a way to extract it? Technically its just the \omega=0 part.

In any case, I have redone the calculation with em1s instead.
However, it seems Yambo is still not producing the file. I'm using Yambo v. 4.1.4

Am I missing any input variable to get that file?

Below is my input file (silicon):

Code: Select all

gw0                          # [R GW] GoWo Quasiparticle energy levels
ppa                          # [R Xp] Plasmon Pole Approximation
em1s                         # [R Xd] Dynamical Inverse Dielectric Matrix
HF_and_locXC                 # [R XX] Hartree-Fock Self-energy and Vxc
X_all_q_CPU= "1.1.72"        # [PARALLEL] CPUs for each role
X_all_q_ROLEs= "c.v.k"       # [PARALLEL] CPUs roles (q,k,c,v)
X_all_q_nCPU_invert=  72     # [PARALLEL] CPUs for matrix inversion
SE_CPU= "1.72"               # [PARALLEL] CPUs for each role
SE_ROLEs= "b.qp"             # [PARALLEL] CPUs roles (q,qp,b)
EXXRLvcs= 15           Ry    # [XX] Exchange RL components
Chimod= "Hartree"            # [X] IP/Hartree/ALDA/LRC/BSfxc
% QpntsRXp
 1 | 72 |                     # [Xp] Transferred momenta
%
% BndsRnXp
  1 | 120 |                   # [Xp] Polarization function bands
%
NGsBlkXp= 2            Ry    # [Xp] Response block size
% LongDrXp
 1.000000 | 0.000000 | 0.000000 |        # [Xp] [cc] Electric Field
%
PPAPntXp= 16.5     eV    # [Xp] PPA imaginary energy
% GbndRnge
  1 | 120 |                   # [GW] G[W] bands range
%
GDamping= 0.100000     eV    # [GW] G[W] damping
dScStep= 0.100000      eV    # [GW] Energy step to evalute Z factors
DysSolver= "n"               # [GW] Dyson Equation solver (`n`,`s`,`g`)
%QPkrange                    # [GW] QP generalized Kpoint/Band indices
  1|  72|  1| 20|
%
%QPerange                    # [GW] QP generalized Kpoint/Energy indices
  1|  72| 0.0|-1.0|
%
Samuel Poncé
Department of Materials, University of Oxford

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

Re: RPA dielectric function

Post by Daniele Varsano » Mon Sep 18, 2017 2:16 pm

Dear Samuel,
I did not know about the python yambo ! Very nice. Super easy to install.
This is a nice work done by Henrique Miranda and Alejandro Molina-Sanchez.
I'm doing GW calculations (not BSE). Yambo seems to not produce ndb.em1s files in that case.
Right as in GW you need dynamical screening.
s there a way to extract it? Technically its just the \omega=0 part.
It should be easy, you can try to modify the script in order to read the ndb.pp files and take the right component, I cannot help too much, can read an play with python but I'm not really proficient.
Am I missing any input variable to get that file?
As you have gw runlevel yambo still calculate the dynamical screening (pp) in this case.
Just drop the gw0,ppa and HF_ keyword at the beginning of the input file and leave the em1s runlevel.

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/

sponce
Posts: 12
Joined: Tue Oct 04, 2011 9:52 am

Re: RPA dielectric function

Post by sponce » Mon Sep 18, 2017 7:18 pm

Dear Daniele,

Thank you for the additional info. By removing the keyword I was indeed able to get the ndb.em1s file.

Now, I have a bugreport for yambopy and a question:

1) bugreport
The python script yambopy does not seem to work with python 2.7

However, I was able to make it work by adding ".variables" to all calls to netcdf database in the module "yambopy/dbs/em1sdb.py"
This is actually the way I learned how to call netcdf database. Does it work without it in python 3 or something?

For example replacing:

Code: Select all

self.alat = database['LATTICE_PARAMETER'][:]
by

Code: Select all

self.alat = database.variables['LATTICE_PARAMETER'][:]
make it works.

2) question
Doing those modifications gives me the em1s.dat file.
The values seems very reasonable and good !

Could you just tell me in what units are the q given ? The largest norm of q that is reported in the file is 0.10894892 in my case.
In my case I used the experimental lattice parameter of silicon (10.262 Bohr).
If I want to get the q in unit of 2pi/a, should I just multiply by 2pi? If so, then it seems the maximum value is 0.68 whereas it should actually be closer to 0.866. Does the code folds all the q into the 1st BZ and then report their q?

Thank you,
Best,
Samuel
Samuel Poncé
Department of Materials, University of Oxford

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

Re: RPA dielectric function

Post by Daniele Varsano » Mon Sep 18, 2017 9:03 pm

Dear Samuel,
for the first question you should address your question to the yambo-py subforum, Alejandro or Henrique can answer to your question.
Could you just tell me in what units are the q given ? The largest norm of q that is reported in the file is 0.10894892 in my case.
In my case I used the experimental lattice parameter of silicon (10.262 Bohr).
If I want to get the q in unit of 2pi/a, should I just multiply by 2pi? If so, then it seems the maximum value is 0.68 whereas it should actually be closer to 0.866. Does the code folds all the q into the 1st BZ and then report their q?
The q are in the Irreducible BZ, quickly looking into em1sdb.py, it seems that they are in unit of alat.
You can check anyway in the report of yambo the q vectors in different units. If there is something not clear I suggest you again to write to the yambo-py subforum, as the developers will answer you.

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/

sponce
Posts: 12
Joined: Tue Oct 04, 2011 9:52 am

Re: RPA dielectric function

Post by sponce » Tue Sep 19, 2017 2:05 pm

Dear Daniele,

Thank you very much for your help.

I posted on the yambopy subforum as your recommended.

Best,
Samuel
Samuel Poncé
Department of Materials, University of Oxford

pyadav
Posts: 86
Joined: Thu Nov 26, 2020 2:56 pm
Contact:

Re: RPA dielectric function

Post by pyadav » Mon May 31, 2021 7:13 am

Dear team yambo,

can we calculate q-resolved dielectric function within RPA approximation in YAMBO for the calculation of plasmon dispersion? If yes, then how to set q-value?

Thanks,
Pushpendra
Pushpendra Yadav
Ph.D. Research Scholar
Quantum Transport and Theory Group
Department of Physics
Indian Instittute of Technology Kanpur, India.

https://sites.google.com/site/amitkag1/

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

Re: RPA dielectric function

Post by Daniele Varsano » Mon May 31, 2021 8:10 am

Dear Pushpendra,
yes you can do that by selecting the q index you want to calculate the response in the QpntsRXd namelist e.g.:

Code: Select all

% QpntsRXd
  1 | 14 |                           # [Xd] Transferred momenta
%
The q vectors corresponding to the index are shown in the report file:

Code: Select all

...
K/Q-points units:
rlu = crystal or reduced units; cc = cartesian coordinates; iku = interal k-units
...
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/

Post Reply