basis

◼ basis[c] returns the basis states (creation operators) for a single lattice site corresponding to the operator c.

◼ Operator c must be expressed in the stripped form, i.e. a form which excludes the first index (creation/annihilation) and the last index (spin).

◼ See also: makebasis.

Further examples

Load sneg and declare some quantities

<< sneg`sneg`;
snegfermionoperators[c, d];
snegrealconstants[ϵup, ϵdo, U];

Check definition

basis[c[]]
basis[c[1]]
basis[c[k]]

Obtain the matrix representation of a simple Hamiltonian

b = basis[c[]]
H = ϵup number[c[], UP] + ϵdo number[c[], DO] + 
        U hubbard[c[]]
mat = matrixrepresentationop[H, b];
MatrixForm[mat]

Transformation of the basis states and of the Hamiltonian to a new set of basis states. The matrix representation is invariant.

rule = {c[
            x : __, σ_] -> (1/(Sqrt[2])) (d[x, L] + 
                If[σ == UP, 1, -1] d[x, 
                    R])}
bnew = b /. rule
Hnew = Expand[H /. rule]
KroneckerDelta[L, R] ^= 0;
mat = matrixrepresentationop[Hnew, bnew];
MatrixForm[mat]