Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Change 3j phase factor #11

Open
wants to merge 1 commit into
base: master
Choose a base branch
from

Conversation

RHanley1
Copy link
Member

I have changed the way q is defined to match the definition of Wigner 3j
symbols used in both David Szwer's thesis and the physics manual
documentation. Also added missing conj() from vector multiplication.

@RHanley1
Copy link
Member Author

RHanley1 commented May 4, 2020

I’m indifferent about this change. I don’t think it makes things more readable or noticeably more efficient. Either style is roughly equivalent AFAICT but I have a weak preference for the current style. Why the change?

Just thought having two different ways of determining the order of the transitions is a bit odd.

@RHanley1
Copy link
Member Author

RHanley1 commented May 4, 2020

I actually started out using this convention (see the commit log) because I was following DJSs thesis. The convention is somewhat arbitrary but I think this one confusing since users have to put ‘q=-1’ for a sigma plus transition which is the opposite of what most people will expect.

I assume the convention arises because of the usual spherical tensor relations for ‘A.B’ which have terms like ‘A_{-1}.B{+1}’ so it’s ‘E_{-1}’ that drives sigma plus transitions. Nonetheless i think the user confusion potential is too high.

NB while this convention is used in the thesis it’s not used in the more recent versions of his matlab code so I assume he thought better of it!

I actually started out using this convention (see the commit log) because I was following DJSs thesis. The convention is somewhat arbitrary but I think this one confusing since users have to put ‘q=-1’ for a sigma plus transition which is the opposite of what most people will expect.

I assume the convention arises because of the usual spherical tensor relations for ‘A.B’ which have terms like ‘A_{-1}.B{+1}’ so it’s ‘E_{-1}’ that drives sigma plus transitions. Nonetheless i think the user confusion potential is too high.

NB while this convention is used in the thesis it’s not used in the more recent versions of his matlab code so I assume he thought better of it!

The negative inversion of q comes from the fact that the Clebsch Gordon coefficient describes the coupling of the angular momenta between the upper state and an emitted photon. This makes sense for when one is considering spontaneous emission where ml = mu + q (see figure below). It gets a bit weird (as you say) for absorption, as we calculate the absorption rate from the spontaneous emission rate, which leads to the q inversion. I have tried to derive your version starting from the standard Wigner-Eckart and Clebsch Gordon coefficient definitions, but can't get there without setting q -> -q. Do you have a derivation of it or a reference to look at? I'm happy to have it the other way around as it does make more sense for a user with regards absorption, as long as we understand the phase factors etc and that they are correct.

image

@hartytp
Copy link
Contributor

hartytp commented May 5, 2020

I have tried to derive your version starting from the standard Wigner-Eckart and Clebsch Gordon coefficient definitions, but can't get there without setting q -> -q. Do you have a derivation of it or a reference to look at? I'm happy to have it the other way around as it does make more sense for a user with regards absorption, as long as we understand the phase factors etc and that they are correct.

Thanks for the clarification. To check we're on the same page here, there are two elements to the discussion: the definition of q; and the phase factors on the matrix elements.

I think we agree that the definition of q is purely a convention, and that q:=Mu-Ml (so sigma + corresponds to q=+1) is probably the easiest convention for users to use.

For the phase factors, you're saying that you've worked the maths through from first principles and think I've made a mistake. That's very plausible! To be clear, I put quite a bit of effort into code structure/interfaces and thinking about all the internal data manipulations. However, I didn't put much thought into the phase factors. For that we need some proper notes and, since I knew you were doing that I didn't bother to duplicate effort. All I did was: write code that calculated the scattering rates in the high field; write a test that compared my rates to the rates that DJS calculated in the low field; fudge the phase factors until the two agree. There was an explicit to do item here to come back and check those calculations, so I really appreciate you doing that! On the subject, I would also like to improve the docstring in the epole function to be clear about exactly what we're calculating and how it relates to the matrix elements/Rabi frequencies (there are some factors of constants and (Omega^whatever)).

@hartytp
Copy link
Contributor

hartytp commented May 5, 2020

I suggest that to move this forwards, we change the PR to only change the phase factors and, optionally, improve the relevant doc-strings.

@RHanley1
Copy link
Member Author

RHanley1 commented May 5, 2020

I have tried to derive your version starting from the standard Wigner-Eckart and Clebsch Gordon coefficient definitions, but can't get there without setting q -> -q. Do you have a derivation of it or a reference to look at? I'm happy to have it the other way around as it does make more sense for a user with regards absorption, as long as we understand the phase factors etc and that they are correct.

Thanks for the clarification. To check we're on the same page here, there are two elements to the discussion: the definition of q; and the phase factors on the matrix elements.

I think we agree that the definition of q is purely a convention, and that q:=Mu-Ml (so sigma + corresponds to q=+1) is probably the easiest convention for users to use.

For the phase factors, you're saying that you've worked the maths through from first principles and think I've made a mistake. That's very plausible! To be clear, I put quite a bit of effort into code structure/interfaces and thinking about all the internal data manipulations. However, I didn't put much thought into the phase factors. For that we need some proper notes and, since I knew you were doing that I didn't bother to duplicate effort. All I did was: write code that calculated the scattering rates in the high field; write a test that compared my rates to the rates that DJS calculated in the low field; fudge the phase factors until the two agree. There was an explicit to do item here to come back and check those calculations, so I really appreciate you doing that! On the subject, I would also like to improve the docstring in the epole function to be clear about exactly what we're calculating and how it relates to the matrix elements/Rabi frequencies (there are some factors of constants and (Omega^whatever)).

Yes, agree on the definition of q. I have updated the documentation to reflect this.

I have worked through the angular momentum algebra from scratch to derive the phase factors. I have also tested these changes with the test scripts and they all pass. I will change the PR to just deal with phase factors, and update tomorrow.

@hartytp
Copy link
Contributor

hartytp commented May 5, 2020

thanks! Please also remove any unrelated changes for a separate PR.

@RHanley1
Copy link
Member Author

RHanley1 commented May 5, 2020

thanks! Please also remove any unrelated changes for a separate PR.

Will do. Shall I just rebase and force push the removed changes out?

@hartytp
Copy link
Contributor

hartytp commented May 5, 2020

That would be great thanks!

I have changed the qse factor for the 3j symbol to match the derivation
in the added documentation. Here, q is defined as q:= Mu - Ml.
@RHanley1 RHanley1 changed the title Change 3j phase factor plus other minor changes Change 3j phase factor May 6, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

2 participants