--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
//---------------- RbInits.txt starts ------------------
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;
//---------------- RbInits.txt ends ------------------
]]>
100
density_matrix
E_field_avgd
Lt
E_field
density_matrix