diff options
author | Eugeniy Mikhailov <evgmik@gmail.com> | 2009-12-21 19:36:02 +0000 |
---|---|---|
committer | Eugeniy Mikhailov <evgmik@gmail.com> | 2009-12-21 19:36:02 +0000 |
commit | d30c969a69096e0244800782d4636e98bb9bcf55 (patch) | |
tree | 10501904e588b8c8e0447f2a5066466d47502eb8 | |
parent | 4ba3b5b9c045fda822ceecf227de98ecd73ef28c (diff) | |
download | multi_mode_eit-d30c969a69096e0244800782d4636e98bb9bcf55.tar.gz multi_mode_eit-d30c969a69096e0244800782d4636e98bb9bcf55.zip |
proper dipole elements for Rb87D1 line
-rw-r--r-- | dipole_elementRb87D1line.m | 177 | ||||
-rw-r--r-- | rb87_D1_line.m | 25 |
2 files changed, 187 insertions, 15 deletions
diff --git a/dipole_elementRb87D1line.m b/dipole_elementRb87D1line.m new file mode 100644 index 0000000..9235274 --- /dev/null +++ b/dipole_elementRb87D1line.m @@ -0,0 +1,177 @@ +function d=dipole_elementRb87D1line(Fl,ml,Fu,mu) +% Fl, ml are F and m quantum numbers of lower state +% Fu, mu are F and m quantum numbers of upper state +% F is total momentum and m is projection + d.left = 0; %default return value + d.linear = 0; %default return value + d.right = 0; %default return value + if ( mu==(ml+1) ) + % sigma plus polarization + % ------ Fl=2 -> Fu=2 -------- + if ( (ml==-2) & (Fl==2) & (Fu==2) ) + d.right=sqrt(1/6); + endif + if ( (ml==-1) & (Fl==2) & (Fu==2) ) + d.right=sqrt(1/4); + endif + if ( (ml== 0) & (Fl==2) & (Fu==2) ) + d.right=sqrt(1/4); + endif + if ( (ml== 1) & (Fl==2) & (Fu==2) ) + d.right=sqrt(1/6); + endif + if ( (ml== 2) & (Fl==2) & (Fu==2) ) + d.right=0; + endif + % ------ Fl=2 -> Fu=1 -------- + if ( (ml==-2) & (Fl==2) & (Fu==1) ) + d.right=sqrt(1/2); + endif + if ( (ml==-1) & (Fl==2) & (Fu==1) ) + d.right=sqrt(1/4); + endif + if ( (ml== 0) & (Fl==2) & (Fu==1) ) + d.right=sqrt(1/12); + endif + if ( (ml== 1) & (Fl==2) & (Fu==1) ) + d.right=0; + endif + if ( (ml== 2) & (Fl==2) & (Fu==1) ) + d.right=0; + endif + % ------ Fl=1 -> Fu=2 -------- + if ( (ml==-1) & (Fl==1) & (Fu==2) ) + d.right = -sqrt(1/12); + endif + if ( (ml== 0) & (Fl==1) & (Fu==2) ) + d.right = -sqrt(1/4); + endif + if ( (ml== 1) & (Fl==1) & (Fu==2) ) + d.right = -sqrt(1/2); + endif + % ------ Fl=1 -> Fu=1 -------- + if ( (ml==-1) & (Fl==1) & (Fu==1) ) + d.right = -sqrt(1/12); + endif + if ( (ml== 0) & (Fl==1) & (Fu==1) ) + d.right = -sqrt(1/12); + endif + if ( (ml== 1) & (Fl==1) & (Fu==1) ) + d.right = 0; + endif + endif + if ( mu==(ml+0) ) + % pi polarization + % ------ Fl=2 -> Fu=2 -------- + if ( (ml==-2) & (Fl==2) & (Fu==2) ) + d.linear=-sqrt(1/3); + endif + if ( (ml==-1) & (Fl==2) & (Fu==2) ) + d.linear=-sqrt(1/12); + endif + if ( (ml== 0) & (Fl==2) & (Fu==2) ) + d.linear=0; + endif + if ( (ml== 1) & (Fl==2) & (Fu==2) ) + d.linear=sqrt(1/12); + endif + if ( (ml== 2) & (Fl==2) & (Fu==2) ) + d.linear=sqrt(1/3); + endif + % ------ Fl=2 -> Fu=1 -------- + if ( (ml==-2) & (Fl==2) & (Fu==1) ) + d.linear = 0; + endif + if ( (ml==-1) & (Fl==2) & (Fu==1) ) + d.linear=sqrt(1/4); + endif + if ( (ml== 0) & (Fl==2) & (Fu==1) ) + d.linear=sqrt(1/3); + endif + if ( (ml== 1) & (Fl==2) & (Fu==1) ) + d.linear=sqrt(1/4); + endif + if ( (ml== 2) & (Fl==2) & (Fu==1) ) + d.linear = 0; + endif + % ------ Fl=1 -> Fu=2 -------- + if ( (ml==-1) & (Fl==1) & (Fu==2) ) + d.linear = sqrt(1/4); + endif + if ( (ml== 0) & (Fl==1) & (Fu==2) ) + d.linear = sqrt(1/2); + endif + if ( (ml== 1) & (Fl==1) & (Fu==2) ) + d.linear = sqrt(1/4); + endif + % ------ Fl=1 -> Fu=1 -------- + if ( (ml==-1) & (Fl==1) & (Fu==1) ) + d.linear = sqrt(1/12); + endif + if ( (ml== 0) & (Fl==1) & (Fu==1) ) + d.linear = 0; + endif + if ( (ml== 1) & (Fl==1) & (Fu==1) ) + d.linear = -sqrt(1/12); + endif + endif + if ( mu==(ml-1) ) + % sigma minus polarization + % ------ Fl=2 -> Fu=2 -------- + if ( (ml==-2) & (Fl==2) & (Fu==2) ) + d.left = 0; + endif + if ( (ml==-1) & (Fl==2) & (Fu==2) ) + d.left = -sqrt(1/6); + endif + if ( (ml== 0) & (Fl==2) & (Fu==2) ) + d.left = -sqrt(1/4); + endif + if ( (ml== 1) & (Fl==2) & (Fu==2) ) + d.left = -sqrt(1/4); + endif + if ( (ml== 2) & (Fl==2) & (Fu==2) ) + d.left = -sqrt(1/6); + endif + % ------ Fl=2 -> Fu=1 -------- + if ( (ml==-2) & (Fl==2) & (Fu==1) ) + d.left = 0; + endif + if ( (ml==-1) & (Fl==2) & (Fu==1) ) + d.left = 0; + endif + if ( (ml== 0) & (Fl==2) & (Fu==1) ) + d.left = sqrt(1/12); + endif + if ( (ml== 1) & (Fl==2) & (Fu==1) ) + d.left = sqrt(1/4); + endif + if ( (ml== 2) & (Fl==2) & (Fu==1) ) + d.left = sqrt(1/2); + endif + % ------ Fl=1 -> Fu=2 -------- + if ( (ml==-1) & (Fl==1) & (Fu==2) ) + d.left = -sqrt(1/2); + endif + if ( (ml== 0) & (Fl==1) & (Fu==2) ) + d.left = -sqrt(1/4); + endif + if ( (ml== 1) & (Fl==1) & (Fu==2) ) + d.left = -sqrt(1/12); + endif + % ------ Fl=1 -> Fu=1 -------- + if ( (ml==-1) & (Fl==1) & (Fu==1) ) + d.left = 0; + endif + if ( (ml== 0) & (Fl==1) & (Fu==1) ) + d.left = sqrt(1/12); + endif + if ( (ml== 1) & (Fl==1) & (Fu==1) ) + d.left = sqrt(1/12); + endif + endif +endfunction + + + +% vim: ts=2:sw=2:fdm=indent diff --git a/rb87_D1_line.m b/rb87_D1_line.m index 1739df2..ea20e11 100644 --- a/rb87_D1_line.m +++ b/rb87_D1_line.m @@ -82,22 +82,15 @@ for j=1:Nlevels for k=1:Nlevels if ( abs(ang_momentum(j) - ang_momentum(k)) == 1) %transition allowed for L =L' +/- 1 - % incorrect Clebsch-Gordan coefficients but should show some ideas % but they correct within a factor, but not sign - if ( ((m(j)- m(k))==1) && ( H0(j,j) < H0(k,k)) ) - dipole_elements.left(j,k)=1; - endif - if ( ((m(j)- m(k))==-1) && ( H0(j,j) < H0(k,k)) ) - dipole_elements.right(j,k)=1; - endif - if ( ((m(j)- m(k))==0) && ( H0(j,j) < H0(k,k)) ) - dipole_elements.linear(j,k)=1; - if ( (m(j)==0) && ( total_momentum(j) == 1 ) && (total_momentum(k) == 1 ) ) - % remember m=0 ->m'=0 is forbidden when F=1 and F'=1 - % so we drop it back to zero - dipole_elements.linear(j,k)=0; - else - endif + if ( ( H0(j,j) < H0(k,k)) ) + de=dipole_elementRb87D1line(... + total_momentum(j),m(j), ... + total_momentum(k),m(k) ... + ); + dipole_elements.left(j,k) = de.left; + dipole_elements.right(j,k) = de.right; + dipole_elements.linear(j,k) = de.linear; endif endif endfor @@ -141,3 +134,5 @@ endfor energy+=B_field * ( gm .* m); % convert frequency to energy units H0=diag(energy)*hbar; + +% vim: ts=2:sw=2:fdm=indent |