eigenΒΆ
The eigenvalues and eigenvectors of the Hamiltonian at the convergence
are exported in NumPy zip (npz) format.
Using the string (referred to as eigen_str) specified by the keyword eigen
in file.output section in the parameter file,
the filename is chosen as eigen_str.npz.
The following code is an example for reading the data from the output file.
import numpy as np
data = np.load("eigen_str.npz")
eigenvalue = data["eigenvalue"]
eigenvector = data["eigenvector"]
wavevector_unit = data["wavevector_unit"]
wavevector_index = data["wavevector_index"]
eigenvalue contains the eigenvalues \(\lambda_l(\vec{k})\) for each wave number.
The wave number is taken in unit of sublattice when the sublattice is considered.
The data format is a numpy ndarray with the layout as eigenvalue[k][l], where
k refers to the linearlized index of the wave number vector \(\vec{k}\) (see below),
and l refers to the index of eigenvalue.
When Sz is fixed, l is given by l = l' + Norb * s where l' is the
index of the eigenvalue in a cell, and s refers to the spin index
(0 for up-spin, and 1 for down-spin).
eigenvector contains the corresponding eigenvectors.
The data format is a numpy ndarray with the layout as eigenvector[k][j][l], where
k and l refer to the indices of the corresponding wave number and eigenvalue,
and j refers to the index of the orbital and spin in a cell.
wavevector_unit and wavevector_index refer to the information of the wave number vectors.
wavevector_unit contains the unit wave number vectors given by
\(2\pi\vec{b}_i/N_i\) with \(\vec{b}_i\) being reciprocal lattice vectors.
wavevector_index contains the map from the index k
to the indices of the wave number vector (kx, ky, kz).
The wave number vector that corresponds to the index k is obtained by
k_vec = np.dot(wavevector_index[k], wavevector_unit)