SU(2)

class groups.su2.SU2(J, dtype=torch.float64, device='cpu')[source]
Parameters:
  • J (int) – highest weight

  • dtype (torch.dtype) – data type of matrix representation of operators

  • device (int) – device on which the torch.tensor objects are stored

Build a representation J of SU(2) group. The J corresponds to (physics) spin irrep notation as spin \(S = (J-1)/2\).

The raising and lowering operators are defined as:

\[\begin{split}\begin{align*} S^+ &=S^x+iS^y & S^x &= 1/2(S^+ + S^-)\\ S^- &=S^x-iS^y\ \Rightarrow\ & S^y &=-i/2(S^+ - S^-) \end{align*}\end{split}\]
I()[source]
Returns:

Identity operator of irrep

Return type:

torch.tensor

S()[source]
Returns:

rank-3 tensor containing spin generators [S^z, S^x, S^y]

Return type:

torch.tensor

SM()[source]
Returns:

\(S^-\) operator of irrep.

Return type:

torch.tensor

SP()[source]
Returns:

\(S^+\) operator of irrep.

Return type:

torch.tensor

SS(xyz=(1.0, 1.0, 1.0))[source]
Parameters:

xyz (tuple(float)) – coefficients of anisotropy of spin-spin interaction xyz[0]*(S^z S^z) + xyz[1]*(S^x S^x) + xyz[2]*(S^y S^y)

Returns:

spin-spin interaction as rank-4 for tensor

Return type:

torch.tensor

SZ()[source]
Returns:

\(S^z\) operator of irrep

Return type:

torch.tensor

SU(2) with explicit U(1) structure

class groups.su2_abelian.SU2_U1(settings, J)[source]
Parameters:
  • settings (NamedTuple or SimpleNamespace (TODO link to definition)) – YAST configuration

  • J (int) – dimension of irrep

Build a representation J of SU(2) group. The J corresponds to (physics) spin irrep notation as spin \(S = (J-1)/2\). This representation uses explicit U(1) symmetry (subgroup) making all operators/tensors block-sparse.

The signature convention \(O = \sum_{ij} O_{ij}|i\rangle\langle j|\) is -1 for index i (\(|ket\rangle\)) and +1 for index j (\(\langle bra|\)).

The raising and lowering operators are defined as:

\[\begin{split}\begin{align*} S^+ &=S^x+iS^y & S^x &= 1/2(S^+ + S^-)\\ S^- &=S^x-iS^y\ \Rightarrow\ & S^y &=-i/2(S^+ - S^-) \end{align*}\end{split}\]
I()[source]
Returns:

Identity operator of irrep

Return type:

yast.Tensor

SM()[source]
Returns:

\(S^-\) operator of irrep.

Return type:

yast.Tensor

The \(S^-\) operator maps states with \(S^z = x\) to states with \(S^z = x-1\) . Therefore as a matrix it must act as follows on vector of basis elements of spin S representation (in this particular order) \(|S M\rangle\)

    |-S  >     0                  0 0 0 0 ... 0
S^- |-S+1>  = C_-|-S  >  => S^- = 1 0 0 0 ... 0 x C_-
     ...         ...              ...
    | S-1>    C_-| S-2>           0   ... 1 0 0
    | S  >    C_-| S-1>           0   ... 0 1 0

where \(C_- = \sqrt{S(S+1)-M(M-1)}\).

SP()[source]
Returns:

\(S^+\) operator of irrep.

Return type:

yast.Tensor

The \(S^+\) operator maps states with \(S^z = x\) to states with \(S^z = x+1\) . Therefore as a matrix it must act as follows on vector of basis elements of spin-S representation (in this particular order) \(|S M\rangle\)

    |-S  >    C_+|-S+1>           0 1 0 0 ... 0
S^+ |-S+1>  = C_+|-S+2>  => S^+ = 0 0 1 0 ... 0 x C_+
     ...         ...                   ...
    | S-1>    C_+| S  >           0    ...  0 1
    | S  >        0               0    ...  0 0

where \(C_+ = \sqrt{S(S+1)-M(M+1)}\).

SS(zpm=(1.0, 1.0, 1.0))[source]
Parameters:

zpm (tuple(float)) – coefficients of anisotropy of spin-spin interaction zpm[0]*(S^z S^z) + zpm[1]*(S^p S^m)/2 + zpm[2]*(S^m S^p)/2

Returns:

spin-spin interaction as rank-4 for tensor

Return type:

yast.Tensor

SZ()[source]
Returns:

\(S^z\) operator of irrep

Return type:

yast.Tensor

S_zpm()[source]
Returns:

vector of su(2) generators as rank-3 tensor

Return type:

yast.Tensor

Returns vector with representation of su(2) generators, in order: \(S^z, S^+, S^-\). The generators are indexed by first index of the resulting rank-3 tensors. Signature convention is:

1(-1)
S--0(-1)
2(+1)