VASP file I/O
We have provided methods to load:
- POSCAR
- PROCAR
- PROOUT
- EIGENVAL
POSCAR
PROCAR
PROCAR for LDA
For normal LDA or GGA calculation, you can load PROCAR file using load_procar
function without any keyword arguments. And there are three values are returned, representing metadata of projection characters, k-points and bands, respectively.
projection, kpoints, bands = load_procar("PROCAR")
PROCAR for LSDA
For LSDA or GGA+Spin calculation, you need set the keyword argument spin
to be true
. And the returned values are still divided into these three parts.
projection, kpoints, bands= load_procar("PROCAR"; spin = true)
PROCAR for non-collinear calculation
For non-collinear calculation, you need set the keyword argument noncollinear
to be true
. The returned values are divided into five parts, representing total projection characters, projection characters of x-axis, projection characters of y-axis, projection characters of z-axis, k-points and bands, respectively.
projection_all, projection_x, projection_y, projection_z, kpoints, bands =
load_procar("PROCAR"; noncollinear = true)
Trick to distinguish between major spin and minor spin
In addition, non-collinear calculation in VASP doesn't distinguish between major and minor spin. But you can use a calculation trick to distinguish between spins. For example, you can set the spin quantization axis to be z axis using SAXIS
tag. Then, the only nonzero projection character value is projection_all
and projection_z
. For negative projection character value, the spin is minor spin, otherwise the spin is major spin. And we have defined a method distinguish_spin
to do this job.
projection, bands = distinguish_spin(projection_all, projection_z, bands)
The metadata of projection character and band of major spin and minor spin have been stored in projection
and bands
with ProjectionWithSpin
and BandsWithSpin
data type respectively.