No BSD License  

Highlights from
Wigner6j.m

from Wigner6j.m by Amita B Deb
Calculates 6j symbols of Angular momentum theory.

Wigner6j(j1,j2,j3,J1,J2,J3)
% Wigner 6j-symbol calculator.
% Written by Amita B Deb, Clarendon Lab. 2007.

% Calculates { j1, j2 ,j3}  using Racah formula. See: Sobelman: Atomic Spectra and Radiative Transitions.
%              J1  J2  J3


function Wigner = Wigner6j(j1,j2,j3,J1,J2,J3)



% Finding Triangular coefficients
tri1 = triangle_coeff(j1,j2,j3);
tri2 = triangle_coeff(j1,J2,J3);
tri3 = triangle_coeff(J1,j2,J3);
tri4 = triangle_coeff(J1,J2,j3);

% Finding the range of summation in Racah formula.

a(1) = j1 + j2 + j3;
a(2) = j1 + J2 + J3;
a(3) = J1 + j2 + J3;
a(4) = J1 + J2 + j3;

rangei = max(a)

k(1) = j1 + j2 + J1 + J2;
k(2) = j2 + j3 + J2 + J3;
k(3) = j3 + j1 + J3 + J1;

rangef = min(k)

%range = min([j1+j2-j3 j1+J2-J3 J1+j2-J3 J1+J2-j3 j2+j3-j1 J2+J3-j1 j2+J3-J1 J2+j3-J1 j3+j1-j2 J3+j1-J2 J3+J1-j2 j3+J1-J2])

Wigner = 0;



   for t=rangei:rangef,
   
       
   
      Wigner = Wigner+ (tri1*tri2*tri3*tri4)^(0.5)*((-1)^t)*factorial(t+1)/fung(t,j1,j2,j3,J1,J2,J3);
      
   end
   
   
   Wigner
   
   
   
   %%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%
   
   % Calculateing triange coefficients for Angular momenta.

function tri = triangle_coeff(a,b,c)

tri = factorial(a+b-c)*factorial(a-b+c)*factorial(-a+b+c)/(factorial(a+b+c+1));


%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%


% Calculating the dem=nominator in Racah Formula

function r = fung(t, j1,j2,j3,J1,J2,J3)

r = factorial(t-j1-j2-j3)*factorial(t-j1-J2-J3)*factorial(t-J1-j2-J3)*factorial(t-J1-J2-j3)*factorial(j1+j2+J1+J2-t)*...
   factorial(j2+j3+J2+J3-t)*factorial(j3+j1+J3+J1-t);


Contact us at files@mathworks.com