3
0
mirror of https://github.com/triqs/dft_tools synced 2024-06-29 00:15:00 +02:00

Update guide on Vasp src changes for converter

The information on changes for the Vasp converter for CSC calculations in Vasp was not complete (#164 )
This commit is contained in:
Alexander Hampel 2021-02-08 08:04:15 -05:00 committed by GitHub
parent 92e24a9ada
commit 5ac27b8f2e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -387,16 +387,33 @@ Remarks on the VASP version
===============================
In the current version of the interface the Fermi energy is extracted from the
`LOCPROJ` file. The file should contain the Fermi energy in the header. One can
either copy the Fermi energy manually there after a successful VASP run, or
modify the VASP source code slightly, by replacing the following line in
DOSCAR. However, if one pursues to do charge self-consistent calculations one
needs to write the Fermi energy to the projectors (`LOCPROJ` file), as the DOSCAR
is only updated after a full SCF/NSCF run. The file should contain the Fermi energy
in the header. One can either copy the Fermi energy manually there after a successful
VASP run, or modify the VASP source code slightly, by replacing the following line in
`locproj.F` (around line 695):
::
WRITE(99,'(4I6," # of spin, # of k-points, # of bands, # of proj" )') NS,NK,NB,NF
< WRITE(99,'(4I6," # of spin, # of k-points, # of bands, # of proj" )') NS,NK,NB,NF
---
> WRITE(99,'(4I6,F12.7," # of spin, # of k-points, # of bands, # of proj, Efermi" )') W%WDES%NCDIJ,NK,NB,NF,EFERMI
with:
Now one needs to pass additionally the variable `EFERMI` to the function, by changing (at arount line 560):
::
WRITE(99,'(4I6,F12.7," # of spin, # of k-points, # of bands, # of proj, Efermi" )') W%WDES%NCDIJ,NK,NB,NF,EFERMI
< SUBROUTINE LPRJ_WRITE(IU6,IU0,W)
---
> SUBROUTINE LPRJ_WRITE(IU6,IU0,W,EFERMI)
REAL(q) :: EFERMI
Next, we need to pass this option when calling from `electron.F` and `main.F`
(just search for LPRJ_WRITE in the files) and change all occurences as follows:
::
< CALL LPRJ_WRITE(IO%IU6, IO%IU0, W)
---
> CALL LPRJ_WRITE(IO%IU6, IO%IU0, W, EFERMI)
Now Vasp should print in the header of the `LOCPROJ` file additionally the Fermi energy.
Another critical point for CSC calculations is the function call of
`LPRJ_LDApU` in VASP. This function is not needed, and was left there for debug