# Quantum-Mechanical Rotations

Rotation of state bras and kets | Rotation of polarization moments |

Rotation of operators | Rotating larger systems |

Rotation of irreducible tensor operators |

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 -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. To use either the built-in function or the ADM version, just use the appropriate syntax. 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 -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 -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 RotationSense 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 | |

RotationSense | "Active" | sense of the rotation |

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

Options for WignerRotate.

## Rotation of state bras and kets

### Kets

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

A rotation of into a rotated ket is accomplished by the rotation operator :

where the , called the Wigner -functions, are the matrix elements of in the Zeeman basis. Thus the expansion coefficients transform as . 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 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 -axis, followed by a rotation by about the -axis, followed by a rotation by about the -axis: .

WignerD gives the matrix elements of . Here is the rotation matrix for a system for a rotation by an angle about the -axis. |

WignerRotate can be used to accomplish this rotation in one step. |

### Bras

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

Taking the Hermitian conjugate of the expression , 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.

WignerRotate can again be used to perform the rotation. |

## Rotation of operators

### Standard operators

Rotations can be thought of as applying to operators rather than states. Performing a rotation on the expectation value of an operator , we have . Thus the operator transforms as .

### The density matrix

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 with respect to a density matrix is given by . Then the expectation value under a rotation is given by , so ρ transforms as .

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. |

Rotate the angular-momentum operator using the option StandardOperator->True. |

## Rotation of irreducible tensor operators

An irreducible tensor operator of rank is a set of operators (covariant) or (contravariant), , that transform under rotations like the Zeeman components of a bra or ket. Thus we have and .

Because irreducible tensor operators also rotate like standard operators, as above, we have and .

One example of an irreducible tensor operator is a vector operator written in the spherical basis.

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. |

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. |

For the components of the angular-momentum operator in the Cartesian basis, the relationship given above becomes , where is the rotation matrix for classical Cartesian vectors. We can use this to derive the classical rotation matrix. If , , are spinors pointing along the three Cartesian axes, first note that

where is the angular-momentum quantum number. For example, with :

Find the same matrix using the built-in RotationMatrix function for rotations around , , and . |

## Rotation of polarization moments

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

The polarization moments form an irreducible tensor, and 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 .

Perform the rotation using WignerRotate. |

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 .

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. |

## Rotating larger systems

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.