The Wigner-Eckart Theorem

The Wigner-Eckart theorem gives the matrix elements of irreducible tensor operators in terms of their reduced matrix elements:
    
Here is the 3-J symbol and (||||) is the reduced matrix element, which is independent of spatial indices (M, M, and q).
WignerEckart[sys,{op,k,q}]the matrix representation of the operator op with rank k and index q for atomic system sys
WignerEckart[sys,{op,k}]the 2 k+1 matrix components of the operator op with rank k for atomic system sys
WignerEckart[s1,{op,k,q},s2]the matrix element of the operator op between atomic states s1 and s2

Matrix representation of operators.

This loads the package.
In[1]:=
Click for copyable input
If the reduced matrix element for an operator is predefined, as for example for the electronic-angular-momentum operator J, this definition is used by WignerEckart to produce explicit matrix elements for the operator.
An atomic system consisting of a J=1 state.
In[2]:=
Click for copyable input
Out[2]=
The J operator is a rank 1 (=1) spherical tensor operator. Thus it has 2+1=3 components. This gives the matrices for the J1, J0, and J-1 operators:
In[3]:=
Click for copyable input
Out[3]//MatrixForm=
operator
rank
Zero0the zero operator
Identity0the identity operator
Energy0the internal (unperturbed) energy operator
Dipole1the E1 electric dipole operator
J1the angular momentum operator
MagneticMoment1the magnetic moment operator
Polarizability0the effective Hamiltonian for scalar polarizability
Polarizability1the effective Hamiltonian for vector polarizability
Polarizability2the effective Hamiltonian for tensor polarizability
Polarizationthe polarization operator of rank

Some predefined operators.

WignerEckart can be used with an undefined operator: the reduced matrix elements are then given symbolically as ReducedME objects.
Even though the operator is undefined, its tensor rank and index determine its matrix elements up to a reduced matrix element.
In[4]:=
Click for copyable input
Out[4]//MatrixForm=
ReducedME[s1,{op,k},s2]a symbolic reduced matrix element of the rank-k operator op between atomic states s1 and s2

Symbolic reduced matrix element.

We can complete the definition of a tensor operator by giving a definition for its reduced matrix element. For example, consider a scalar, parity non-conserving interaction mixing two opposite parity states, written in terms of a real, parity-violating mixing parameter .
Define the ReducedME for a scalar PNC operator. The parity-violating matrix elements are imaginary. WignerEckart assumes that symbolic parameters are real, so a factor of must be included explicitly.
In[5]:=
Click for copyable input
An atomic system consisting of two J=1 states.
In[6]:=
Click for copyable input
Out[6]=
The matrix for the PNC operator for this system.
In[7]:=
Click for copyable input
Out[7]//MatrixForm=