Vector Coupling

Triangle condition

CamiMath.istriangleMethod
istriangle(a::Real, b::Real, c::Real)

Triangle condition for a triangle of sides a, b and c.

Example:

julia> istriangle(3, 4, 5)
true

julia> istriangle(1//2, 1, 1.5)
true
source

Triangle coefficient

CamiMath.triangle_coefficientMethod
triangle_coefficient(a::Real, b::Real, c::Real)

Triangle coefficient for a triangle of sides a, b and c,

\[ \Delta(abc)\equiv\frac{(a+b-c)!(b+c-a)!(c+a-b)!}{(a+b+c+1)!}\]

Triangle condition satisfied for $\Delta > 0$

Examples:

julia> triangle_coefficient(3, 4, 5)
1//180180

julia> triangle_coefficient(1//2, 1, 1.5)
1//12
source

Three-J-symbols

CamiMath.threeJsymbolMethod
threeJsymbol(j1::Real, m1::Real, j2::Real, m2::Real, j3::Real, m3::Real [; msg=true])

Wigner 3j symbol. This is a vector coupling coefficient with optimized symmetry properties. The 3j symbols are zero unless $Δ(j_{1},j_{2},j_{3})>0$ (triangle inequality holds) and $m_{1}+m_{2}+m_{3}=0$. The implementation is based on the Racah formula:

\[\left(\begin{array}{ccc} j_{1} & j_{2} & j_{3}\\ m_{1} & m_{2} & m_{3} \end{array}\right)= (-1)^{j_{1}-j_{2}-m_{3}}\sqrt{\Delta(j_{1}j_{2}J)}\\\times \sqrt{\left(j_{1}+m_{1}\right)! \left(j_{1}-m_{1}\right)! \left(j_{2}+m_{2}\right)! \left(j_{2}-m_{2}\right)! \left(j_{3}+m_{3}\right)! \left(j_{3}-m_{3}\right)!} \\\times\sum_{t}\frac{(-)^{t}}{t!(j_{3}-j_{2}+t+m_{1})! (j_{3}-j_{1}+t-m_{2})! (j_{1}+j_{2}-j_{3}-t)!(j_{1}-t-m_{1})!(j_{2}-t+m_{2})!}\]

Example:

julia> o = threeJsymbol(3, 0, 4, -1, 5, 1); println(" = $o")
-√(361/30030) = -0.1096417439724123565166029917781360897459044055433631161836138910409772907333476

julia> threeJsymbol(3, 0, 4, -1, 5, 1; msg=false)
-0.1096417439724123565166029917781360897459044055433631161836138910409772907333476

julia> threeJsymbol(0, 0, 0, 0, 0, 0; msg=false)
1.0
source

Clebsch-Gordan coefficients

CamiMath.CGCMethod
CGC(j1::Real, m1::Real, j2::Real, m2::Real, J::Real, M::Real [; msg=true])

Clebsch-Gordan coefficient (CGC). This is a vector-coupling coefficient in Dirac notation. The CGCs are zero unless $Δ(j_{1},j_{2},j_{3})>0$ (triangle inequality holds) and $M=m_{1}+m_{2}$. The relation to the Wigner 3j symbols is given by:

\[\langle j_{1}m_{1};j_{2}m_{2}|JM\rangle\equiv (-1)^{j_{1}-j_{2}+M}\sqrt{2J+1}\left(\begin{array}{ccc} j_{1} & j_{2} & J\\ m_{1} & m_{2} & -M \end{array}\right)\]

Example:

julia> j1=3; m1=0; j2=4; m2=-1; J=5; M=-1;

julia> o = CGC(j1, m1, j2, m2, J, M); println(" = $o")
-√(361/2730) = -0.36364052611670255269921486774521555203216489725107181148303161368088211274565

julia> o = CGC(j1, m1, j2, m2, J, M; msg=false); println(o)
-0.36364052611670255269921486774521555203216489725107181148303161368088211274565

julia> o = (-1)^(j1-j2+M) * sqrt(2J+1) * threeJsymbol(j1, m1, j2, m2, J, -M; msg=false); println(o)
-0.36364052611670255269921486774521555203216489725107181148303161368088211274565

julia> CGC(3, 0, 4, -1, 5, -1);
-√(361/2730)
source