Function QCM::hopping_operator

Function Documentation

void QCM::hopping_operator(const string &name, vector3D<int64_t> &link, double amplitude, int orb1, int orb2, int tau, int sigma)

Defines a hopping operator on the lattice.

Defines a hopping (one-body) operator.

The operator, given two sites labelled 1 and 2, is defined as: $c^\dagger_{is}\tau^a_{ij}\sigma^b_{ss’}c_{js’}$

Parameters:
  • name – name given to the operator

  • link – bond vector on which the operator is defined

  • amplitude – default amplitude of the operator, that multiplies all matrix elements and its given value

  • orb1 – index of the first orbital (from 1 to nband)

  • orb2 – index of the second orbital (from 1 to nband)

  • tau – label (0,1,2,3) of the Pauli matrix defining the orbital component (a in the formula above)

  • sigma – label (0,1,2,3) of the Pauli matrix defining the spin component (b in the formula above)