mirror of
https://github.com/triqs/dft_tools
synced 2024-12-22 12:23:41 +01:00
Added preliminary parser description to the docs
This is a description of the preliminary design for the parser of PROJCAR/LOCPROJ files output by VASP.
This commit is contained in:
parent
8064c9604d
commit
aa39c37d8b
@ -3,7 +3,27 @@
|
|||||||
VASP input-output
|
VASP input-output
|
||||||
#################
|
#################
|
||||||
|
|
||||||
The following VASP are used by PLOtools:
|
The following VASP files are used by PLOtools:
|
||||||
* PLOCAR: raw projectors generated by VASP-PLO interface
|
* PROJCAR, LOCPROJ: raw projectors generated by VASP-PLO interface (VASP version >= 5.4.1)
|
||||||
* EIGENVAL: Kohn-Sham eigenvalues as well as `k`-points with weights
|
* EIGENVAL: Kohn-Sham eigenvalues as well as `k`-points with weights and Fermi weights
|
||||||
* IBZKPT: `k`-point data (:math:`\Gamma`)
|
* IBZKPT: `k`-point data (:math:`\Gamma`)
|
||||||
|
* POSCAR: crystal structure data
|
||||||
|
|
||||||
|
Starting from version 5.4.1 VASP now supports an official output of various types of
|
||||||
|
projectors that are requested in INCAR by specifying a set of sites, orbitals and types
|
||||||
|
of projectors. The calculated projectors are output into files **PROJCAR** and **LOCPROJ**.
|
||||||
|
The difference between these two files is that **LOCPROJ** contains raw matrices without
|
||||||
|
any reference to sites/orbitals, while **PROJCAR** is more detailed on that.
|
||||||
|
In particular, the information that can be obtained for each projector from **PROJCAR** is the following:
|
||||||
|
|
||||||
|
* site (and species) index
|
||||||
|
* for each `k`-point and band: a set of complex numbers for labeled orbitals
|
||||||
|
|
||||||
|
At the same time, **LOCPROJ** contains the total number of projectors (as well as the
|
||||||
|
number of `k`-points, bands, and spin channels) in the first line,
|
||||||
|
which can be used to allocate the arrays before parsing.
|
||||||
|
|
||||||
|
To enhance the performance of the parser, it is implemented in plain C. The idea is
|
||||||
|
that the python part of the parser first reads the first line of **LOCPROJ** and
|
||||||
|
then calls the C-routine with necessary parameters to parse **PROJCAR**.
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user