diff options
author | Eugeniy Mikhailov <evgmik@gmail.com> | 2009-12-15 17:19:30 +0000 |
---|---|---|
committer | Eugeniy Mikhailov <evgmik@gmail.com> | 2009-12-15 17:19:30 +0000 |
commit | 48d78b0de9c75c9d858a9e7598cf56d46545c6af (patch) | |
tree | 7a4ee5823087ce14d0c8f8826de8d24f658d41d2 /rb87_D1_line.m | |
parent | 42e1f4dd605f2f37f53b75839c4c48537f56412c (diff) | |
download | multi_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.m | 41 |
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; |