ordering

◼ ordering[c]=EMPTY | SEA determines how the fermionic operators are reordered in an operator string by defining the vacuum state that corresponds to the operator c.

◼ By default, sneg attempts to put the operators in the canonical normal order, i.e the creation operators are moved in front of the annihilation operators. Annihilation operators are defined to be those operators that yeild zero when applied to the vacuum state. ordering defines what the relevant vacuum state is.

◼ ordering[c]=EMPTY corresponds to an empty state vacuum (all levels unoccupied). This is the default.

◼ ordering[c]=SEA corresponds to a Fermi sea vacuum state (levels filled up to the Fermi level).

◼ For ordering[c]=EMPTY, the operators are also ordred in increasing order with respect to the other operator indexes (momentum, site index, spin,etc.).

◼  For ordering[c]=SEA, the reordering depends on what is known about the creation/annihilation nature of the operators (see snegOrderedQ). Furthermore, the operators are always ordered in the increasing order with respect to the last (n-2) indexes, where n is the total number of indexes (the first index is CR/AN index, the second is assumed to correspond to momentum or some other quantum number that uniquely determines the level energy).

◼ In addition, operators of the same type (creation/annihilation) are sorted in the increasing order of the associated symbol (Head of the operator expression), i.e. in the alphabetical order.

◼ When reordering is performed, the anticommutator is computed using function acmt.

◼ In addition to EMPTY and SEA, other types may be defined by the user for special purposes. This might be useful, for example, in the case of some nontrivial vacuum state.

◼ See also: snegOrderedQ, overrideSEA

Further examples

Load sneg

<< sneg`sneg`;

Let c and d be fermionic operators, for c the vacuum state is empty, for d the vacuum state is a Fermi sea.

snegfermionoperators[c, d]
ordering[c] = EMPTY;
ordering[d] = SEA;

Alphabetical sorting with respect to operator symbols

nc[c[CR], d[CR]]
nc[d[CR], c[CR]]
nc[c[AN], d[AN]]
nc[d[AN], c[AN]]