summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorEugeniy Mikhailov <evgmik@gmail.com>2016-04-28 11:07:23 -0400
committerEugeniy Mikhailov <evgmik@gmail.com>2016-04-28 11:07:23 -0400
commit03d3ee477ce9afd041e58fe4f6c54f4cd15448fe (patch)
tree135e6886d01744f6f3378a12db556f256b72de00
parent5e2a11994f8c3c3be6d9e0d394eeda51025ef96f (diff)
downloadnoisy_eit_xmds-03d3ee477ce9afd041e58fe4f6c54f4cd15448fe.tar.gz
noisy_eit_xmds-03d3ee477ce9afd041e58fe4f6c54f4cd15448fe.zip
Added doppler shift, redone logic of detuning to be in sync with canonical EIT notation
-rw-r--r--MOR_5_levels_with_doppler_and_propagation/Nlevels_with_MOR.xmds27
1 files changed, 16 insertions, 11 deletions
diff --git a/MOR_5_levels_with_doppler_and_propagation/Nlevels_with_MOR.xmds b/MOR_5_levels_with_doppler_and_propagation/Nlevels_with_MOR.xmds
index 757db91..0255f87 100644
--- a/MOR_5_levels_with_doppler_and_propagation/Nlevels_with_MOR.xmds
+++ b/MOR_5_levels_with_doppler_and_propagation/Nlevels_with_MOR.xmds
@@ -48,7 +48,8 @@
const double c=3.e8;
const double k_boltzmann= 1.3806505e-23; // Boltzmann knostant in [J/K]
const double lambda=794.7e-9; //wavelength in m
- const double Kvec = 2*M_PI/lambda; // k-vector
+ const double KvecDr = 2*M_PI/lambda; // Drive field k-vector
+ const double KvecPr = 2*M_PI*c/(c/lambda + 6.835e9); // Probe field k-vector, recall there is hyper-fine splitting between drive and probe
const double Gamma_super=6*(2*M_PI*1e6); // characteristic decay rate of upper level used for eta calculations expressed in [1/s]
// eta will be calculated in the <arguments> section
double eta = 0; // eta constant in the wave equation for Rabi frequency. Units are [1/(m s)]
@@ -97,10 +98,8 @@
<!-- Fields detuning in [1/s] -->
- <argument name="delta_dL" type="real" default_value="0.0" />
- <argument name="delta_pL" type="real" default_value="0.0" />
- <argument name="delta_dR" type="real" default_value="0.0" />
- <argument name="delta_pR" type="real" default_value="0.0" />
+ <argument name="delta_one_ph" type="real" default_value="0.0" />
+ <argument name="delta_two_ph" type="real" default_value="0.0" />
<!--Pulse duration/width [s] -->
<argument name="Pwidth" type="real" default_value="0.1e-6" />
<!-- Atom and cell properties -->
@@ -287,14 +286,20 @@
</boundary_condition>
<![CDATA[
- Gab=g+i*(delta_dL+delta_pR+0*noise);
- GAB=g+i*(delta_pL+delta_dR+0*noise);
+ // Calculate Doppler shift
+ // FIXME: it may be done only once per the whole simulation, move it to calculated vectors
+ double DopplerShiftDr = KvecDr * v;
+ double DopplerShiftPr = KvecDr * v;
- Gca=g-i*(delta_dL);
- GCA=g-i*(delta_pL);
- Gcb=gbc+i*(Split + delta_pR+0*noise);
- GCB=gbc+i*(-Split + delta_pL+0*noise);
+ Gab=g+i*(delta_one_ph + delta_two_ph + DopplerShiftPr + 0*noise); // probe right detuning
+ GAB=g+i*(delta_one_ph + DopplerShiftDr + 0*noise); // drive right detuning
+
+ Gca=g-i*(delta_one_ph + DopplerShiftDr); // drive left detuning
+ GCA=g-i*(delta_one_ph + delta_two_ph + DopplerShiftDr); // probe left detuning
+
+ Gcb=gbc+i*( Split + delta_two_ph + (DopplerShiftPr - DopplerShiftDr) + 0*noise);
+ GCB=gbc+i*(-Split - delta_two_ph - (DopplerShiftPr - DopplerShiftDr) - 0*noise);
complex rba=conj(rab);
complex rac=conj(rca);