# A programming model for Quantum Mechanics angular momenta in Mathematica

I'm writing prototypes for solving the Liouville Equations with Mathematica and C++. Perhaps the question about this may not be suited for this forum in a strict way, but it suits the people here because they're researchers who work with this kind of problems, I presume, and hope.

So I'm looking for a model to store and manipulate angular momenta and density matrices that support:

1. Storing angular momentum number and projection as quantum states (something which internally would look like a bra/ket which can take more than 1 quantum number (matrices can take only 1 quantum number per element);

2. using Clebsch-Gordan conversions efficiently to switch between the coupled and uncoupled representations;

3. building Hamiltonian operators to act on those states;

4. building density matrices for a subset of states.

In C++, I can imagine how this would look like (though I haven't worked it out), and since I'm a beginner in this kind of numerical calculations with Quantum Mechanics (everything I've done so far is classical), I'm testing my work in Mathematica, which is a functional-programming language.

In C++, I could, probably, create a class which represents an angular momentum state (mag. and proj.), and then have other objects of this class get combined in another class which will store their pointers, and that would define a mixed state with multiple quantum numbers. I'm not sure whether this could work, but it's a problem which I have to deal with later, till I get familiar with this problem practically.

Now I'm looking for a way to do those kinds of operations in Mathematica. What would you suggest? Are there tools for those calculations?

Though a word about how to do it in C++ (to get an idea) wouldn't be so bad :)

Thank you for any efforts.

Note to mentors: add the keyword "Density-matrix" and "clebsch-gordan" to the list of keywords.