def iteration(Temp): inst_vel_data = thermal_motion.MB_dist_retVel1D(Temp) inst_vel = inst_vel_data[0] laser_w = inverse_doppler(w0, thermal_motion.avg_vel1D(Temp)) laser_f = laser_w/(2*np.pi) doppler_w = absorption.doppler_shift(laser_w, inst_vel) delta = np.abs(doppler_w - w0) #doppler_w = w0 W = absorption.rabi_f(Efield, doppler_w) absorb = absorption.absorbed(Omega, W) photon_momentum = (hbar * laser_w)/c delta_v = photon_momentum/(m_p + m_e) if absorb[1] == 1: Temp = thermal_motion.inv_cum_MBdistT(inst_vel_data[0]-delta_v, inst_vel_data[1]) time = absorb[0] + lifetime else: time = absorb[0] return [ time, Temp ]
def analytical(Temp): inst_vel_data = thermal_motion.MB_dist_retVel1D(Temp) inst_vel = inst_vel_data[0] laser_w = inverse_doppler(w0, thermal_motion.avg_vel1D(Temp)) laser_f = laser_w/(2*np.pi) doppler_w = absorption.doppler_shift(laser_w, inst_vel) photon_momentum = (hbar * laser_w) / c a_max = photon_momentum * lifetime / (2*(m_p+ m_e)) return a_max
def absorption_chance(T): inst_vel_data = thermal_motion.MB_dist_retVel1D(T) inst_vel = inst_vel_data[0] laser_w = inverse_doppler(w0, thermal_motion.avg_vel1D(T)) laser_f = laser_w/(2*np.pi) doppler_w = absorption.doppler_shift(laser_w, inst_vel) W = absorption.rabi_f(Efield, doppler_w) absorb = absorption.absorbed(Omega, W) return absorb[1]
def anal_quickplot(Temp): '''seems far too small to affect temperature''' a_max = analytical(Temp) print a_max time = np.linspace(0, 1, num=10000) v0 = thermal_motion.avg_vel1D(Temp) print v0 temparr = np.zeros(shape=time.shape) i = 0 while i < time.shape[0]: temparr[i] = thermal_motion.inv_avg_vel1d(v0- a_max*time[i]) i = i + 1 fig1=pyplot.figure() ax1=pyplot.subplot() ax1.plot(time, temparr) return pyplot.show()
def T_v_laserf(): T_rng = np.linspace(0,293,num=100) avg_v = thermal_motion.avg_vel1D(T_rng) laser_w = inverse_doppler(w0, avg_v) laser_f = laser_w/(2*np.pi) doppler_w = w0 W = absorption.rabi_f(Efield, doppler_w) rabi_max =(Omega/ W)**2 fig1 = pyplot.figure() ax1 = pyplot.subplot() ax1.plot(T_rng, laser_f-f0) return pyplot.show()
def T_v_absorption(base_T): laser_w = inverse_doppler(w0, thermal_motion.avg_vel1D(base_T)) T_rng= np.linspace(base_T*0.99, base_T*1.01,num=1000) doppler_w = absorption.doppler_shift(laser_w, thermal_motion.avg_vel1D(T_rng)) W = absorption.rabi_f(Efield, doppler_w) rabi_max = (Omega / W) ** 2 fig2 = pyplot.figure(figsize=(9.5,8)) ax1 = pyplot.subplot() ax1.plot(thermal_motion.avg_vel1D(T_rng)/thermal_motion.avg_vel1D(base_T), rabi_max, label=r'293$K$', color='black') ax1.set_xlim([thermal_motion.avg_vel1D(T_rng)[0]/thermal_motion.avg_vel1D(base_T), thermal_motion.avg_vel1D(T_rng)[-1]/thermal_motion.avg_vel1D(base_T)]) base_T = 100 laser_w = inverse_doppler(w0, thermal_motion.avg_vel1D(base_T)) T_rng = np.linspace(base_T * 0.99, base_T * 1.01, num=1000) doppler_w = absorption.doppler_shift(laser_w, thermal_motion.avg_vel1D(T_rng)) W = absorption.rabi_f(Efield, doppler_w) rabi_max = (Omega / W) ** 2 ax1 = pyplot.subplot() ax1.plot(thermal_motion.avg_vel1D(T_rng) / thermal_motion.avg_vel1D(base_T), rabi_max, label=r'100$K$') base_T = 1 laser_w = inverse_doppler(w0, thermal_motion.avg_vel1D(base_T)) T_rng= np.linspace(base_T*0.99, base_T*1.01,num=1000) doppler_w = absorption.doppler_shift(laser_w, thermal_motion.avg_vel1D(T_rng)) W = absorption.rabi_f(Efield, doppler_w) rabi_max = (Omega / W) ** 2 ax1 = pyplot.subplot() ax1.plot(thermal_motion.avg_vel1D(T_rng)/thermal_motion.avg_vel1D(base_T), rabi_max, label = r'1$K$') base_T = 1e-2 laser_w = inverse_doppler(w0, thermal_motion.avg_vel1D(base_T)) T_rng = np.linspace(base_T * 0.99, base_T * 1.01, num=1000) doppler_w = absorption.doppler_shift(laser_w, thermal_motion.avg_vel1D(T_rng)) W = absorption.rabi_f(Efield, doppler_w) rabi_max = (Omega / W) ** 2 ax1 = pyplot.subplot() ax1.plot(thermal_motion.avg_vel1D(T_rng) / thermal_motion.avg_vel1D(base_T), rabi_max, label=r'10$mK$') #ax1.set_title('Absorption sensitivity of atom velocity \n centered on average velocity at given Temperature', fontsize=26) ax1.set_xlabel(r'Ratio of Atom Velocity from $<v>$ at Temperature', fontsize=22) ax1.set_ylabel(r'Probability of absorption', fontsize=22) ax1.tick_params(axis='both', which='major', labelsize=16) ax1.legend(fancybox=True, framealpha=0.7, fontsize=20) pyplot.tight_layout() return pyplot.show()