CodePlexProject Hosting for Open Source Software

From a scientists' perspective, a Spin object represents a quantum-mechanical system with a given total angular momentum and a SpinState object represents a possible state of such a system.

For example, an electron is a spin-1/2 object with two possible states: up and down.

From a mathematician's perspective, Spin objects represent irreducible representations of the group SO(3) ~ SU(2) and SpinState objects represent the basis vectors of that representation.

The SpinMath class allows you to various computations involving combining spins, including enumerating possible combined states and computing the overlap coefficients (Clebsch Godron coefficients) between component angular momentum and combined angular momentum states.

SpinMath also allows the computation of 3j and 6j symbols.

For example, an electron is a spin-1/2 object with two possible states: up and down.

Spin j = Spin.SpinOneHalf; foreach (SpinState s in j.States()) { Console.WriteLine(s); }

From a mathematician's perspective, Spin objects represent irreducible representations of the group SO(3) ~ SU(2) and SpinState objects represent the basis vectors of that representation.

The SpinMath class allows you to various computations involving combining spins, including enumerating possible combined states and computing the overlap coefficients (Clebsch Godron coefficients) between component angular momentum and combined angular momentum states.

SpinState s1 = new SpinState(2.0, -1.0); SpinState s2 = new SpinState(2.5, -1.5); foreach (SpinState s in SpinMath.Combine(s1, s2)) { double cg = SpinMath.ClebschGodron(s1, s2, s); Console.WriteLine("The fraction of ({0}) x ({1}) in ({2}) is {3}", s1, s2, s, cg * cg); }

SpinMath also allows the computation of 3j and 6j symbols.

Last edited Apr 29, 2010 at 9:06 AM by ichbin, version 2