Hello everyone.

I am trying to  calculate and plot dispersion relation for a 4x4 matrix
model. But I want to use 4 different lattices with names a_up, b_up,a_down,
B_down. That is my basis. But I am not able to reproduce the same structure
when I am using four different lattices instead 4x4 matrices.
Here are my codes

# Code With Matrix use:

      "    #Onsite energy\n",
      "    sys[lat.shape(cube,(0,0,0))] = (C + 2 * D1 + 4 * D2) * s0s0 + (M
+ 2 * B1 + 4 * B2) *s0sz\n",
      "    #hopping in x direction \n",
      "    sys[kwant.builder.HoppingKind((1, 0,0), lat,lat)] =  - D2 * s0s0
- B2 * s0sz +A2 * 0.5j * sxsx\n",
      "    #hopping in y direction \n",
      "    sys[kwant.builder.HoppingKind((0,1,0), lat,lat)] =  - D2 *s0s0
-B2 * s0sz + A2 * 0.5j * sysx\n",
      "    #hopping in z direction \n",
      "    sys[kwant.builder.HoppingKind((0,0,1), lat,lat)] =  - D1 * s0s0
-B1 * s0sz + A1 * 0.5j * szsx    \n",

#Code with lattice desription:

      "a_up = kwant.lattice.general([(1,0,0),(0,1,0),(0,0,1)], name=
'a_up')\n",
      "b_up = kwant.lattice.general([(1,0,0),(0,1,0),(0,0,1)], name=
'b_up')\n",
      "a_down = kwant.lattice.general([(1,0,0),(0,1,0),(0,0,1)], name=
'a_down')\n",
      "b_down= kwant.lattice.general([(1,0,0),(0,1,0),(0,0,1)], name=
'b_down')"



      "    # ONSITE POTENTIAL\n",
      "    \n",
      "    \n",
      "    sys[a_up.shape(cube,(0,0,0))] = (M + 2 * B1 + 4 * B2)\n",
      "    sys[b_up.shape(cube,(0,0,0))] = -(M + 2 * B1 + 4 * B2)\n",
      "    sys[a_down.shape(cube,(0,0,0))] = (M + 2 * B1 + 4 * B2)\n",
      "    sys[b_down.shape(cube,(0,0,0))] = -(M + 2 * B1 + 4 * B2)\n",
      "    \n",
      "    # HoppING TERM along x-direction\n",
      "    \n",
      "    #1. Diagonal terms\n",
      "    sys[kwant.builder.HoppingKind((1,0,0),a_up, a_up)] =     -B2\n",
      "    sys[kwant.builder.HoppingKind((1,0,0),b_up, b_up)] =      B2\n",
      "    sys[kwant.builder.HoppingKind((1,0,0),a_down, a_down)] = -B2\n",
      "    sys[kwant.builder.HoppingKind((1,0,0),b_down, b_down)] =  B2\n",
      "    \n",
      "    #2. Non-Diagonal terms\n",
      "    sys[kwant.builder.HoppingKind((1,0,0), a_up,b_down)]  =  A2 *
0.5j\n",
      "    sys[kwant.builder.HoppingKind((1,0,0), a_down,b_up)]  =  A2 *
0.5j\n",
      "    sys[kwant.builder.HoppingKind((1,0,0), b_down,a_up)]  =  A2 *
0.5j\n",
      "    sys[kwant.builder.HoppingKind((1,0,0), b_up,a_down)]  =  A2 *
0.5j\n",
      "    \n",
      "    \n",
      "    # Hopping along y-direction\n",
      "    \n",
      "    #1. Diagonal Terms\n",
      "    sys[kwant.builder.HoppingKind((0,1,0),a_up, a_up)] =     -B2\n",
      "    sys[kwant.builder.HoppingKind((0,1,0),b_up, b_up)] =      B2\n",
      "    sys[kwant.builder.HoppingKind((0,1,0),a_down, a_down)] = -B2\n",
      "    sys[kwant.builder.HoppingKind((0,1,0),b_down, b_down)] =  B2\n",
      "    \n",
      "    #2. non diagoal terms\n",
      "    sys[kwant.builder.HoppingKind((0,1,0), a_up,b_down)]  = -1j* A2
* 0.5j\n",
      "    sys[kwant.builder.HoppingKind((0,1,0), a_down,b_up)]  = -1j* A2
* 0.5j\n",
      "    sys[kwant.builder.HoppingKind((0,1,0), b_down,a_up)]  =  1j* A2
* 0.5j\n",
      "    sys[kwant.builder.HoppingKind((0,1,0), b_up,a_down)]  =  1j* A2
* 0.5j\n",
      "    \n",
      "    \n",
      "    \n",
      "    # Hopping along z-direction\n",
      "    \n",
      "    #1. Diagonal Terms\n",
      "    sys[kwant.builder.HoppingKind((0,0,1),a_up, a_up)] =     -B1\n",
      "    sys[kwant.builder.HoppingKind((0,0,1),b_up, b_up)] =      B1\n",
      "    sys[kwant.builder.HoppingKind((0,0,1),a_down, a_down)] = -B1\n",
      "    sys[kwant.builder.HoppingKind((0,0,1),b_down, b_down)] =  B1\n",
      "    \n",
      "    #2. non diagoal terms\n",
      "    sys[kwant.builder.HoppingKind((0,0,1), b_up,a_up)]  =    A1 *
0.5j\n",
      "    sys[kwant.builder.HoppingKind((0,0,1), a_up,b_up)]  =    A1 *
0.5j\n",
      "    sys[kwant.builder.HoppingKind((0,0,1), b_down,a_down)]  =  A1 *
0.5j\n",
      "    sys[kwant.builder.HoppingKind((0,0,1), b_down,b_down)]  =  A1 *
0.5j\n",
      "    \n",

My problem is I am not getting the same band structure from both the codes.
I know there is some problem with the way I have put my hoppings in the
second code.
But I have no clear idea about hoppingkind function. I think I should not
use in the later case. Please help me correct the problem.
Thanks!

ANANT VIJAY VARMA
Research Scholar
IISER-KOLKATA
WEST BENGAL.

Reply via email to