## PartialWaveFunctions.jl

Partial Wave Analysis specific special funtions
Author mmikhasenko
Popularity
2 Stars
Updated Last
1 Year Ago
Started In
May 2020

# PartialWaveFunctions

Julia native implementation of the special functions used in the Partial Wave Analysis for High Energy Physics. Currently, Wigner D-functions and Clebsch-Gordan(CG) coefficients are available. The implementation of the CG coefficient is by factor 4 faster than the C++ code from the GSL package (see details in test/timing).

## Installation

`] add PartialWaveFunctions`

## Usage

```using PartialWaveFunctions

# convenient call for integer indices
let j=3, (m1,m2) = (1,-1), cosθ=0.3
wignerd(j,m1,m2,cosθ)
end # return 0.293

clebschgordan(1,0,1,0,1,0) # <1, 0; 1, 0 | 1, 0> = 0.0 : ρ⁰ → π⁰ π⁰
CG(1,0,1,0,1,0) # a shortcut```

General implementation includes the half-integer indices:

```let two_j=3, (two_m1,two_m2) = (1,-1), cosθ=0.3
wignerd_doublearg(two_j,two_m1,two_m2, cosθ)
end # return -0.562

clebschgordan_doublearg(2,0,1,1,1,1) # <1, 0; 1/2, 1/2 | 1/2, 1/2> = -0.577
CG_doublearg(2,0,1,1,1,1) # a shortcut```

## Related packages:

• python calls via `SymPy.jl`. Ideal for symbolic calculations. Works pretty with jupyter notebooks due to the latex output. See details in the test/physics.
• WignerD.jl interfaces `Fortran` for the `WignerD`.
• WignerSymbols.jl `Julia` package specialized on Symbols. Particularly it contains the Clebsch-Gordan coefficients.
• GSL.jl interfaces `C++`. It can calculate Sperical Harmionics, Legendre polynomials. `WignerD` is not wrapped-up.

## References

• The Wigner functions are expressed via the Jacobi polynomials Pₙ⁽ᵃᵇ⁾(z) using Eq. (3.74) of L. Biedenharn, J. Louck, and P. Carruthers, Angular Momentum in Quantum Physics: Theory and Application
• The Jacobi polynomials Pₙ⁽ᵃᵇ⁾(z) are codded using a series expression in powers of (1-z), see e.g. wikipedia page.
• Clebsch-Gordan coefficients are computed from explicit expression via a finite series, see e.g. wikipedia page