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 then 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 eta = 0; // eta constant in the wave equation for Rabi frequency. Units are [1/(m s)] double eta1=0, eta2=0, eta3=0; // --------- Atom and cell properties ------------------------- // range of Maxwell distribution atomic velocities const double mass = (86.909180527 * 1.660538921e-27); // atom mass in [kg] // above mass expression is written as (expression is isotopic_mass * atomic_mass_unit) // Average sqrt(v^2) in Maxwell distribution for one dimension // Maxwell related parameters will be calculated in 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; complex E1ac, E2ac, E3ac, E4ac; // Complex conjugated Rabi frequencies // 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; // eta constant in the wave equation for Rabi frequency. Units are [1/(m s)] eta = 3*lambda*lambda*Ndens*Gamma_super/8.0/M_PI; // !FIXME over simplification: we should use relevant levels linewidths eta1 = eta; eta2 = eta; eta3 = eta; ]]> 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 r0101a r0113a r0202a r0214a r0303a r0309a r0315a r0404a r0410a r0416a r0505a r0511a r0602a r0606a r0614a r0703a r0707a r0709a r0715a r0804a r0808a r0810a r0816a r0909a r0915a r1010a r1016a r1111a r1313a r1414a r1515a r1616a density_matrix 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 E_field_avgd I1_out I2_out I3_out I4_out