Atomic Density Matrix Tutorial | Functions »|More About » |

Rotations of quantum-mechanical objects (state ket or state bra vectors, operators, density matrices, and polarization moment expansions) are accomplished via the rotation operator, the matrix elements of which are given by the Wigner D-functions. In the AtomicDensityMatrix package, these are provided by the WignerD function. (Note that as of *Mathematica* version 8.0, there is also a built-in WignerD function. The built-in version has slightly different syntax, given on its documentation page; if that syntax is used, the built-in function is called. The built-in function uses a different convention than the one described here, in which the Euler angles have the opposite sign.)

WignerD[{j,m_{1},m_{2}},{alpha,beta,gamma}] | Wigner D-function for angular-momentum quantum numbers j, m_{1}, and m_{2} and Euler angles alpha, beta, and gamma |

WignerD[j, {alpha, beta, gamma}] | matrix for rotation of an atomic system with angular momentum j |

WignerD[s_{1},{alpha,beta,gamma},s_{2}] | rotation matrix element between atomic states s_{1} and s_{2} |

WignerD[sys,{alpha,beta,gamma}] | matrix for rotation of atomic system sys |

In order to perform rotations, the Wigner rotation matrices must be applied to different types of objects in different ways, described in the tutorial below. Alternatively, the WignerRotate function can be used, which rotates an arbitrary quantum-mechanical object.

WignerRotate[x,{alpha, beta, gamma}] | rotate operator or irreducible tensor x using Wigner D-functions |

Rotating any quantum-mechanical object.

The way in which WignerRotate operates is determined by the form of the object to be rotated, as well as by two additional options. The Sense option specifies whether an active or passive rotation is desired, i.e., whether the state (Active) or coordinate system (Passive) should be rotated. A passive rotation is the inverse of the active rotation by the same angles; in this tutorial we consider active rotations, which are the default. The option StandardOperator distinguishes between the density matrix and all other operators, which have the same form but different rotational properties, as described below. The default value StandardOperator->False is appropriate for rotations of density matrices, polarization-moment decompositions of density matrices, and irreducible tensors that rotate in the normal way, including ket and bra vectors.

option name | default value | |

Sense | Active | sense of the rotation |

StandardOperator | False | whether an operator other than a density matrix is being rotated |

Options for WignerRotate.

In[1]:= |

A state ket | can be expanded in the Zeeman basis |*m* as =*m**m*=|*m*^{m}, where ^{m} are the expansion coefficients, and we assume summation over repeated indices. The superscript index indicates that the ^{m} form a *contravariant* set of tensor components. In the AtomicDensityMatrix package, state kets are represented by a column vector of their coefficients.

Here is a state ket—a *j*=1/2 spin-up state. It is written as a column vector, indicating that it is contravariant.

In[1]:= |

where the D_{m'm}, called the Wigner D-functions, are the matrix elements of in the Zeeman basis. Thus the expansion coefficients transform as (^{m'})^{R}=D_{m'm}^{m}. This is the prototype for the rotation of contravariant tensors.

The rotation operator for a rotation by an angle about an axis is given by , where **J** is the angular-momentum operator. Rather than the axis-angle parameterization, however, arbitrary rotations are commonly expressed in terms of the *Euler angles* , , , as a rotation by about the *z*-axis, followed by a rotation by about the *y*-axis, followed by a rotation by about the *z*-axis: (, , )=*e*^{-i Jz}*e*^{-i Jy}*e*^{-i Jz}.

WignerD gives the matrix elements of (, , ). Here is the rotation matrix for a *j*=1/2 system for a rotation by an angle /2 about the *y*-axis.

In[2]:= |

Out[2]//MatrixForm= | |

Here is the rotation applied to the state, producing a state with spin along the *x*-axis. Operators operate on contravariant states (or irreducible tensors) from the left.

In[3]:= |

Out[3]//MatrixForm= | |

In[4]:= |

Out[4]//MatrixForm= | |

We can check that the state has rotated correctly using the angular-momentum operator in the Cartesian basis.

In[5]:= |

Out[5]= |

Here are the expectation values of the components of the angular-momentum operator for the spin-*z* state.

In[6]:= |

Out[6]= |

In[7]:= |

Out[7]= |

To produce a spin-*y* state, we perform a rotation by -/2 about the *x*-axis, using the Euler angles =-/2, =-/2, =/2.

In[8]:= |

Out[8]//MatrixForm= | |

In[9]:= |

Out[9]= |

A state bra | is expanded as |=*m**m*=_{m}*m*|, where _{m} are the *covariant* expansion coefficients. In the AtomicDensityMatrix package, state bras are represented by the row vector of their coefficients.

In[10]:= |

Out[10]//MatrixForm= | |

Taking the Hermitian conjugate of the expression ^{R}=|, we find how a bra transforms under rotation: . Thus the expansion coefficients of a state bra transform as . This is the prototype for the rotation of covariant tensors.

In the matrix notation used in the package, covariant quantities must be acted on from the right. Thus we use the form of the transformation in which the D-matrix is on the right:

In[11]:= |

Out[11]//MatrixForm= | |

We can also use the form in which the D-matrix is on the right by writing an explicit sum over the components:

In[12]:= |

Out[12]//MatrixForm= | |

In[13]:= |

Out[13]//MatrixForm= | |

Rotations can be thought of as applying to operators rather than states. Performing a rotation on the expectation value of an operator A, we have A^{R}=|^{R}A|^{R}=|^{†}A |=|A^{R}|. Thus the operator transforms as A^{R}=^{†}A .

In[14]:= |

Out[14]= |

The expectation value of the rotated operator with respect to the spin-*z* state is the same as expectation value of the unrotated operator with respect to the spin-*x* state.

In[15]:= |

Out[15]= |

Although the density matrix is an operator, its rotation transformation is the inverse of that for other operators. We can see this by noting that the expectation value of an operator A with respect to a density matrix is given by A=Tr A. Then the expectation value under a rotation is given by A^{R}=Tr A^{R}=Tr ^{†}A=Tr ^{†}A=Tr ^{R}A, so transforms as ^{R}=^{†}.

In[16]:= |

Out[16]//MatrixForm= | |

In[17]:= |

Out[17]= |

In[18]:= |

Out[18]//MatrixForm= | |

In[19]:= |

Out[19]= |

WignerRotate can also be used to rotate operators. However, since the density matrix transforms differently than other operators, the desired transformation must be specified with the option StandardOperator. This should be set to True if an operator other than the density matrix is being rotated, and False if the density matrix (or a state ket or bra) is being rotated. Because we will most commonly be manipulating the density matrix, the default value is StandardOperator->False.

Rotate the density matrix with WignerRotate.

In[20]:= |

Out[20]//MatrixForm= | |

In[21]:= |

Out[21]= |

An irreducible tensor operator of rank is a set of 2 +1 operators (covariant) or A^{q} (contravariant), *q*=-, ..., , that transform under rotations like the Zeeman components of a bra or ket. Thus we have and (A^{q})^{R}=D_{qq'}A^{q'}.

Because irreducible tensor operators also rotate like standard operators, as above, we have and ^{†}A^{q}=D_{qq'}A^{q'}.

WignerEckart supplies the covariant components of an irreducible tensor operator in the spherical basis. Here are the spherical basis components of the angular-momentum operator for a spin-1/2 system.

In[22]:= |

Out[22]//MatrixForm= | |

In[23]:= |

Out[23]//MatrixForm= | |

The components also make up a rank-one irreducible tensor, which can be rotated according to the rule for covariant components, using the rotation matrix for a *j*=1 system. The same result is obtained.

In[24]:= |

Out[24]//MatrixForm= | |

In[25]:= |

Out[25]//MatrixForm= | |

Converting to the Cartesian basis, we see that we have obtained the same result as rotating the Cartesian components of the angular-momentum operator.

In[26]:= |

Out[26]= |

WignerRotate rotates the irreducible tensor operator as it would any irreducible tensor. Because the density matrix is not an irreducible tensor, there is no ambiguity in the transformation properties, and so the setting of StandardOperator is immaterial in this case.

In[27]:= |

Out[27]//MatrixForm= | |

For the components of the angular-momentum operator in the Cartesian basis, J_{i} the relationship ^{†}A^{q}=D_{qq'}A^{q'} given above becomes ^{†}J_{i}=R_{ik}J_{k}, where R is the rotation matrix for classical Cartesian vectors. We can use this to derive the classical rotation matrix. If |*x*_{1}, |*x*_{2}, |*x*_{3} are spinors pointing along the three Cartesian axes, then we have

In[28]:= |

Out[28]//MatrixForm= | |

In[29]:= |

Out[29]//MatrixForm= | |

In[30]:= |

Out[30]//MatrixForm= | |

The polarization operators , with =0, ..., 2*j*, make up a complete set of basis operators for a system with angular momentum *j*. Any operator can be expanded in terms of the polarization operators. For example, the density matrix is expanded as , where ^{q} are the *polarization moments*.

The four polarization operators for a spin-1/2 system: one rank-zero operator, and three rank-one operators.

In[31]:= |

Out[31]= |

In[32]:= |

Out[32]= |

In[33]:= |

Out[33]= |

The polarization moments form an irreducible tensor, and ^{q} transform as a contravariant set. To see this, we consider a rotation of the density matrix, and then expand over the polarization operators: , so that the polarization moments transform as (^{q'})^{R}=D_{q'q}^{q}.

The polarization moments of each rank transform according to the rotation matrix for angular momentum *j*=. Here we perform a rotation about the *y*-axis.

In[34]:= |

Out[34]= |

In[35]:= |

Out[35]//MatrixForm= | |

In[36]:= |

Out[36]= |

In[37]:= |

Out[37]= |

As we saw above, the transformation under rotation for the density matrix is the inverse of that for other operators. For an expansion of an operator other than the density matrix, we have . Thus the expansion coefficients of a standard operator transform as .

Perform the polarization-moment expansion for each spherical component of the angular-momentum operator.

In[38]:= |

Out[38]//MatrixForm= | |

In[39]:= |

Out[39]//MatrixForm= | |

In[40]:= |

Out[40]//MatrixForm= | |

In order to use WignerRotate to perform the rotation, the option StandardOperator must be set to True, to distinguish this rotation from that of the polarization moments of the density matrix.

In[41]:= |

Out[41]//MatrixForm= | |

Rotation matrices for systems consisting of more than one level can be constructed by giving the level specification as an argument to WignerD or WignerRotate.

In[42]:= |

Out[42]= |

In[43]:= |

Out[43]//MatrixForm= | |