示例#1
0
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 ]
示例#2
0
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
示例#3
0
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]
示例#4
0
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()
示例#5
0
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()
示例#6
0
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()