Condon-Shortley (1935)

Summary

Condon and Shortley's angular-momentum operators and definition of the spherical harmonics agree with the definition used in the SphericalFunctions package.

Condon and Shortley's "The Theory Of Atomic Spectra" is the standard reference for the "Condon-Shortley phase convention". Though some references are not very clear about precisely what they mean by that phrase, it seems clear that the original meaning revolved around the idea that the angular-momentum raising and lowering operators have eigenvalues that are real and positive when acting on the spherical harmonics. Specifically, they discuss the phase ambiguity of the eigenfunction $ψ$ — which includes spherical harmonics indexed by $j$ and $m$ for the angular part — in section 3³ (page 48). This culminates in Eq. (3) of that section, which is as explicit as they get:

\[\left( J_x \pm i J_y \right) ψ(γ j m) = \hbar \sqrt{(j \mp m)(j \pm m + 1)} ψ(γ j m \pm 1).\]

This eliminates any relative phase ambiguity between modes with neighboring $m$ values, and specifically determines what factors of $(-1)^m$ should be included in the definition of the spherical harmonics.

To avoid re-introducing ambiguity, we can just look at the actual spherical harmonics they define. The method we use here is as direct and explicit as possible. We will quote them and implement them below. In particular, Condon and Shortley provide a formula for the φ=0 part in terms of iterated derivatives of a power of sin(θ). Rather than expressing these derivatives in terms of the Legendre polynomials — which would subject us to another round of ambiguity — we will use automatic differentiation to compute the derivatives explicitly.

Condon and Shortley are not very explicit about the meaning of the spherical coordinates, but they do describe them as "spherical polar coordinates $r, θ, φ$". Immediately before equation (1) of section 4³ (page 50), they define the angular-momentum operator

\[L_z = -i \hbar \frac{\partial}{\partial φ},\]

which agrees with our expression. This is followed by equation (8):

\[\begin{aligned} L_x + i L_y &= \hbar e^{iφ} \left( \frac{\partial}{\partial θ} + i \cot θ \frac{\partial}{\partial φ} \right) \\ L_x - i L_y &= \hbar e^{-iφ} \left( -\frac{\partial}{\partial θ} + i \cot θ \frac{\partial}{\partial φ} \right), \end{aligned}\]

which also agrees with our results. We can infer that the definitions of the spherical coordinates are consistent with ours.

Condon and Shortley do not give an expression for the Wigner D-matrices.

Implementing formulas

We begin by writing code that implements the formulas from Condon-Shortley. We encapsulate the formulas in a module so that we can test them against the SphericalFunctions package.

module CondonShortley

We'll also use some predefined utilities to make the code look more like the equations, and ForwardDiff to evaluate the derivatives in the angular-momentum operators.

import ..ConventionsUtilities: 𝒾, ❗, dʲsin²ᵏθdcosθʲimport ForwardDiff

Condon-Shortley include $\hbar$, so we will include it in the expressions, but we will set it to 1 to match the conventions of the SphericalFunctions package.

const ħ = 1

Equation (12) of section 4³ (page 51) writes the solution to the three-dimensional Laplace equation in spherical coordinates as

\[ψ(γ, ℓ, m_ℓ) = B(γ, ℓ) \Theta(ℓ, m_ℓ) \Phi(m_ℓ),\]

where $B$ is independent of $θ$ and $φ$, and $γ$ represents any number of eigenvalues required to specify the state. More explicitly, below Eq. (5) of section 5⁵ (page 127), they specifically define the spherical harmonics as

\[ϕ(ℓ, m_ℓ) = \Theta(ℓ, m_ℓ) \Phi(m_ℓ).\]

One quirk of their notation is that the dependence on $θ$ and $φ$ is implicit in their functions; we make it explicit, as Julia requires:

function 𝜙(ℓ, mₗ, 𝜃, φ)    Θ(ℓ, mₗ, 𝜃) * Φ(mₗ, φ)end

The $φ$ part is given by equation (5) of section 4³ (page 50):

\[\Phi(m_ℓ) = \frac{1}{\sqrt{2π}} e^{i m_ℓ φ}.\]

Again, we make the dependence on $φ$ explicit, and we capture its type to ensure that we don't lose precision when converting π to a floating-point number.

function Φ(mₗ, φ::T) where {T}    1 / √(2T(π)) * exp(𝒾 * mₗ * φ)end

Equation (15) of section 4³ (page 52) gives the $θ$ dependence as

\[\Theta(ℓ, m) = (-1)^ℓ \sqrt{\frac{(2ℓ+1)}{2} \frac{(ℓ+m)!}{(ℓ-m)!}} \frac{1}{2^ℓ ℓ!} \frac{1}{\sin^m θ} \frac{d^{ℓ-m}}{d(\cos θ)^{ℓ-m}} \sin^{2ℓ}θ.\]

Again, we make the dependence on $θ$ explicit, and we capture its type to ensure that we don't lose precision when converting the factorials to a floating-point number.

function Θ(ℓ, m, 𝜃::T) where {T}    (-1)^ℓ * T(√(((2ℓ+1) * (ℓ+m)❗) / (2 * (ℓ - m)❗)) * (1 / (2^ℓ * (ℓ)❗))) *    (1 / sin(𝜃)^T(m)) * dʲsin²ᵏθdcosθʲ(j=ℓ-m, k=ℓ, θ=𝜃)end

It may be helpful to check some values against explicit formulas for the first few spherical harmonics as given by Condon-Shortley in the footnote to Eq. (15) of Sec. 4³ (page 52). Note the subtle difference between the character Θ defining the function above and its variant, the character ϴ, defining the function below.

ϴ(ℓ, m, 𝜃) = ϴ(Val(ℓ), Val(m), 𝜃)ϴ(::Val{0}, ::Val{0}, 𝜃) = √(1/2)ϴ(::Val{1}, ::Val{0}, 𝜃) = √(3/2) * cos(𝜃)ϴ(::Val{2}, ::Val{0}, 𝜃) = √(5/8) * (2cos(𝜃)^2 - sin(𝜃)^2)ϴ(::Val{3}, ::Val{0}, 𝜃) = √(7/8) * (2cos(𝜃)^3 - 3cos(𝜃)sin(𝜃)^2)ϴ(::Val{1}, ::Val{+1}, 𝜃) = -√(3/4) * sin(𝜃)ϴ(::Val{1}, ::Val{-1}, 𝜃) = +√(3/4) * sin(𝜃)ϴ(::Val{2}, ::Val{+1}, 𝜃) = -√(15/4) * cos(𝜃) * sin(𝜃)ϴ(::Val{2}, ::Val{-1}, 𝜃) = +√(15/4) * cos(𝜃) * sin(𝜃)ϴ(::Val{3}, ::Val{+1}, 𝜃) = -√(21/32) * (4cos(𝜃)^2*sin(𝜃) - sin(𝜃)^3)ϴ(::Val{3}, ::Val{-1}, 𝜃) = +√(21/32) * (4cos(𝜃)^2*sin(𝜃) - sin(𝜃)^3)ϴ(::Val{2}, ::Val{+2}, 𝜃) = √(15/16) * sin(𝜃)^2ϴ(::Val{2}, ::Val{-2}, 𝜃) = √(15/16) * sin(𝜃)^2ϴ(::Val{3}, ::Val{+2}, 𝜃) = √(105/16) * cos(𝜃) * sin(𝜃)^2ϴ(::Val{3}, ::Val{-2}, 𝜃) = √(105/16) * cos(𝜃) * sin(𝜃)^2ϴ(::Val{3}, ::Val{+3}, 𝜃) = -√(35/32) * sin(𝜃)^3ϴ(::Val{3}, ::Val{-3}, 𝜃) = +√(35/32) * sin(𝜃)^3

The angular-momentum operators are given just before equation (1) and in equation (8) of section 4³ (pages 50 and 51). Note that we defined $\hbar = 1$ above. Each operator takes a function f(𝜃, φ) and returns a new function, with the derivatives evaluated by forward-mode automatic differentiation.

∂𝜃(f) = (𝜃, φ) -> ForwardDiff.derivative(𝜃′ -> f(𝜃′, φ), 𝜃)∂φ(f) = (𝜃, φ) -> ForwardDiff.derivative(φ′ -> f(𝜃, φ′), φ)L_z(f) = (𝜃, φ) -> -𝒾 * ħ * ∂φ(f)(𝜃, φ)L₊(f) = (𝜃, φ) -> ħ * exp(𝒾 * φ) * (∂𝜃(f)(𝜃, φ) + 𝒾 * cot(𝜃) * ∂φ(f)(𝜃, φ))L₋(f) = (𝜃, φ) -> ħ * exp(-𝒾 * φ) * (-∂𝜃(f)(𝜃, φ) + 𝒾 * cot(𝜃) * ∂φ(f)(𝜃, φ))

Condon and Shortley do not give an expression for the Wigner D-matrices, but the convention for spherical harmonics is what they are known for, so this will suffice.

end  # module CondonShortley

Tests

We can now test the functions against the equivalent functions from the SphericalFunctions package. We will need to test approximate floating-point equality, so we set absolute and relative tolerances (respectively) in terms of the machine epsilon:

ϵₐ = 100eps()ϵᵣ = 1000eps()

The explicit formulas will be a good preliminary test. In this case, the formulas are only given up to

ℓₘₐₓ = 3

so we test up to that point, and just compare the general form to the explicit formulas — again, noting the subtle difference between the characters Θ and ϴ. Note that the $1/\sin θ$ factor in the general form will cause problems at the poles, so we avoid the poles by using βrange with a small offset:

for θ ∈ θrange(rng; avoid_poles=ϵₐ/10)    for (ℓ, m) ∈ ℓmrange(ℓₘₐₓ)        @test CondonShortley.ϴ(ℓ, m, θ) ≈ CondonShortley.Θ(ℓ, m, θ) atol=ϵₐ rtol=ϵᵣ    endend

Finally, we can test Condon-Shortley's full expressions for spherical harmonics against the SphericalFunctions package. We will only test up to

ℓₘₐₓ = 4

because near the poles the literal formula divides a nearly vanishing high-order derivative by a power of the small quantity $\sin θ$, and so loses precision as $ℓ$ grows. This will be sufficient to sort out any sign or normalization differences, which are the most likely source of error.

for (θ, ϕ) ∈ θϕrange(rng; avoid_poles=ϵₐ/40)    for (ℓ, Yˡ) ∈ SphericalFunctions.YlmCalculator(θ, ϕ, ℓₘₐₓ), m ∈ -ℓ:ℓ        @test CondonShortley.𝜙(ℓ, m, θ, ϕ) ≈ Yˡ[m] atol=ϵₐ rtol=ϵᵣ    endend

Now the operators. Applying Eq. (8) to Condon and Shortley's spherical harmonics must reproduce Eq. (3), the relation that fixes their phase convention, and $L_z$ must have eigenvalue $m$. At the edges $m = ±ℓ$ the raised or lowered function must vanish. The operators involve $\cot θ$, so we avoid the poles, and — as on the Goldberg et al. page — evaluate in BigFloat arithmetic to keep the rounding errors amplified near the poles below Float64 precision.

for (θ, ϕ) ∈ ((big(θ), big(ϕ)) for (θ, ϕ) ∈ θϕrange(rng, Float64, 5; avoid_poles=1e-3))    for (ℓ, m) ∈ ℓmrange(ℓₘₐₓ)        𝜙ₗₘ = (θ, ϕ) -> CondonShortley.𝜙(ℓ, m, θ, ϕ)        @test CondonShortley.L_z(𝜙ₗₘ)(θ, ϕ) ≈ m * 𝜙ₗₘ(θ, ϕ) atol=ϵₐ rtol=ϵᵣ        if m < ℓ            @test CondonShortley.L₊(𝜙ₗₘ)(θ, ϕ) ≈                √((ℓ-m) * (ℓ+m+1)) * CondonShortley.𝜙(ℓ, m+1, θ, ϕ) atol=ϵₐ rtol=ϵᵣ        else            @test CondonShortley.L₊(𝜙ₗₘ)(θ, ϕ) ≈ 0 atol=ϵₐ        end        if m > -ℓ            @test CondonShortley.L₋(𝜙ₗₘ)(θ, ϕ) ≈                √((ℓ+m) * (ℓ-m+1)) * CondonShortley.𝜙(ℓ, m-1, θ, ϕ) atol=ϵₐ rtol=ϵᵣ        else            @test CondonShortley.L₋(𝜙ₗₘ)(θ, ϕ) ≈ 0 atol=ϵₐ        end    endend

These successful tests show that the function $ϕ$ defined by Condon and Shortley agrees with the spherical harmonics defined by the SphericalFunctions package, and that their angular-momentum operators act on it exactly as their Eq. (3) requires.


This page was generated using Literate.jl.