Page 1 of 1
RPA dielectric function
Posted: Sat Sep 16, 2017 9:45 pm
by sponce
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
Re: RPA dielectric function
Posted: Sun Sep 17, 2017 8:49 am
by Daniele Varsano
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:
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
Re: RPA dielectric function
Posted: Mon Sep 18, 2017 2:08 pm
by sponce
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|
%
Re: RPA dielectric function
Posted: Mon Sep 18, 2017 2:16 pm
by Daniele Varsano
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
Re: RPA dielectric function
Posted: Mon Sep 18, 2017 7:18 pm
by sponce
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
Re: RPA dielectric function
Posted: Mon Sep 18, 2017 9:03 pm
by Daniele Varsano
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
Re: RPA dielectric function
Posted: Tue Sep 19, 2017 2:05 pm
by sponce
Dear Daniele,
Thank you very much for your help.
I posted on the yambopy subforum as your recommended.
Best,
Samuel
Re: RPA dielectric function
Posted: Mon May 31, 2021 7:13 am
by pyadav
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
Re: RPA dielectric function
Posted: Mon May 31, 2021 8:10 am
by Daniele Varsano
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