# Is there a simple way to calculate Clebsch-Gordan coefficients?

I was reading angular momenta coupling when I came across these CG coefficients, there is a table in Griffith's but doesn't help much.

• For users Mathematica v11.3 just call ClebschGordan[{j1,m1},{j2, m 2]},{j,m}] Commented Nov 26, 2018 at 20:31
• or the link wolframalpha.com/input/?i=Clebsch-Gordan+calculator&lk=3 but if using an explicit formula it rapidly becomes overwhelming to do this by hand. Commented Nov 26, 2018 at 20:44
• Commented Nov 26, 2018 at 22:20

## 3 Answers

It might depend on your definition of "simple".

For easy cases (low numbers, direct steps), yes, it is simple. However, it gets complicated too fast. What we do is: calculate only the easy ones, and let the rest for computers. I really encourage you to do this.

The trick is: at the top of the ladder, there is only one possibility, except for a global phase factor. For example:

$$| j_1 \ j_2 ; m_1 m_2 \rangle = |1\ ½; \ 1 \ ½\rangle$$ can only be one possibility: $$|J \ M\rangle= |3/2\quad 3/2\rangle$$

BEcause it is the maximum value of both $$j_1$$ and $$j_2$$. They can only yield the maximum $$J,M$$.

So we know one equivalence:

$$|1\ ½; \ 1 \ ½\rangle \equiv|3/2\quad 3/2\rangle$$

or, if you want,

$$|1\ ½; \ 1 \ ½\rangle \equiv 1\cdot|3/2\quad 3/2\rangle$$

I know, I know, except for a phase factor, but let's ignore that.

So, what do we do now? We apply $$J_-$$ at both sides of the equation.

On the one hand, $$J_-=J_{1-}+J_{2-}$$, so we know what it does:

$$J_- |1\ ½; \ 1 \ ½\rangle = J_{1-}|1\ 1\rangle +J_{2-}|½\ ½\rangle$$ (carry on yourself).

On the other hand, the result is also an angular momentum, so:

$$J_- | 3/2 \quad 3/2\rangle = \hbar\sqrt{3/2\cdot(3/2+1)-3/2\cdot(3/2-1)} \ \ |3/2 \quad ½\rangle$$

So, equating both sides, you can get

$$|3/2 \quad ½\rangle$$ as a function of $$|1\ ½; \ 1 \ -½\rangle$$ and $$|1\ ½; \ 0 \ ½\rangle$$.

You can get an orthogonal vector to that one, so you complete the sub-space.

Now, you can keep applying $$J_{-}$$ to both of them. Like that, you get all C-G coefficients.

Of course, you can also start by the bottom of the ladder and go upside with $$J_+$$.

This is the standard procedure. You do it once with the simplest case (for example, two ½ spins). Then, you make the computer program and breath. By the way, there are already many of them, even online.

Is there a simple way to calculate Clebsch-Gordan coefficients?

No, or at least nothing that any working human would qualify as "simple" and that will work for any general Clebsch-Gordan coefficient.

The closest you can get in the general case is given in this Wikipedia page, which puts them as \begin{aligned} \langle j_{1},j_{2};m_{1},m_{2}|j_{1},j_{2};J,M\rangle =\ &\delta _{M,m_{1}+m_{2}}{\sqrt {\frac {(2J+1)(J+j_{1}-j_{2})!(J-j_{1}+j_{2})!(j_{1}+j_{2}-J)!}{(j_{1}+j_{2}+J+1)!}}}\ \times \\&{\sqrt {(J+M)!(J-M)!(j_{1}-m_{1})!(j_{1}+m_{1})!(j_{2}-m_{2})!(j_{2}+m_{2})!}}\ \times \\&\sum _{k}{\frac {(-1)^{k}}{k!(j_{1}+j_{2}-J-k)!(j_{1}-m_{1}-k)!(j_{2}+m_{2}-k)!(J-j_{2}+m_{1}+k)!(J-j_{1}-m_{2}+k)!}}. \end{aligned} That's an explicit expression (so, hoorah), but it's not something that's usable by any human metric.

If you actually want to calculate them on your own from scratch, then let the DLMF lay out the efficient and stable methods of computation:

Methods of computation for 3j and 6j symbols include recursion relations, see [references]; summation of single-sum expressions for these symbols, see [references]; evaluation of the generalized hypergeometric functions of unit argument that represent these symbols, see [references].

But, really: no one calculates CG coefficients, or at least no one who isn't intentionally doing more calculations than they need to or actively developing scientific code on a new platform. Instead, if we want explicit analytical values, we go to the existing tables (like the one in Wikipedia or the one in Griffiths or Edmonds or any other angular-momentum-in-QM book. If we want a software implementation, we just take one of the many existing robust implementations: this not only solves the trivial problem that the task of writing is much simpler, but it also covers the much more important aspect that bugs are minimized and testing of the code is no longer necessary.

For a birds-eye view of good sources for code, see this list of papers, or the DLMF software index, which includes a bunch of books and open-source and proprietary software suites that can calculate them:

Although there are already great answers by FGSUZ and Emilio, I still want to provide a more comprehensive explanation, basically a more detailed version of FGSUZ's answer. Once you understand it, the process is standard and simple in terms of operations you have to follow. However, the calculation is tedious and hard.

Starting Point: Definition

To make notations simpler, we let $$\hbar=1$$ in the content below.

Given two particles, let us assume they are distinguishable since constraints of indistinguishability can be imposed by restricting linear combinations of distinguishable states. For the first particle, let its angular momentum be characterized by $$L_1=\big\{|j_1,m_1\rangle \big| m_1 \in \{j_1,j_1-1,\cdots,-j_1\}\big\}$$ with the angular momentum operators $$J_{1x}$$, $$J_{1y}$$, $$J_{1z}$$ as usual, and for the second particle, its angular momentum is characterized by $$L_2=\big\{|j_2,m_2\rangle\big|m_2 \in \{j_2,j_2-1,\cdots,-j_2\}\big\}$$ with the angular momentum operators $$J_{2x}$$, $$J_{2y}$$, $$J_{2z}$$. Hence, we can make the composite states by the direct product of two sets, namely, $$L=\big\{|j_1,j_2;m_1,m_2\rangle=|j_1,m_1\rangle \otimes |j_2,m_2\rangle\big||j_1,m_1\rangle \in L_1, |j_2,m_2\rangle \in L_2\big\}$$ So how to construct the angular momentum operators for composite states? To answer this question, we consider the physical meaning of angular momentum operators: they are generators of rotation on states. Take $$|j_1,m_1\rangle$$ as an example. A rotation around the axis $$\hat{n}=(n_x,n_y,n_z)$$ for $$\theta$$ degrees on $$|j_1,m_1\rangle$$ would make it become $$e^{-i \theta \hat{n} \cdot \hat{J}_1}|j_1,m_1\rangle:=e^{-i \theta (n_xJ_{1x}+n_yJ_{1y}+n_zJ_{1z})}|j_1,m_1\rangle$$ and thus, for example, the angular momentum operator of the $$z$$-axis can be recovered by $$J_{1z}=\lim_{\theta \rightarrow 0}{{i \over \theta}\big(e^{-i\theta J_{1z}}-I_1\big)}$$ where $$I_1$$ is the identity operator for the first particle. Since rotation on composite states gives us $$(e^{-i \theta \hat{n} \cdot \hat{J}_1}|j_1,m_1\rangle) \otimes (e^{-i \theta \hat{n} \cdot \hat{J}_2}|j_2,m_2\rangle)$$, for example, we can recover the momentum operator around $$z$$-axis for composite states with $$J_z:=\lim_{\theta \rightarrow 0}{{i \over \theta}\big(e^{-i\theta J_{1z}}\otimes e^{-i\theta J_{2z}}-I_1\otimes I_2\big)}=J_{1z} \otimes I_2+I_1 \otimes J_{2z}$$ where $$I_2$$ is the identity operator for the second particle. Therefore, we are inspired to define the angular momentum operators on composite states \begin{align} J_x & = J_{1x} \otimes I_2+I_1 \otimes J_{2x} \tag{1.a} \\ J_y & = J_{1y} \otimes I_2+I_1 \otimes J_{2y} \tag{1.b} \\ J_z & = J_{1z} \otimes I_2+I_1 \otimes J_{2z} \tag{1.c} \end{align} and define \begin{align} J_+ & = J_x+iJ_y \tag{2.a} \\ J_- & = J_x-iJ_y \tag{2.b} \end{align} It is not hard to show $$J_k$$'s satisfy the algebra $$[J_i,J_j]=i\varepsilon_{ijk}J_k \tag{3.a}$$ and \begin{align} J_+J_- & = J_x^2+J_y^2+J_z \tag{3.b} \\ J_-J_+ & = J_x^2+J_y^2-J_z \tag{3.c} \end{align} as we expect how "regular" angular momentum operators should behave.

What are CG Coefficients?

With the definition from the first part, we can write $$J^2=J_x^2+J_y^2+J_z^2$$ and $$J_z$$ in the matrix form given the basis $$L$$. The motivation of doing so will later be evident.

As the point to start with, it is a good idea for us to check the size of such matrices and how they look like. Since in the set $$L$$, there are $$(2j_1+1)$$ choices from $$L_1$$ and $$(2j_2+1)$$ choices from $$L_2$$, $$J^2$$ and $$J_z$$ have the size $$(2j_1+1)(2j_2+1)\times(2j_1+1)(2j_2+1)$$. About how these matrices look like, while $$J_z$$ is diagonalized, $$J^2$$ is not. This is unlike $$J_1^2$$ (or $$J_2^2$$) when expressed with $$L_1$$ (or $$L_2$$). In these cases, $$J_1^2$$ (or $$J_2^2$$) and $$J_{1z}$$ (or $$J_{2z}$$) are simultaneously diagonalized by the basis $$L_1$$ (or $$L_2$$). It also implies $$L_1$$ and $$L_2$$ are "good" bases since applications of $$J_{1\pm}$$ (or $$J_{2\pm}$$) on $$L_1$$ (or $$L_2$$) give states which remain in $$L_1$$ (or $$L_2$$).

Therefore, a natural question arises: how to express a "good" basis for $$J^2$$ and $$J_z$$ in terms of states from $$L$$? Or, equivalently, we are seeking for a basis \begin{align} \tilde{L} = \big\{|j,m\rangle & =\sum_{j_1,j_2,m_1,m_2}{\alpha_{j_1,j_2,m_1,m_2}^{jm}|j_1,j_2;m_1,m_2\rangle} \\ & \big|J^2|j,m\rangle=j(j+1)|j,m\rangle,J_z|j,m\rangle=m|j,m\rangle\big\} \end{align} Since this is nothing but simultaneous diagonalization of $$J^2$$ and $$J_z$$, the CG coefficients are the entries of unitary matrices which satisfy the requirement.

How to Derive CG Coefficients?

After this conceptual introduction, we come to the crucial part: construct the eigenstates of $$J$$ and $$J_z$$ with $$|j_1,j_2;m_1,m_2\rangle$$'s. For simplicity, we assume $$j_1 \geq j_2$$ and define the sets $$S_n=\big\{|\psi\rangle=\sum_{m_1,m_2}{\alpha_{m_1,m_2}|j_1,j_2;m_1,m_2\rangle}\big|m_1+m_2=n\big\}$$ where $$n \in \{j_1+j_2,j_1+j_2-1,\cdots,-j_1-j_2\}$$. That is to say, $$S_n$$ is the set of wavefunctions with the eigenvalue $$n$$ under the action of $$J_z$$. There are two important points about $$S_n$$'s:

1. $$\dim(S_n)=2(j_1+j_2)+1-|n-2j_2|-|n+2j_2|$$
2. Given any two states $$|\psi\rangle \in S_m$$ and $$|\phi\rangle \in S_n$$ where $$m \neq n$$, $$|\psi\rangle$$ and $$|\phi\rangle$$ are orthogonal.

Now we are ready to construct the simultaneous eigenstates of $$J$$ and $$J_z$$. Starting from the state $$|j_1,j_2;j_1,j_2\rangle$$, we consider a sequence of states generated by $$J_-$$, $$|j_1+j_2,j_1+j_2\rangle=|j_1,j_2;j_1,j_2\rangle,J_-|j_1,j_2;j_1,j_2\rangle,(J_-)^2|j_1,j_2;j_1,j_2\rangle,\cdots \tag{4}$$ We notice for any $$t \geq 1$$:

1. As a result from Eq. (2.b) and Eq. (3.a), $$(J_-)^t|j_1,j_2;j_1,j_2\rangle$$, if nonzero, has the eigenvalue $$j_1+j_2-t$$ under the action of $$J_z$$.
2. Since $$J_-$$ and $$J^2=J_x^2+J_y^2+J_z^2$$ commute from Eq. (2.b) and Eq. (3.a), $$(J_-)^{t}|j_1,j_2;j_1,j_2\rangle$$, if nonzero, still has the same total angular momentum $$j_1+j_2$$.
3. If $$t \leq 2(j_1+j_2)$$, $$(J_-)^t|j_1,j_2;j_1,j_2\rangle$$ is nonzero.

The fifth point is from $$\begin{split} |(J_-)^t|j_1,j_2;j_1,j_2\rangle|^2 & = \langle j_1,j_2;j_1,j_2|(J_+)^t(J_-)^t|j_1,j_2;j_1,j_2\rangle \\ & = \langle j_1,j_2;j_1,j_2|(J_+)^{t-1}(J^2-J_z^2+J_z)(J_-)^{t-1}|j_1,j_2;j_1,j_2\rangle \end{split}$$ which is nonzero if $$t \leq 2(j_1+j_2)$$ from 4. Therefore, we have already constructed $$2(j_1+j_2)+1$$ simultaneous eigenvectors of $$J$$ and $$J_z$$ \begin{align} & |j_1+j_2,j_1+j_2\rangle =|j_1,j_2;j_1,j_2\rangle \\ & |j_1+j_2,j_1+j_2-1\rangle ={1 \over N_{1,j_1+j_2}}J_-|j_1,j_2;j_1,j_2\rangle \\ & |j_1+j_2,j_1+j_2-2 \rangle ={1 \over N_{2,j_1+j_2}}(J_-)^2|j_1,j_2;j_1,j_2\rangle \\ & \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \ \vdots \\ & |j_1+j_2,-j_1-j_2 \rangle ={1 \over N_{2(j_1+j_2),j_1+j_2}} (J_-)^{2(j_1+j_2)}|j_1,j_2;j_1,j_2\rangle \tag{5} \end{align} where $$N_{m,j_1+j_2}$$'s are some normalization factors.

To proceed on the eigenstates of $$J$$ and $$J_z$$ with the total angular momentum $$j_1+j_2-1$$, we notice $$\dim(S_{j_1+j_2-1})=2$$ from 2. Therefore, we can take the normalized state $$|\psi\rangle \in S_{j_1+j_2-1}$$ orthogonal to $$J_-|j_1,j_2;j_1,j_2\rangle$$, which is also the only left degree of freedom in $$S_{j_1+j_2-1}$$, and we have $$J_z|\psi\rangle=(j_1+j_2-1)|\psi\rangle \tag{6}$$ and since $$\langle j_1+j_2,j_1+j_2|J_+|\psi\rangle = \big(J_-|j_1+j_2,j_1+j_2\rangle\big)^{\dagger}|\psi\rangle = 0 \tag{7}$$ we know $$J_+|\psi\rangle=0$$, and $$J^2|\psi\rangle=(j_1+j_2-1)(j_1+j_2)|\psi\rangle$$. Therefore, $$|\psi\rangle=|j_1+j_2-1,j_1+j_2-1\rangle \tag{8}$$ and through actions of $$J_-$$ on $$|j_1+j_2-1,j_1+j_2-1\rangle$$, we get another $$2(j_1+j_2-1)+1$$ states in $$\tilde{L}$$. Also, the states constructed from $$|j_1+j_2,j_1+j_2\rangle$$ and those from $$|j_1+j_2-1,j_1+j_2-1\rangle$$ are orthogonal to each other since \begin{align} \big(\langle j_1+j_2,m'|J^2\big)|j_1+j_2-1,m\rangle & = (j_1+j_2)(j_1+j_2+1)\langle j_1+j_2,m'|j_1+j_2-1,m\rangle \\ \langle j_1+j_2,m'|\big(J^2|j_1+j_2-1,m\rangle\big) & = (j_1+j_2-1)(j_1+j_2)\langle j_1+j_2,m'|j_1+j_2-1,m\rangle \tag{9} \end{align} As we continued, with $$\text{dim}(S_{j_1+j_2-2})=3$$, we can take the only left normalized state $$|j_1+j_2-2,j_1+j_2-2\rangle \in S_{j_1+j_2-2}$$, which is orthogonal to $$(J_-)^2|j_1+j_2,j_1+j_2\rangle$$ and $$J_-|j_1+j_2-1,j_1+j_2-1\rangle$$, and keeps constructing another $$2(j_1+j_2-2)+1$$ states in $$\tilde{L}$$.

The process proceeds similarly until we arrive at the set $$S_{2j_2}$$, whose dimension is $$2(j_1-j_2)+1$$, and note that $$\dim(S_n)=2(j_1+j_2)+1$$ for any $$|n| \leq 2j_2$$. So the construction stops, and the total number of states in $$\tilde{L}$$ we have found is \begin{align} \big(2(j_1+j_2)+1\big) & +\big(2(j_1+j_2-1)+1\big)+\big(2(j_1+j_2-2)+1\big)+\cdots+\big(2(j_1-j_2)+1\big) \\ & = (2j_1+1)(2j_2+1) \tag{10} \end{align} as expected. This is in principle how you can compute CG coefficients for any two composite states of angular momentum operators.