Hi,
I found that ALGOs for GW calculations with R termination (the low-scaling method) have some incorrect or missing outputs.
For ALGO=GW0R, the EIGENVAL file contains the DFT values instead of the GW ones.
For ALGO=QPGW0R, the EIGENVAL files are inconsistent with the report in OUTCAR.
For all the above low-scaling calculations, the epsilon_diag information is missing in the vasprun.xml and no Wxxxx.tmp files are printed thus no further BSE calculations can be performed.
Btw, I used NELM=1 for all my tests.
Best,
Xiaoming
low-scaling GW calculations for vasp6
Moderators: Global Moderator, Moderator
-
- Jr. Member
- Posts: 58
- Joined: Tue Nov 12, 2019 4:34 am
-
- Administrator
- Posts: 282
- Joined: Mon Sep 24, 2018 9:39 am
Re: low-scaling GW calculations for vasp6
Addressing a bug usually requires to upload a full error report according to our forum posting guidelines.
Nevertheless, we have been able to reproduce your problem regarding the EIGENVAL file for low-scaling GW calculations.
This is going to be fixed in the next release.
Meanwhile, you can fix this issue by yourself by introducing following code in chi_GG.F and chi_super.F before the line
that is, before the lines 1497 and 1522 in src/chi_GG.F and src/chi_super.F of version 6.1.0, respectively.
The VASP code needs to be recompiled after these changes.
Concerning diagonal matrix elements of the dielectric function and Wxxxx.tmp files:
The diagonal matrix elements of the dielectric function for low-scaling GW algorithms are not printed to file,
because they are available only on the imaginary frequency axis and are not useful in practice.
The same holds true for the screened potential W and the Wxxxx.tmp files, which is available only on a specific imaginary frequency grid.
For zero-temperature calculations (LFINITE_TEMPERATURE=.FALSE.) this grid does not contain the omega=0 point.
In contrast, for BSE calculations one usually uses the screened potential at omega=0, that for the quartic-scaling GW algorithm, is written to the Wxxxx.tmp files.
In principle, it is possible to transform W to an isometric imaginary time grid and integrate the result to obtain W at omega=0 with the low-scaling approach (not implemented).
However, setting up the BSE matrix and diagonalizing it (last step in a BSE calculation) still scales with the forth power of the system size in the current release of VASP and is, hence, the effective bottleneck.
We, therefore, propose to use the quartic scaling GW algorithm instead to determine W(omega=0) for BSE calculations,
You will run sooner into memory (or computing time) problems when calculating W(0) (with the quartic-scaling GW code) before the BSE step anyway.
Currently (for version 6.1) you may print the smallest imaginary frequency point of W for the low-scaling GW algorithms to Wxxxx.tmp by setting NOMEGA_DUMP=1.
Nevertheless, we have been able to reproduce your problem regarding the EIGENVAL file for low-scaling GW calculations.
This is going to be fixed in the next release.
Meanwhile, you can fix this issue by yourself by introducing following code
Code: Select all
!
! overwrite eigenvalues by QP energies
! to update EIGENVAL file
DO NQ = 1 , WDES%NKPTS
NQ_IRZ=KPOINTS_FULL_ORIG%NEQUIV(KPOINT_IN_FULL_GRID(KPOINTS_FULL%VKPT(:,NQ),KPOINTS_FULL_ORIG))
W%CELTOT(:,NQ,:) = QP_LINEAR(1,:,NQ_IRZ,:)
ENDDO
Code: Select all
CALL DEALLOCW_NOPLANEWAVE(WMEAN)
The VASP code needs to be recompiled after these changes.
Concerning diagonal matrix elements of the dielectric function and Wxxxx.tmp files:
The diagonal matrix elements of the dielectric function for low-scaling GW algorithms are not printed to file,
because they are available only on the imaginary frequency axis and are not useful in practice.
The same holds true for the screened potential W and the Wxxxx.tmp files, which is available only on a specific imaginary frequency grid.
For zero-temperature calculations (LFINITE_TEMPERATURE=.FALSE.) this grid does not contain the omega=0 point.
In contrast, for BSE calculations one usually uses the screened potential at omega=0, that for the quartic-scaling GW algorithm, is written to the Wxxxx.tmp files.
In principle, it is possible to transform W to an isometric imaginary time grid and integrate the result to obtain W at omega=0 with the low-scaling approach (not implemented).
However, setting up the BSE matrix and diagonalizing it (last step in a BSE calculation) still scales with the forth power of the system size in the current release of VASP and is, hence, the effective bottleneck.
We, therefore, propose to use the quartic scaling GW algorithm instead to determine W(omega=0) for BSE calculations,
You will run sooner into memory (or computing time) problems when calculating W(0) (with the quartic-scaling GW code) before the BSE step anyway.
Currently (for version 6.1) you may print the smallest imaginary frequency point of W for the low-scaling GW algorithms to Wxxxx.tmp by setting NOMEGA_DUMP=1.
-
- Jr. Member
- Posts: 58
- Joined: Tue Nov 12, 2019 4:34 am
Re: low-scaling GW calculations for vasp6
Hi,
Thanks for your careful explanations. The zip files are attached. There however still seems to be some issues. The band order in EIGENVAL file from EVGW0 calculation is wrong, which can be clearly inspected from EIGENVAL_EVGW0 . A final diagonalization is perhaps missing for EVGW0 calculation. Another issue is that the band order of the QP shift reported in OUTCAR for GW0R calculation may be not the one as reported in QPGW0R and EVGW0 calculations. It seems that at this step a final diagonalization has already been performed. Whereas for EVGW0 and QPGW0R calculations, the QP shifts reported in OUTCAR are consistent with each other and both are at the step before the final diagonalization. This may be not a big problem. But it is usually good to know the direct comparison with DFT bands.
Best,
Xiaoming
Thanks for your careful explanations. The zip files are attached. There however still seems to be some issues. The band order in EIGENVAL file from EVGW0 calculation is wrong, which can be clearly inspected from EIGENVAL_EVGW0 . A final diagonalization is perhaps missing for EVGW0 calculation. Another issue is that the band order of the QP shift reported in OUTCAR for GW0R calculation may be not the one as reported in QPGW0R and EVGW0 calculations. It seems that at this step a final diagonalization has already been performed. Whereas for EVGW0 and QPGW0R calculations, the QP shifts reported in OUTCAR are consistent with each other and both are at the step before the final diagonalization. This may be not a big problem. But it is usually good to know the direct comparison with DFT bands.
Best,
Xiaoming
You do not have the required permissions to view the files attached to this post.
-
- Administrator
- Posts: 282
- Joined: Mon Sep 24, 2018 9:39 am
Re: low-scaling GW calculations for vasp6
Please note the EIGENVAL file for low-scaling GW in version 6.1.0 has no meaning.
As described by the response above, this is fixed in the next release.
As described by the response above, this is fixed in the next release.