snegfreeindexes

◼ snegfreeindexes[k,sigma] declares k and sigma to be indexes.

◼ Declaration of indexes is used in simplifying sum blocks. (not yet)

◼ Free indexes are numeric quantities and can appear as indexes of operators.

◼ Note: some Mathematica functions have difficulties with parameters tagged with NumericQ. As a work-around, functions maskconstants and maskOp are provided.

◼ See also: snegintegerconstants, snegcomplexconstants, snegrealconstants, sneggrassmanconstants.

Further examples

Load sneg

<< sneg`sneg`;

Let c and d be fermionic operators and k and σ indexes.

snegfermionoperators[c, d]
ordering[c] = SEA;
snegfreeindexes[k, σ]

Operator with indexes: k is momentum, σ is spin. Operators c describe a continuum of conduction band electrons filled up to k=0 (a linearized dispersion E=k is assumed).

op = c[CR, k, σ]
conj[op]
iscreation[c[CR, k, σ]]
isannihilation[c[CR, k, σ]]
iscreation[c[AN, k, σ]]
isannihilation[c[AN, k, σ]]

Examples of automatic simplifications performed when the vacuum is annihilated

nc[c[CR, k, σ], VACUUM]
snegAssuming[k /: k < 0 = True, %] == 
      0
nc[c[AN, k, σ], VACUUM]
snegAssuming[k /: k > 0 = True, %] == 
      0
nc[conj[VACUUM], c[CR, k, σ]]
snegAssuming[k /: k > 0 = True, %] == 
      0
nc[conj[VACUUM], c[AN, k, σ]]
snegAssuming[k /: k < 0 = True, %] == 0

Canonical anticommutation relations

antikomutator[c[CR, k1, σ1], c[CR, k2, σ2]] == 
      0
antikomutator[c[AN, k1, σ1], c[AN, k2, σ2]] == 
      0
antikomutator[c[CR, k1, σ1], c[AN, k2, σ2]]

Kinetic energy Hamiltonian

SetAttributes[eps, NumericFunction]
Conjugate[eps[k_]] ^= eps[k];
H = 
      sum[eps[k] number[
            c[k], σ], {k, σ}]
H == conj[H]

Hybridization Hamiltonian

SetAttributes[V, NumericFunction]
Conjugate[V[k_]] ^= V[k];
H1 = 
      sum[V[k] hop[c[k], 
            d[], σ], {k, σ}]
H1 == conj[H1]

The hybridization Hamiltonian does not commute with the conduction band kinetic energy Hamiltonian

komutator[H, H1]
kom = sumFullSimplify[%]
sumFullSimplify[conj[kom] == -kom]

The hybridization Hamiltonian commutes with the total electron number operator

n = 
      sum[sum[number[c[k], σ], {k}] + 
          number[d[], σ], {σ}]
komutator[n, H1]
sumFullSimplify[%] == 0