Computational Physics
Homework
Due 9/16/05
An example of a programming library that is both useful but needs to checked is the GNU Scientific Library (GSL). This is meant to be a open sourced library of routines that are of general use in scientific problem solving. During this last summer, I tried to incorporate the GSL Wigner 3-j calculation routine into the analysis program that I was working on. There is (or at least was) a bug in the code that caused it to incorrectly calculate the value of the Wigner 3-j symbol.
Write up a description of what the Wigner 3-j symbol is. You can use any resource that you want, but be sure to document it properly. How are the Wigner 3-j symbols related to the Clebsch-Gordon coefficients and what are they both used for? What area of physics do you find these in the most?
Locate the GSL source code and download it on to your computer. You might need to find a Windows based program that can read tar and gzipped files.
Find the module that calculates the Wigner 3-j symbol. What other routines does this function depend upon? Where are they located?
Write a wrapper program that uses the GSL function to calculate the Wigner 3-j symbol value for a given j1, j2, and j3, where the j's are integers, and all the m's are 0.
Describe a method for checking the calculated values by hand and write down a formula for accomplishing this.
Using both the program and your analytic formula, calculate the Wigner 3-j symbol for j1 = j2 = j3 = {10, 20, 25, 50, 75, 100, 150, 200}, m1 = m2 = m3 = 0. Determine at what point (if any) the program deviates from the analytical prediction. If it deviates, what is the problem in the code?
Determine an alternate way of calculating the Wigner 3-j symbol and code it up. Check it against the analytical prediction for the values above.