Eq. 19 in this paper gives the following Hamiltonian:
$\sigma_a, \tau_a, \eta_a$ are respectively the spin, sublattice pseudospin and valley pseudospin respectively.
Normally, I would have chosen a basis convention such as $\sigma_a, \tau_a, \eta_a$ and plugged in the $2\times 2$ identity matrix for terms that don't appear above. Then I would have taken the Kronecker Delta product. However, in this case, the authors explicitly define $(s_z,\tau_z\,\eta_z)=(\pm 1, \pm 1, \pm 1)$ for $($up/down, sublattice A/B, valley K/K'$)$ respectively. So, as a relatively inexperienced person in the field, I feel like there is some ambiguity. I am having trouble translating the above into a matrix that I can play with numerically. Can someone help me understand the convention here?
I tried two interpretations in Python. np.kron
takes the Kronecker product. First attempt:
# Choose basis: (tau_xy, sigma_xyz), replace sz, tauz, etaz by s, tau, eta = +/- 1
# Gives 4-band model, with eye = identity and s_xyz as Pauli matrices
eta = 1; # instead of using eta_z as the Pauli z matrix
h1=h*vf*(eta*kx*np.kron(sx,eye)+ky*np.kron(sy,eye)) # e-e hoppings
h2=lSO*eta*np.kron(eye,sz)*tau # SO coupling
h3=m*np.kron(eye,sz)*tau # break TRS (AFM exchange mag.)
H = h1+h2+h3
Second:
# Choose basis: (eta, sigma, tau) using Pauli matrices for all, but no +/- 1 values.
# Gives 8-band model.
h1=h*vf*(kx*np.kron(sz,np.kron(eye,sx))+ky*np.kron(eye,np.kron(eye,sy))) # e-e hoppings
h2=lSO*np.kron(sz,np.kron(sz,sz)) # SO coupling
h3=m*np.kron(eye,np.kron(sz,sz))# break TRS (AFM exchange mag.)
H = h1+h2+h3
Both of these seem to give me very weird Berry curvature fields when plotted. So, I figured I am doing something wrong. Note: I set $v_F = 1, \hbar=1$.