Double quantum dot with interimpurity charge-charge repulsion term
Part of SNEG package, http://nrgljubljana.ijs.si
Rok Zitko, rok.zitko@ijs.si, March 2007

<< sneg`sneg`;
Off[General::spell1];

snegfermionoperators[d]
snegrealconstants[U, U12, t, δ]

H = 
        Sum[δ (number[d[i]] - 1) + 
              U/2 (pow[number[d[i]] - 1, 2]), {i, 2}] + 
          U12 chargecharge[d[1], d[2]] + 
          t hop[d[1], d[2]];
Collect[H, Cases[H, _nc, {1, ∞}]]

{sx, sy, sz, stot} = manyspin[{d[1], d[2]}]

{ox, oy, 
        oz} = Sum[
            Expand[nc[d[CR, i, μ], 1/2  #[[i, j]], 
                d[AN, j, μ]]], {i, 2}, {j, 2}, {μ, 0, 
              1}] &  /@ {PauliX, PauliY, PauliZ}

Spin and pseudo-spin operators commute!

Expand @ Outer[ komutator, {sx, sy, sz}, {ox, oy, oz}]

Hamiltonian commutes with spin operator for any parameters.

Expand @ komutator[H, sx]
Expand @ komutator[H, sy]
Expand @ komutator[H, sz]

Orbital psuedo-spin operators commute with the Hamiltonian for U=U12 and t=0.

Expand @ komutator[H, ox]
% /. U12 -> U

Expand @ komutator[H, oy]
% /. U12 -> U
% /. t -> 0

Expand @ komutator[H, oz]
% /. t -> 0

Hamiltonian without hopping for U12=U.

H2 = H /. {t -> 0, U12 -> U};

pdt = Outer[nc, {sx, sy, sz}, {ox, oy, oz}] // Expand

Hamiltonian (for U12 = U and t = 
            0) commutes with direct product operators (Subscript[S, i]) 
      (Subscript[O, j])

Map[Expand @ komutator[H2, #] &, Flatten[pdt]]

We add factors of 2 to simplify matrices

t = 
        2  Join[{sx, sy, sz}, {ox, oy, oz}, 2  Flatten[pdt]];

Defining SU(4) quadruplet representation. (cf Georgi, p. 114)

quadruplet = {d[CR, 1, UP], d[CR, 1, DO], d[CR, 2, UP], 
        d[CR, 2, DO]}

braketop[a_, op_, b_] := scalarproductop[a, nc[op, b]];

braketop[1, 1, 1]
braketop[d[CR, 1, UP], 1, d[CR, 1, UP]]

MatrixForm @ 
          Table[braketop[quadruplet[[i]], #, quadruplet[[j]]] , {i, 
              4}, {j, 4}] & /@ {2  sx, 2  sy, 2  sz}

MatrixForm @ 
          Table[braketop[quadruplet[[i]], #, quadruplet[[j]]] , {i, 
              4}, {j, 4}] & /@ {2  ox, 2  oy, 2  oz}

m =  Table[
              braketop[quadruplet[[i]], #, quadruplet[[j]]] , {i, 
                4}, {j, 4}] & /@ t;
MatrixForm  /@  m

Traceless matrices with det=1

Map[Det, m]

Map[Tr, m]

Outer[Tr[#1 . #2] &, m, m, 1]

sextuplet = {
nc[d[CR, 1, UP], 
          d[CR, 2, UP]], 
1/
            Sqrt[2] (nc[d[CR, 1, UP], d[CR, 2, DO]] + 
              nc[d[CR, 1, DO], d[CR, 2, UP]]), 
nc[
          d[CR, 1, DO], d[CR, 2, DO]], 
nc[d[CR, 1, UP], 
          d[CR, 1, DO]], 
1/
            Sqrt[2] (nc[d[CR, 1, UP], d[CR, 2, DO]] - 
              nc[d[CR, 1, DO], d[CR, 2, UP]]), 
nc[
          d[CR, 2, UP], d[CR, 2, DO]]}

m =  Table[
              braketop[sextuplet[[i]], #, sextuplet[[j]]] , {i, 
                6}, {j, 6}] & /@ t;
MatrixForm  /@  m

Map[Det, m]

Map[Tr, m]

Outer[Tr[#1 . #2] &, m, m, 1]