Page 1 of 1

Self-consistent GW on eigenvalues only

Posted: Wed Jun 14, 2023 3:38 pm
by engelund
Hello,
I am trying to follow the tutorial https://www.yambo-code.eu/wiki/index.ph ... alues_only, using Yambo 5.1.2, with my own test molecule (methane) and having some trouble making it work.

The problem is that it seems the calculation is always starting from scratch, even if I plug in the ".QP" files from the previous calculation.

The output (the '.qp'-files) contain much the same result, except perhaps for finite precision.
The second run-overview file indicates that the dipoles were not read correctly.

Two questions:
Am I correct in my assumption that the "E0" values in the second calculation should be the "E" values in the second calculation?
How do I fix this?

Re: Self-consistent GW on eigenvalues only

Posted: Wed Jun 14, 2023 3:42 pm
by Daniele Varsano
Dear engelund,

it seems that the ndb.QP databases are not correctly read.
can you please attach your inputs and report files of your calculations?

Best,
Daniele

Re: Self-consistent GW on eigenvalues only

Posted: Thu Jun 15, 2023 12:59 pm
by engelund
Dear Daniele,

Here are the attached files.

Re: Self-consistent GW on eigenvalues only

Posted: Thu Jun 15, 2023 1:00 pm
by engelund
Sorry, missed one

Re: Self-consistent GW on eigenvalues only

Posted: Thu Jun 15, 2023 3:24 pm
by Daniele Varsano
Dear Mads,

what's happening here is that the correlation part of the self-energy (S0) in your calculation is practically zero:

Code: Select all

QP [eV] @ K [1] (iku):  0.000000  0.000000  0.000000
   B=1 Eo=-12.45 E=-20.75 E-Eo= -8.30 Re(Z)=1.00 Im(Z)=-0.466832E-6 nlXC= -22.8769 lXC= -14.5800 So= 0.193253E-4
so, essentially you are getting a Hartree-Fock result and self-consistency on eigenvalues in this case has no effect.

The parameters governing the correlation part are extrmely low (few bands) and scalar screening:

Code: Select all

% BndsRnXp
  1 | 16 |                           # [Xp] Polarization function bands
%
NGsBlkXp= 1                RL    # [Xp] Response block size
but even so, it is very strange that you have the same number (0.193253E-3) for each band, this is tricky and I do not understand what's going on here.
Possibly a miscompilation?
Finally, not related to your problem, consider to use a cutoff coulomb potential (sphere) to isolate your molecule as in supercell approach the GW convergence wrt the vacuum size is very slow. Variables for the cutoff are activated using yambo -t
and you want to set:

Code: Select all

CUTGeo='sphere xyz'
CUTRadius= 24
I suggest you to add bands in BndsRnXp e.g. 100,200,300 (you will need to recompute empty states in the order of hundreds) and set NGsBlkXp=5,10,15.. Ry
until convergence.

Try to converge a G0W0 calculation first before passing to eigenvalue self-consistency, as first test I would check if adding more bands and enlarging the matrix size you get meaningful number for the correlation self-energy.

Or better, before going into this, I would try to reproduce one result of the tutorial to check if the code is working properly, you can find a GW tutorial here:
https://www.yambo-code.eu/wiki/index.ph ... rial:_h-BN


Best,
Daniele

Re: Self-consistent GW on eigenvalues only

Posted: Tue Jun 20, 2023 4:17 pm
by engelund
Hi Daniele,
After messing around with some parameters, I think my problem was simply a case of using poor convergence parameters. When the parameters are poor enough and the energy level are separated maybe you hit a weird edge case.

I did some convergence tests:
EXXRlvcs = 20 Ry and NGsBlkXp = 2 Ry seems good.
The number of bands seems fine at 16 (there are only 8 valence electrons).
You are right that the vacuum padding needs to be pretty high.

A question about that - Would the sphere cutoff save computational time at a given supercell size or would it allow greater accuracy at the same size?

Re: Self-consistent GW on eigenvalues only

Posted: Tue Jun 20, 2023 5:04 pm
by engelund
Additional Question:
I noticed the parameters:
" GWoIter=0 # [GW] GWo self-consistent (evGWo) iterations on eigenvalues
GWIter=0 # [GW] GW self-consistent (evGW) iterations on eigenvalues
SCEtresh= 0.010000 eV "
So it seems the stuff from the scf on eigenvalues tutorial has been incorporated into the main code.

Question is how do you actually use these? Does "GWIter=5, SCEtresh=0.1 eV" mean that the code will maximally run 5 iterations, but stop sooner if all eigenvalues converge?