So it seems the problems with the rotation operator are worked out and the values for that have extensive testing, however, I'm having trouble getting the basis representation to work. It should be that, say for representing a Jx eigenket |x:j,m> in the Jz basis would be: |x:j,m> = Sum( |z:j,mp><z:j,mp| R(alpha,beta,gamma) |x:j,m>, (mp,-j,j) ) = Sum( |z:j,mp> D(j,m,mp,alpha,beta,gamma), (mp,-j,j) ) Where R is the rotation operator defined by the Euler angles alpha,beta,gamma, and D is the Wigner D-function (which is what is being implemented). To check the results, I started checking it against the pdf I linked earlier in this thread [1] (p 23) for representing a Jx eigenket in the Jz basis, which didn't match the output from the code. I figured it must be something that I messed up with the Euler angles, however, even trying to work it out on paper, I couldn't come up with a set of Euler angles that gives the result in the pdf. If anyone could check the results, and possibly double check what should be expected, I'd appreciate it. My code for this is here [2]. The easiest way to check the output of the code is with the rewrite function or the represent function, see the docstring for JzKet for examples and usage of those functions. The code for representing states in different bases is in the _represent_base function in the SpinState class, and the Euler angles for the changes of bases are in the classes for the spin states. They are as follows: Jx to: Jy(alpha=pi/2) Jz(beta=pi/2)
Jy to: Jx(gamma=-pi/2) Jz(alpha=-pi/2,beta=pi/2,gamma=pi/2) Jz to: Jx(alpha=-pi/2) Jy(alpha=-pi/2,beta=-pi/2,gamma=-pi/2) Thanks, Sean [1] http://www.chem.ucsb.edu/coursepages/11spring/226-Metiu/dl/115A%20Course%20Notes/Ch11_Angular_20Nov09.pdf [2] https://github.com/flacjacket/sympy/tree/xyz_bases On Sun, Jun 19, 2011 at 01:06, Sean Vig <[email protected]> wrote: > On Fri, Jun 17, 2011 at 23:37, Ondrej Certik <[email protected]>wrote: > >> On Fri, Jun 17, 2011 at 7:23 PM, Sean Vig <[email protected]> wrote: >> > Regarding the normalization you impose, I get that same normalization to >> > fall out of the equations. From the equations, you get directly >> > (-I)**(m-mp) * (-1)**(j+mp) >> > Which is equal to the expression you gave if you start playing with the >> > exponents. >> >> Which equations did you get it from? I could not figure it out (I >> tried for couple hours... and failed), >> so it's exciting you managed to get it out of the equations somehow. I >> would be most interested in how. >> >> Then I'll put it into my notes, so that I don't forget it. >> >> Ondrej >> >> -- >> You received this message because you are subscribed to the Google Groups >> "sympy" group. >> To post to this group, send email to [email protected]. >> To unsubscribe from this group, send email to >> [email protected]. >> For more options, visit this group at >> http://groups.google.com/group/sympy?hl=en. >> >> > I had used the same equations you noted in the comments, which I > attached, and I was able to get the same factor (note that (-1)**(2*m) == > (-1)**(2*mp) for physical values of m and mp), but I realized while I was > writing it up that it appeared on the wrong side of the equation. I tried > playing with some other equations again today, but wasn't able to get > anything that produced the same sign convention. That said, the symbolic > results with the sign correction you make definitely checks out against > those in the book. > > Sean > -- You received this message because you are subscribed to the Google Groups "sympy" group. To post to this group, send email to [email protected]. To unsubscribe from this group, send email to [email protected]. For more options, visit this group at http://groups.google.com/group/sympy?hl=en.
