G0W0 on top of PBE+SOC+U

Questions will be moved to this forum when we consider them out of scope for support from our side: for instance when we do not have the necessary expertise to come up with an answer.
Another user still might, though!

Moderators: Global Moderator, Moderator

Post Reply
Message
Author
hong_tang1
Newbie
Newbie
Posts: 26
Joined: Mon Nov 18, 2019 2:24 pm

G0W0 on top of PBE+SOC+U

#1 Post by hong_tang1 » Tue Jan 16, 2024 10:23 pm

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
You do not have the required permissions to view the files attached to this post.

alexey.tal
Global Moderator
Global Moderator
Posts: 229
Joined: Mon Sep 13, 2021 12:45 pm

Re: G0W0 on top of PBE+SOC+U

#2 Post by alexey.tal » Thu Jan 18, 2024 9:41 am

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.

hong_tang1
Newbie
Newbie
Posts: 26
Joined: Mon Nov 18, 2019 2:24 pm

Re: G0W0 on top of PBE+SOC+U

#3 Post by hong_tang1 » Thu Jan 18, 2024 10:46 pm

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
You do not have the required permissions to view the files attached to this post.

alexey.tal
Global Moderator
Global Moderator
Posts: 229
Joined: Mon Sep 13, 2021 12:45 pm

Re: G0W0 on top of PBE+SOC+U

#4 Post by alexey.tal » Fri Jan 19, 2024 3:59 pm

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?

hong_tang1
Newbie
Newbie
Posts: 26
Joined: Mon Nov 18, 2019 2:24 pm

Re: G0W0 on top of PBE+SOC+U

#5 Post by hong_tang1 » Mon Feb 05, 2024 6:04 pm

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
You do not have the required permissions to view the files attached to this post.

alexey.tal
Global Moderator
Global Moderator
Posts: 229
Joined: Mon Sep 13, 2021 12:45 pm

Re: G0W0 on top of PBE+SOC+U

#6 Post by alexey.tal » Fri Feb 23, 2024 3:28 pm

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..

hong_tang1
Newbie
Newbie
Posts: 26
Joined: Mon Nov 18, 2019 2:24 pm

Re: G0W0 on top of PBE+SOC+U

#7 Post by hong_tang1 » Thu Feb 29, 2024 12:16 am

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

alexey.tal
Global Moderator
Global Moderator
Posts: 229
Joined: Mon Sep 13, 2021 12:45 pm

Re: G0W0 on top of PBE+SOC+U

#8 Post by alexey.tal » Thu Mar 07, 2024 10:29 am

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)

Post Reply