spinxyz

◼ spinxyz[c] returns the x, y, and z components of the S=1/2 spin operator for the level described by the operator c.
◼ spinx[c] returns the x component of the spin operator.
◼ spiny[c] returns the y component of the spin operator.
◼ spinz[c] returns the z component of the spin operator.
◼ spinss[c] returns the (S^2) total spin operator for the level.
◼ spinall[c] returns the x, y, and z components of the spin operator, as well as the (S^2) operator.
◼ spinplus[c] returns the + component of the spin operator, \(TraditionalForm\`\(S\_+\) = S\_x\)+i (Subscript[S, y]).
◼ spinminus[c] returns the - component of the spin operator, \(TraditionalForm\`\(S\_-\) = S\_x\)-i (Subscript[S, y]).

◼ 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: spinspin, isospinxyz.

Further examples

Load sneg and declare c to be a fermionic operator

<< sneg`sneg`;
snegfermionoperators[c];

Check definition

{(Subscript[S, x]), (Subscript[S, y]), (Subscript[S, z])} = spinxyz[c[]]
komutator[(Subscript[S, x]), (Subscript[S, y])] == I (Subscript[S, z]) // 
      ExpandAll
komutator[(Subscript[S, y]), (Subscript[S, z])] == I (Subscript[S, x]) // 
      ExpandAll
komutator[(Subscript[S, z]), (Subscript[S, x])] == I (Subscript[S, y]) // ExpandAll

Total spin operator

SS = spinss[c[]]
SS == pow[(Subscript[S, x]), 2] + pow[(Subscript[S, y]), 2] + pow[(Subscript[S, z]), 2]

Verify some equalities

spinall[c[]] == {spinx[c[]], spiny[c[]], spinz[c[]], 
        spinss[c[]]}
spinplus[c[]] == spinx[c[]] + I spiny[c[]] // 
      ExpandAll
spinminus[c[]] == spinx[c[]] - I spiny[c[]] // 
      ExpandAll

Using spinxyzgen it is possible to generate spin operators for linear combinations of levels. In this example, we obtain the spin operator for d = ((Subscript[c, 1]) + (Subscript[c, 2]))/(Sqrt[2]).

d = 
      Function[σ, (1/(Sqrt[2])) (c[CR, 1, σ] + 
              c[CR, 2, σ])]
{sdx, sdy, sdz} = spinxyzgen[d] // Expand
nc[sdz, d[UP], VACUUM] == 1/2  nc[d[UP], VACUUM] // 
      ExpandAll
nc[sdz, d[DO], VACUUM] == -1/2  nc[d[DO], VACUUM] // 
      ExpandAll

Check transformation properties of spherical tensor operators. The simplest example is that of the pair of creation operators for both spin orientations.

(Subscript[S, p]) = spinplus[c[]];
(Subscript[S, m]) = spinminus[c[]];

    
fu = c[CR, UP]
fd = c[CR, DO]
komutator[(Subscript[S, z]), fu] == 1/2 fu // 
      ExpandAll
komutator[(Subscript[S, p]), fu] == 0 // ExpandAll
komutator[(Subscript[S, m]), fu] == fd // 
      ExpandAll

    
komutator[(Subscript[S, z]), fd] == -1/2 fd // ExpandAll
komutator[(Subscript[S, p]), fd] == fu // ExpandAll
komutator[(Subscript[S, m]), fd] == 0 // ExpandAll

Both operators increase charge by one unit

komutator[number[c[]], fu] == fu
komutator[number[c[]], fd] == fd

The following pair of operators also transforms as spin-doublet. See R. Bulla, A. C. Hewson, Th. Pruschke, J. Phys.: Condens. Matter 10, 8365 (1998).

fu = 
      c[AN, DO]·c[CR, UP]·
        c[AN, UP]
fd = -c[AN, UP]·c[CR, DO]·
        c[AN, DO]
komutator[(Subscript[S, z]), fu] == 1/2 fu // 
      ExpandAll
komutator[(Subscript[S, p]), fu] == 0 // ExpandAll
komutator[(Subscript[S, m]), fu] == fd // 
      ExpandAll

    
komutator[(Subscript[S, z]), fd] == -1/2 fd // ExpandAll
komutator[(Subscript[S, p]), fd] == fu // ExpandAll
komutator[(Subscript[S, m]), fd] == 0 // ExpandAll

These two operators decrease charge by one unit

komutator[number[c[]], fu] == -fu
komutator[number[c[]], fd] == -fd