--Ndens=1e15 --Lcell=10.0e-2 --Temperature=1e-3 --Pwidth=0.4e-6 --delta1=0 --delta2=0 --delta3=0 --E1o=0 --E2o=1e2 --E3o=0 --E4o=0
realistic_Rb
Eugeniy Mikhailov
License GPL.
Solving simplified Rb atom model
with fields propagation along spatial axis Z
with Doppler broadening.
We assume four-wave mixing condition when w3-w4=w2-w1 i.e. fields E3 and E4 drive the same
resonance as fields E2 and E1.
* --------------- | F=1, 2P_3/2 >
* \ \
* \ E3_r \ -------- | F=2, 2P_+1/2 >
* \ E4_r \ / \
* \ \ / E2_l \
* \ / \ E1_l
* | F=2, 2S_1/2 > -------------- \
* \ \
* \ \
* ------------- | F=1, 2S_1/2 >
*
We are solving
dE/dz+(1/c)*dE/dt=i*eta*rho_ij, where j level is higher than i.
Note that E is actually a Rabi frequency of electromagnetic field not the EM field
in xmds terms it looks like
dE_dz = i*eta*rhoij - 1/c*L[E], here we moved t dependence to Fourier space
VERY IMPORTANT: all Rabi frequency should be given in [1/s], if you want to
normalize it to something else look drho/dt equation.
No need to renormalizes eta as long as its express through
the upper level decay rate in the same units as Rabi frequency.
section
double v_thermal_averaged=0;
// Maxwell distribution velocities range to take in account in [m/s]
double V_maxwell_min = 0, V_maxwell_max = 0;
// repopulation rate (atoms flying in/out the laser beam) in [1/s]
const double gt=0.01 *(2*M_PI*1e6);
// Larmor frequency
double WL=0;
// inner use variables
double probability_v; // will be used as p(v) in Maxwell distribution
]]>
0 to provide range for Maxwell velocity distribution\n");
v_thermal_averaged=sqrt(k_boltzmann*Temperature/mass);
// Maxwell distribution velocities range to take in account in [m/s]
// there is almost zero probability for higher velocity p(4*v_av) = 3.3e-04 * p(0)
V_maxwell_min = -4*v_thermal_averaged; V_maxwell_max = -V_maxwell_min;
]]>
z
E1 E2 E3 E4
probability_v
probability_v_norm
Maxwell_distribution_probabilities
E1a E2a E3a E4a
E_field Maxwell_distribution_probabilities Maxwell_distribution_probabilities_norm
r0101
r0113
r0202
r0214
r0303
r0309
r0315
r0404
r0410
r0416
r0505
r0511
r0602
r0606
r0614
r0703
r0707
r0709
r0715
r0804
r0808
r0810
r0816
r0909
r0915
r1010
r1016
r1111
r1313
r1414
r1515
r1616
// this is because if r11=1, everything else is 0 and then every small increment
// seems to be huge and adaptive solver makes smaller and smaller steps.
// As quick and dirty fix I reshuffle initial population
// so some of the population sits at the second ground level |2>
// TODO: Fix above. Make the equation of motion for r11
// and express other level, let's say r44
// through population normalization
//read from Mathematica generated RbInits.txt
r0101 = 0.125;
r0113 = 0;
r0202 = 0.125;
r0214 = 0;
r0303 = 0.125;
r0309 = 0;
r0315 = 0;
r0404 = 0.125;
r0410 = 0;
r0416 = 0;
r0505 = 0.125;
r0511 = 0;
r0602 = 0;
r0606 = 0.125;
r0614 = 0;
r0703 = 0;
r0707 = 0.125;
r0709 = 0;
r0715 = 0;
r0804 = 0;
r0808 = 0.125;
r0810 = 0;
r0816 = 0;
r0909 = 0;
r0915 = 0;
r1010 = 0;
r1016 = 0;
r1111 = 0;
r1313 = 0;
r1414 = 0;
r1515 = 0;
r1616 = 0;
]]>
100
density_matrix
E_field_avgd
Lt
E_field
density_matrix