pythtb.Lattice.k_shell_weights#
- Lattice.k_shell_weights(nks, n_shell=1, return_shell=True, report=False)[source]#
Generates the finite difference weights on a k-shell.
This function uses the k-shells generated by
nn_k_shell()to compute the weights for finite difference approximations of \(\nabla_{\mathbf{k}}\) on a Monkhorst-Pack k-mesh. To linear order, the following expression must be satisfied\[\sum_{s}^{N_{\rm sh}} w_s \sum_{i}^{M_s} b_{\alpha}^{i,s} b_{\beta}^{i,s} = \delta_{\alpha,\beta}\]where \(N_{\rm sh} \equiv\)
n_shellis the number of shells defining the order of nearest neighbors, \(M_s\) is the number of k-points in the \(s\)-th shell, and \(b_{\alpha}^{i,s}\) is the \(\alpha\)-th Cartesian component of \(i\)-th vector connecting k-points to their nearest neighbors in the \(s\)-th shell.- Parameters:
- n_shellint
The number of shells to consider.
- reportbool
Whether to print a report of the k-shells.
- Returns:
- wnp.ndarray
The finite difference weights.
- k_shelllist[np.ndarray[float]], optional
List of \(\mathbf{b}\) vectors in inverse units of lattice vectors connecting nearest neighbor k-mesh points. Length is n_shell.
- idx_shelllist[np.ndarray[int]], optional
Each entry is an array of integer shifts that takes a k-point index in the mesh to its nearest neighbors. Length is n_shell.