Page 1 of 1

G0W0 on top of PBE+SOC+U

Posted: Tue Jan 16, 2024 10:23 pm
by hong_tang1
Dear VASP team,

I tried to follow the page https://www.vasp.at/wiki/index.php/Band ... WANNIER90)
to do G0W0 band structure. However, I want to do it on top of PBE+SOC+U. My system is a semiconductor.

First, I did PBE+SOC+U parts and got WAVECAR and WAVEDER files for a large number of bands.
Then, I tried to do G0W0, however, I got errors:
" Error: Problem opening input file .win
Error: examine the output/error file for details
"
Please see attached INCAR, OUTCAR, wannier90.win and results_1.ix files. results_1.ix file is the message showing when run the job,

My questiones:
1. in the OUTCAR file, I can not see something like "
QP shifts <psi_nk| G(iteration)W_0 |psi_nk>: iteration 1
for sc-GW calculations column KS-energies equals QP-energies in previous step
and V_xc(KS)= KS-energies - (<T + V_ion + V_H > + <T+V_H+V_ion>^1 + <V_x>^1)

k-point 1 : 0.0000 0.0000 0.0000
band No. KS-energies QP-energies sigma(KS) V_xc(KS) V^pw_x(r,r') Z
"
It is strange, since I put " ALGO = GW0 " in my INCAR file. It seems to me that vasp did not do the G0W0 calculation at all. Could you please let me know why this is?

2. is anything wrong in my wannier90.win file?


Thank you very much!


Please help!


Best,

Hong Tang

Re: G0W0 on top of PBE+SOC+U

Posted: Thu Jan 18, 2024 9:41 am
by alexey.tal
Dear Hong Tang,

The output in results_1.ix indicates that VASP performs an electronic optimization calculation, i.e., not a GW calculation. Are you sure that this is the INCAR file that was read in this calculation?

Were you able to reproduce the results from the wiki article? I would recommend that you follow the steps from the wiki and make sure that you can reproduce the results and then proceed to a significantly more complicated case that you have.
Also, I noticed that you are using VASP.5.4.4. Do you have accesses to VASP 6? I would suggest that you use a newer version of the code as we only provided limited support for VASP 5.

Re: G0W0 on top of PBE+SOC+U

Posted: Thu Jan 18, 2024 10:46 pm
by hong_tang1
Dear Aalexey,

Thanks so much for helping!

I just moved the lines
" ALGO=GW0
NELM = 1 "
to the very top of the file INCAR, then it seems the vasp5.4.5 is going to do G0W0. However, it ran in errors:
"
-----------------------------------------------------------------------------
| |
| EEEEEEE RRRRRR RRRRRR OOOOOOO RRRRRR ### ### ### |
| E R R R R O O R R ### ### ### |
| E R R R R O O R R ### ### ### |
| EEEEE RRRRRR RRRRRR O O RRRRRR # # # |
| E R R R R O O R R |
| E R R R R O O R R ### ### ### |
| EEEEEEE R R R R OOOOOOO R R ### ### ### |
| |
| LDA+U in combination with GW calculations causes a double |
| counting of unidentifiable many-body perturbation terms. |
| |
-----------------------------------------------------------------------------

"

Please see attached files OUTCAR and results_1.ix.

I compiled the vasp.5.4.4 + wannier90v2.1.0 by myself. When I compile them, I first compile wannier90v2.1.0. then I compile vasp.5.4.4 with " -DVASP2WANNIER90v2 " and also connected the " wannier90-2.1.0/libwannier.a ". I also used the patch " patch -p0 < patch.5.4.4.16052018
link: https://www.vasp.at/info/post/bugfix-pa ... 4-18apr17/ " before make vasp.5.4.4.

I tested that for without SOC, the code I compiled works.

We don't have money to buy vaps 6. Please help me how to compile vasp.5.4.4 + wannier90v2.1.0 in order to be able to do GW on top of DFT+SOC+U.


Thans very much!


Best,
Hong

Re: G0W0 on top of PBE+SOC+U

Posted: Fri Jan 19, 2024 3:59 pm
by alexey.tal
VASP does not properly treat the double counting terms in this combination, thus the results can be affected by this. I suggest that you do a GW calculation on top of a hybrid-functional calculation instead, where such issues are not present. See ref.
M. Hellgren, et al., Phys. Rev. B 103, 075101 (2021)


The provided OUTCAR file is truncated at the line:

Code: Select all

response function shared by NCSHMEM nodes    1
so I can't tell if your GW calculation was completed. Are you able to perform this calculation without Wannier90? Can you disable the LWANNIER90 tag and see if your GW calculation yields correct results?

Re: G0W0 on top of PBE+SOC+U

Posted: Mon Feb 05, 2024 6:04 pm
by hong_tang1
Dear Aalexey,

Thank you very much for your messages.

1. I tried to do G0W0 on top of PBE+SOC+U (by turning off Wannier90 ) in vasp.5.4.4. It seems vasp calculate the GW step, even though showing the error "
LDA+U in combination with GW calculations causes a double |
| counting of unidentifiable many-body perturbation terms. "
It seems that vasp did all the G0W0 calculation and get the quasiparticle energies. For this calculation, I chose a U value, so that the system is semiconducting. So both WAVECAR and WAVEDER are there.

2. However, I try to choose a U so that the system is metal, then I turn off " LOPTICS = .TRUE. " in the INCAR, so WAVEDER will not be there. This time, I do G0W0 on top of PBE+SOC+U again ( by turning off Wannier90 in vasp.5.4.4 again ), but got error " error in XI_LOCAL_FIELD_SYM: ZGETRF returns 1 " .
Please see attached file for the error information and OUTCAR.
Please let me know if my input for a metal system for GW is correct or not. Why I get this kind of error?

Thank you very much!

Best,
Hong

Re: G0W0 on top of PBE+SOC+U

Posted: Fri Feb 23, 2024 3:28 pm
by alexey.tal
2. I see that you set LRPA=.FALSE. in your INCAR. This tag tells the code to perform the calculation of the dielectric function beyond the random-phase approximation, i.e., including the excitonic effects in the polarizability. I don't think that it was your intention, so I would suggest setting LRPA=.TRUE..

Re: G0W0 on top of PBE+SOC+U

Posted: Thu Feb 29, 2024 12:16 am
by hong_tang1
Dear Alexey,

Great! I tried " LRPA=.TRUE. ", then it works!
However, my question is that why for semiconductor, LRPA=.False. is OK, but for metal, LRPA=.False. is not good?

I see in both semiconducting and metal cases, LFXC = .FALSE.
Is LFXC only working for BSE or TDDFT calculations?

Best,
Hong

Re: G0W0 on top of PBE+SOC+U

Posted: Thu Mar 07, 2024 10:29 am
by alexey.tal
However, my question is that why for semiconductor, LRPA=.False. is OK, but for metal, LRPA=.False. is not good?
When you set LRPA=.FALSE. in the GW calculations, VASP includes the vertex corrections in the polarizability by solving the Bethe-Salpeter equation and the current implementation of BSE doesn't work for metals.
This feature is still under construction, and we recommend collaborating with the Vienna group if you need that feature. The standard GW calculations use the RPA approximation for the polarizability, so I would recommend that you don't set the LRPA tag if you are not absolutely sure that you need the vertex corrections. You can find more detail on vertex corrections in this paper: M. Shishkin, M. Marsman, G. Kresse, Phys. Rev. Lett. 99, 246403 (2007)

I see in both semiconducting and metal cases, LFXC = .FALSE.
Is LFXC only working for BSE or TDDFT calculations?
The LFXC tag is used to include the local exchange-correlation kernel, so it should be enabled in TDDFT. In BSE the exchange-correlation kernel is not used, hence the exchange-correlation kernel is not included regardless of LFXC. I can recommend this review which discusses the difference between these two methods in great detail: G. Onida, L. Reining, A. Rubio, Rev. Mod. Phys. 74, 601-659 (2002)