GW DOS from low scaling algorithm

Question on input files/tags, interpreting output, etc.

Please check whether the answer to your question is given in the VASP online manual or has been discussed in this forum previously!

Moderators: Global Moderator, Moderator

Post Reply
Message
Author
kdoblhoff
Newbie
Newbie
Posts: 28
Joined: Thu Feb 04, 2021 12:10 pm

GW DOS from low scaling algorithm

#1 Post by kdoblhoff » Fri Aug 05, 2022 2:26 pm

Dear Vasp community,
I have tried to compute a DOS using the low scaling GW algorithm but did not succeed: The DOS ends up looking exactly like the DFT DOS, while the traditional algorithm partially shifts the states (see plot below).
DOSplot.png
Is there a good reason for this behavior?

I did my tests using the example for SrVO from here: https://www.vasp.at/wiki/index.php/Band ... rVO3_in_GW
I edited the GW input file from

Code: Select all

SYSTEM = SrVO3                         # system name
ISMEAR = -1                             # Gaussian smearing
ALGO = GW0                            # GW with iteration in G, W kept on DFT level
NELM = 1                               # one electronic step suffices, since WAVECAR from previous step is present
NBANDS = 96                            # need for a lot of bands in GW
PRECFOCK = Fast                        # fast mode for FFTs
ENCUTGW = 100                          # small energy cutoff for response function suffices for this tutorial
NOMEGA = 200                           # large number of real frequency points for Hilbert transforms of W and self-energy
ENCUT = 300
to

Code: Select all

SYSTEM = SrVO3                         # system name
ISMEAR = -1                             # Gaussian smearing
ALGO = GW0R                            # GW with iteration in G, W kept on DFT level
NELM = 1                               # one electronic step suffices, since WAVECAR from previous step is present
NBANDS = 96                            # need for a lot of bands in GW
PRECFOCK = Fast                        # fast mode for FFTs
ENCUTGW = 100                          # small energy cutoff for response function suffices for this tutorial
NOMEGA = 24                           # large number of real frequency points for Hilbert transforms of W and self-energy
ENCUT = 300
MAXMEM = 1675
basically only changing ALGO to GW0R and NOMEGA to 24.

I attach my input and output files as well as my run-script (which takes care of copying WAVECARs back and forth).
You do not have the required permissions to view the files attached to this post.

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

Re: GW DOS from low scaling algorithm

#2 Post by alexey.tal » Mon Aug 08, 2022 2:33 pm

Hi,

Thank you for reporting this. We are aware of this issue and it should be solved in the next release.

kdoblhoff
Newbie
Newbie
Posts: 28
Joined: Thu Feb 04, 2021 12:10 pm

Re: GW DOS from low scaling algorithm

#3 Post by kdoblhoff » Thu Dec 01, 2022 4:25 pm

I wanted to ask whether the issue is resolved yet (I ran 6.3.0 and I see that 6.3.1 is out, but it is possible that 6.3.1 was out before you answered).

merzuk.kaltak
Administrator
Administrator
Posts: 277
Joined: Mon Sep 24, 2018 9:39 am

Re: GW DOS from low scaling algorithm

#4 Post by merzuk.kaltak » Fri Dec 02, 2022 9:03 am

Dear Katharina,

this issue is resolved only in the next release, i.e. version 6.4.0; all older version suffer from it unfortunately.

You may patch the source file chi_super.F version 6.3.2 with the following changes to make it work for ALGO=G0W0R:

In line 1726 replace

Code: Select all

CALL ROTATE_ORBITALS( W, WDES, CHAM_MAT, GDES_MAT, CORR_MAT, GU_MAT, GO_MAT) 
by

Code: Select all

! maybe original orbitals should be preserved 
IF( NATURALO /= 4 ) THEN
   CALL ROTATE_ORBITALS( W, WDES, CHAM_MAT, GDES_MAT, CORR_MAT, GU_MAT, GO_MAT)
ENDIF 
Insert following block in line 1782:

Code: Select all

! replace original energies with QP-energies
IF( NATURALO == 3 .OR. NATURALO==4 ) THEN
  DO NQ = 1 , WDES%NKPTS   
      NQ_IRZ=KPOINTS_FULL_ORIG%NEQUIV(KPOINT_IN_FULL_GRID(KPOINTS_FULL%VKPT(:,NQ),KPOINTS_FULL_ORIG)) 
          W%CELTOT(1:SIZE(QP_LINEAR,2),NQ,1:SIZE(QP_LINEAR,4)) = QP_LINEAR(1,1:SIZE(QP_LINEAR,2),NQ_IRZ,1:SIZE(QP_LINEAR,4))
  ENDDO 
ENDIF     
Note, you will have to add NATURALO=4 to your GW-INCAR to write the QP-energies to WAVECAR.

kdoblhoff
Newbie
Newbie
Posts: 28
Joined: Thu Feb 04, 2021 12:10 pm

Re: GW DOS from low scaling algorithm

#5 Post by kdoblhoff » Fri Dec 02, 2022 9:13 am

Cool! Thank you, I will try that!
Best regards,
Katharina

yao_zhao
Newbie
Newbie
Posts: 2
Joined: Wed Nov 06, 2019 4:32 pm

Re: GW DOS from low scaling algorithm

#6 Post by yao_zhao » Sun Apr 30, 2023 5:18 pm

Hello Admins,

Is the issue resolved in the version 6.4.1? It seems like WAVECARs generated from GW0R (or EVGW0R/G0W0R) still do not contain QP energies, even with NATURALO = 4.

Here is the minimal INCAR I have used
LASPH = .TRUE.
ALGO = GW0R
NOMEGA = 16
NATURALO = 4
LOPTICS = .TRUE.
EDIFF = 1e-8
LORBIT = 11

merzuk.kaltak
Administrator
Administrator
Posts: 277
Joined: Mon Sep 24, 2018 9:39 am

Re: GW DOS from low scaling algorithm

#7 Post by merzuk.kaltak » Tue May 02, 2023 7:31 am

Dear Yao,

The issue is resolved in 6.4.1. Have you tried

Code: Select all

ALGO=EVGW0R

Post Reply