diff options
author | Eugeniy Mikhailov <evgmik@gmail.com> | 2010-06-16 18:00:03 +0000 |
---|---|---|
committer | Eugeniy Mikhailov <evgmik@gmail.com> | 2010-06-16 18:00:03 +0000 |
commit | 9709621e8c71e9a86cd6e3e47edc3d8b8e6becd9 (patch) | |
tree | 0693c4783bf81abb865bd2637b60497b1391ce54 /psr/dipole_elementRb87D1line.m | |
parent | ae3f51976a745241396e98aef58933637485d787 (diff) | |
download | multi_mode_eit-9709621e8c71e9a86cd6e3e47edc3d8b8e6becd9.tar.gz multi_mode_eit-9709621e8c71e9a86cd6e3e47edc3d8b8e6becd9.zip |
this code is for PSR calculation, added pseudo code to not recalculate atom properties matrices if they already saved
Diffstat (limited to 'psr/dipole_elementRb87D1line.m')
-rw-r--r-- | psr/dipole_elementRb87D1line.m | 177 |
1 files changed, 177 insertions, 0 deletions
diff --git a/psr/dipole_elementRb87D1line.m b/psr/dipole_elementRb87D1line.m new file mode 100644 index 0000000..9235274 --- /dev/null +++ b/psr/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 |