pengwann.descriptors.DescriptorCalculator.get_dos_matrix#

descriptors.DescriptorCalculator.get_dos_matrix(c_star, c, resolve_k=False)#

Calculate the DOS matrix for a pair of Wannier functions.

Parameters:
c_starndarray of complex

The complex conjugate of the coefficient matrix for Wannier function i with Bravais lattice vector R_1.

cndarray of complex

The coefficient matrix for Wannier function j with Bravais lattice vector R_2.

resolve_kbool, optional

Whether or not to resolve the DOS matrix with respect to k-points. Defaults to False.

Returns:
dos_matrixndarray of float

The DOS matrix.

Notes

For resolve_k = True, the DOS matrix \(D_{\alpha\beta}\) for a given pair of Wannier functions \(\ket{w_{\alpha}}\) and \(\ket{w_{\beta}}\) has dimensions of num_energy x num_kpoints, where num_energy refers to the number of discrete energies over which the density of states has been evaluated. For resolve_k = False, it is technically no longer a DOS matrix but rather a DOS vector with num_energy elements.

For the k-resolved case, each element of the DOS matrix is constructed as [1]

\[D_{\alpha\beta}(E, k) = \sum_{n} \mathrm{Re}\left[\left(C^{\alpha}_{nk} \right)^{*}C^{\beta}_{nk}\right] \cdot \delta(E - \epsilon_{nk}),\]

where \(\left(C^{\alpha}\right)^{*}\) and \(C^{\beta}\) reflect the values of the c_star and c arguments and \(\delta(E - \epsilon_{nk})\) is the density of states evaluated for a particular band and k-point. Summing over \(k\) (resolve_k = False) yields

\[D_{\alpha\beta}(E) = \sum_{k} D_{\alpha\beta}(E, k),\]

which is the aforementioned DOS vector.

References