spinspinsymmetric

◼ spinspinsymmetric[{a, b,...}] returns the symmetrized spin-spin scalar product 1/N ∑(Subscript[S, a])·(Subscript[S, b]) between pairs of S=1/2 spin operators corresponding to the levels described by the operators a and b,... Here N is the number of pairs.

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

◼ The expression is symmetric with respect to operator permutations.

◼ See also: spinspin.

Further examples

Load sneg and declare operators

<< sneg`sneg`;
snegfermionoperators[a, b, c, d, e];

Verify definitions

expr1 = 
        1/10 (spinspin[a[], b[]] + spinspin[a[], c[]] + 
                spinspin[a[], d[]] + spinspin[a[], e[]] + 
                spinspin[b[], c[]] + spinspin[b[], d[]] + 
                spinspin[b[], e[]] + spinspin[c[], d[]] + 
                spinspin[c[], e[]] + spinspin[d[], e[]]) // 
          Simplify;
spinspin  @@@  
        Subsets[{a[], b[], c[], d[], e[]}, {2}];
expr2 = Total[%]/Length[%] // Simplify;
expr3 = 
        spinspinsymmetric[{a[], b[], c[], d[], 
            e[]}];
expr1 == expr2 == expr3

The expression is symmetric with respect to operator permutations

expr1 === (expr1 /. {a -> b, 
            b -> a})
expr1 === (expr1 /. {a -> b, b -> c, 
            c -> a})
expr1 === (expr1 /. {a -> b, b -> c, c -> d, 
            d -> e, e -> a})

permuts = 
        Map[Thread[{a, b, c, d, e} -> #] &, 
          Permutations[{a, b, c, d, e}]];
Map[expr1 === (expr1 /. #) &, permuts]