diff options
author | Eugeniy Mikhailov <evgmik@gmail.com> | 2016-04-28 11:07:23 -0400 |
---|---|---|
committer | Eugeniy Mikhailov <evgmik@gmail.com> | 2016-04-28 11:07:23 -0400 |
commit | 03d3ee477ce9afd041e58fe4f6c54f4cd15448fe (patch) | |
tree | 135e6886d01744f6f3378a12db556f256b72de00 | |
parent | 5e2a11994f8c3c3be6d9e0d394eeda51025ef96f (diff) | |
download | noisy_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.xmds | 27 |
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); |