Wigner 6j-Symbol

Author

Eric W. Weisstein
February 10, 2004

This notebook downloaded from http://mathworld.wolfram.com/notebooks/SpecialFunctions/Wigner6j-Symbol.nb.

For more information, see Eric's MathWorld entry http://mathworld.wolfram.com/Wigner6j-Symbol.html.

©2005 Wolfram Research, Inc. except for portions noted otherwise

Usage

?SixJSymbol

Traditional Form

SixJSymbol[{(Subscript[j, 1]),(Subscript[j, 2]), (Subscript[j, 3])},{(Subscript[j, 4]),(Subscript[j, 5]),(Subscript[j, 6])}]//TraditionalForm

Code

PhysicalQ[{j1_,j2_,j3_},{J1_,J2_,J3_}]:=And@@((IntegerQ[Plus@@{##}]&&Abs[#1-#2]<=#3<=#1+#2)&@@@{{j1,j2,j3},{j1,J2,J3},{J1,j2,J3},{J1,J2,j3}})

Δ[a_,b_,c_]:=(((a+b-c)! (a-b+c)! (-a+b+c)!)/((1+a+b+c)!))

ts[{j1_,j2_,j3_},{J1_,J2_,J3_}]:=
Module[{l,t,soln},
l={
t-j1-j2-j3,
t-j1-J2-J3,
t-J1-j2-J3,
t-J1-J2-j3,
j1+j2+J1+J2-t,
j2+j3+J2+J3-t,
j3+j1+J3+J1-t
};
soln=Resolve[
And@@(#≥0&)/@l&&
(2{j1,j2,j3,J1,J2,J3}∈Integers)&&
t∈Integers,
t
];
If[soln==={},{},t/.{ToRules[soln]}]
]

WignerSixJ[j:{j1_,j2_,j3_},J:{J1_,J2_,J3_}]:=
(Sqrt[Δ[j1,j2,j3]Δ[j1,J2,J3]Δ[J1,j2,J3]Δ[J1,J2,j3]])Plus@@(Function[t,(-1)^t (t+1)!/Times@@Factorial/@{
t-j1-j2-j3,
t-j1-J2-J3,
t-J1-j2-J3,
t-J1-J2-j3,
j1+j2+J1+J2-t,
j2+j3+J2+J3-t,
j3+j1+J3+J1-t}]/@ts[j,J])

Examples

v=Table[Random[Integer,{0,10}],{500},{2},{3}]/2;

p=Position[v,_?(PhysicalQ@@#&)]//Flatten

ts@@@v[[p]]

Position[SixJSymbol@@@v,_?(#≠0&),1]//Flatten

Transpose[{SixJSymbol@@@v[[p]],WignerSixJ@@@v[[p]]}]

Subtract@@@%

Special Cases

SixJSymbol[{a,b,c},{0,c,b}]//TraditionalForm

SixJSymbol[{a,b,c},{1,c,b}]//TraditionalForm

SixJSymbol[{a,b,c},{2,c,b}]//TraditionalForm

SixJSymbol[{j,j+1/2,1/2},{J,J+1/2,g+1/2}]//TraditionalForm

SixJSymbol[{j,j+1/2,1/2},{J+1/2,J,g}]//TraditionalForm

Racah-Elliot Relations

Table[Plus@@Table[(-1)^(2x)(2x+1)SixJSymbol[{a,b,x},{a,b,f}],{x,-10,10,1/2}]/.Thread[{a,b,f}->Table[Random[Integer,{-5,5}]/2,{3}]],{10}]