twohop

◼ twohop[c, d] returns the two-particle hopping operator between the levels described by the operators c and d.

◼ Operators c and d must be expressed in a form which excludes the first index (creation/annihilation) and the last index (spin).

◼ See also: chargecharge.

Further examples

Load sneg and declare c and d to be fermionic operators

<< sneg`sneg`;
snegfermionoperators[c, d];

Two-particle hopping operator

H = twohop[c[], d[]]
SnegSimplify[%]

Two-particle hopping commutes with the total spin operators

{(Subscript[S, x]), (Subscript[S, y]), (Subscript[S, z]), S2} = 
        manyspin[{c[], d[]}];
komutator[H, (Subscript[S, x])] == 0 // ExpandAll
komutator[H, (Subscript[S, y])] == 0 // ExpandAll
komutator[H, (Subscript[S, z])] == 0 // ExpandAll
komutator[H, S2] == 0 // ExpandAll

Charge-charge interaction commutes with (Subscript[I, z]) and (I^2) isospin operators, but not with (Subscript[I, x]) and (Subscript[I, y]).

{(Subscript[I, x]), (Subscript[I, y]), (Subscript[I, z]), I2} = 
      manyisospin[{c[], d[]}]
komutator[H, (Subscript[I, x])] =!= 0 // ExpandAll
komutator[H, (Subscript[I, y])] =!= 0 // ExpandAll
komutator[H, (Subscript[I, z])] == 0 // ExpandAll
komutator[H, I2] == 0 // ExpandAll

Note that the two-particle hopping operator is equal to the transverse (xx+yy) part of the isospin exchange interaction.

Expand[-2 (isospinx[c[]]·isospinx[d[]] + 
              isospiny[c[]]·isospiny[d[]])] == 
      H