summaryrefslogtreecommitdiff
path: root/rb87_D1_line.m
diff options
context:
space:
mode:
authorEugeniy Mikhailov <evgmik@gmail.com>2009-12-15 17:19:30 +0000
committerEugeniy Mikhailov <evgmik@gmail.com>2009-12-15 17:19:30 +0000
commit48d78b0de9c75c9d858a9e7598cf56d46545c6af (patch)
tree7a4ee5823087ce14d0c8f8826de8d24f658d41d2 /rb87_D1_line.m
parent42e1f4dd605f2f37f53b75839c4c48537f56412c (diff)
downloadmulti_mode_eit-48d78b0de9c75c9d858a9e7598cf56d46545c6af.tar.gz
multi_mode_eit-48d78b0de9c75c9d858a9e7598cf56d46545c6af.zip
refining, adding magnetic field splitting, selection rule correction
Diffstat (limited to 'rb87_D1_line.m')
-rw-r--r--rb87_D1_line.m41
1 files changed, 26 insertions, 15 deletions
diff --git a/rb87_D1_line.m b/rb87_D1_line.m
index 09b2359..ac66de8 100644
--- a/rb87_D1_line.m
+++ b/rb87_D1_line.m
@@ -19,13 +19,15 @@ useful_constants;
% ---- ---- ---- |S,F=1>
% m=-1 m=0 m=1
+B_field=.2;
+
w_hpf_ground=6834;
w_hpf_exited=817;
w_sf2 = w_hpf_ground; % Distance from |S,F=1> to |S,F=2>
w_pf1 =1e9; % something big Distance from |S,F=1> to |P,F=1>
w_pf2 = w_pf1+w_hpf_exited; %Distance from |S,F=1> to |P,F=2>
gmg=.7; % gyro magnetic ration for ground level
-gme=.7; % gyro magnetic ration for exited level
+gme=.0; % gyro magnetic ration for exited level % CHECKME
%bottom level |F=1>
@@ -46,29 +48,30 @@ levels(10)=struct( "ang_momentum", 1, "total_momentum", 1, "m", 0, "energy
levels(11)=struct( "ang_momentum", 1, "total_momentum", 1, "m", 1, "energy", w_pf1, "gm", -gme);
% second exited level |F=2>
-levels(12)=struct( "ang_momentum", 1, "total_momentum", 2, "m", -2, "energy", w_pf2, "gm", gme);
-levels(13)=struct( "ang_momentum", 1, "total_momentum", 2, "m", -1, "energy", w_pf2, "gm", gme);
-levels(14)=struct( "ang_momentum", 1, "total_momentum", 2, "m", 0, "energy", w_pf2, "gm", gme);
-levels(15)=struct( "ang_momentum", 1, "total_momentum", 2, "m", 1, "energy", w_pf2, "gm", gme);
-levels(16)=struct( "ang_momentum", 1, "total_momentum", 2, "m", 2, "energy", w_pf2, "gm", gme);
+%levels(12)=struct( "ang_momentum", 1, "total_momentum", 2, "m", -2, "energy", w_pf2, "gm", gme);
+%levels(13)=struct( "ang_momentum", 1, "total_momentum", 2, "m", -1, "energy", w_pf2, "gm", gme);
+%levels(14)=struct( "ang_momentum", 1, "total_momentum", 2, "m", 0, "energy", w_pf2, "gm", gme);
+%levels(15)=struct( "ang_momentum", 1, "total_momentum", 2, "m", 1, "energy", w_pf2, "gm", gme);
+%levels(16)=struct( "ang_momentum", 1, "total_momentum", 2, "m", 2, "energy", w_pf2, "gm", gme);
Nlevels=size(levels)(2);
H0=zeros(Nlevels);
-ang_momentum = [1:Nlevels];
-total_momentum = [1:Nlevels];
-m = [1:Nlevels];
-gm = [1:Nlevels];
+energy = [1:Nlevels].*0;
+ang_momentum = [1:Nlevels].*0;
+total_momentum = [1:Nlevels].*0;
+m = [1:Nlevels].*0;
+gm = [1:Nlevels].*0;
for i=1:Nlevels
- H0(i,i) = levels(i).energy;
+ energy(i) = levels(i).energy;
ang_momentum(i) = levels(i).ang_momentum;
total_momentum(i) = levels(i).total_momentum;
m(i) = levels(i).m;
gm(i) = levels(i).gm;
endfor
-H0=H0*hbar;
+H0=diag(energy)*hbar;
dipole_elements.left = zeros(Nlevels);
@@ -87,7 +90,12 @@ for j=1:Nlevels
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 ( ( total_momentum(j) == 1 ) && (total_momentum(k) == 1 ) )
+ % remember m=0 ->m'=0 is forbidden when F=1 and F'=1
+ dipole_elements.linear(j,k)=0;
+ else
+ dipole_elements.linear(j,k)=1;
+ endif
endif
endif
endfor
@@ -120,11 +128,14 @@ endfor
gamma_hpf=.001;
for i=1:Nlevels
for j=1:Nlevels
- if ( abs( H0(i,i) - H0(j,j)) == w_hpf_ground )
+ if ( abs( H0(i,i) - H0(j,j)) == w_hpf_ground*hbar )
% ground hyperfine are mixed together
g_decay(i,j)=gamma_hpf;
endif
endfor
endfor
-
+% apply B field Zeeman splitting
+energy+=B_field * ( gm .* m);
+% convert frequency to energy units
+H0=diag(energy)*hbar;