scalarproductop

◼ scalarproductop[a, b] computes the vacuum expectation value of the product between operator expressions a and b. The expression on the left, a, is automatically conjugated.

◼ vevwick is called to calculated the vacuum expectation value.

◼ See also:scalarproductvc, expvop, matrixrepresentationop, normop, decomposeop, orthogop.

Further examples

Load sneg and let c and d be fermionic operators.

<< sneg`sneg`;
snegfermionoperators[c, d];
ordering[d] = SEA;
snegfreeindexes[i, j, k, l];

Simple examples

scalarproductop[1, 1] == 1
scalarproductop[c[CR], c[CR]] == 1
scalarproductop[c[CR, UP], c[CR, UP]] == 
      1
scalarproductop[c[CR, DO], c[CR, DO]] == 
      1
scalarproductop[c[CR, i, UP], c[CR, i, UP]] == 1

The sign depends on the order of the operators

scalarproductop[nc[c[CR, UP], c[CR, DO]], 
        nc[c[CR, UP], c[CR, DO]]] == 1
scalarproductop[nc[c[CR, UP], c[CR, DO]], 
        nc[c[CR, DO], c[CR, UP]]] == -1

Generic indexes can be used

scalarproductop[nc[c[CR, i, UP], c[CR, j, DO]], 
      nc[c[CR, k, UP], c[CR, l, DO]]]
scalarproductop[nc[c[CR, i, UP], c[CR, j, DO]], 
      nc[c[CR, k, DO], c[CR, l, UP]]]
scalarproductop[nc[c[CR, i, UP], c[CR, j, UP]], 
      nc[c[CR, k, UP], c[CR, l, UP]]]

The vacuum expectation value depends on the type of the vacuum.

scalarproductop[d[CR, k, UP], d[CR, k, UP]]
scalarproductop[d[CR, k, UP], d[CR, l, UP]] // 
      Simplify
scalarproductop[nc[d[CR, i, UP], d[CR, j, UP]], 
        nc[d[CR, k, UP], d[CR, l, UP]]] // Simplify