Esempio n. 1
0
    # print numberDensity(T)
    # print flux(T, mRb)
    # print influx(1e-3, T, mRb)

    r1 = 1e-3
    r2 = r1
    l = 100e-3
    th_max = np.pi/2

    atom = zs.Rb85()
    eta, vf = 0.7, 20
    v0list = np.linspace(200, 550, 41)

    sllist = []
    for v0 in v0list:
        sllist += [zs.slowerlength(atom.aslow, eta, v0, vf)]

    pl.figure(figsize=(11.69, 8.27))
    pl.subplot(221)
    pl.plot(v0list, sllist)
    pl.xlabel('Maximum capture velocity (m/s)')
    pl.ylabel('Slower length (m)')
    pl.title(r'$v_f$=%d m/s, $\eta$=%g' %(vf, eta))

    T = 273+80
    vnorm = intMaxwell(1200, T)
    vfrac = []
    for v0 in v0list:
        vfrac += [intMaxwell(v0, T)/vnorm]
    vfrac = np.array(vfrac)
Esempio n. 2
0
if __name__ == "__main__":
    filename = sys.argv[1]
    atom = zs.Rb87()

    sim = np.load(filename)['simulation'][()]
    wire = sim['wire']
    setup = sim['setup']
    eta = sim['eta']
    v0 = sim['v0']
    vf = sim['vf']

    looppos, segments, layer = setup['looppos'], setup['segments'], setup['layer']

    print filename
    eta, v0, vf, detu, R = sim['eta'], sim['v0'], sim['vf'], sim['detu'], sim['R']
    sl = zs.slowerlength(atom.aslow, eta, v0, vf)
    z = np.array([0])
    bfield = zs.bideal(atom, z, eta, v0, vf, detu)
    z = np.append([-10*R], np.append(np.linspace(0, sl, 61), [sl+10*R]))
    ze = np.linspace(z[0], z[-1], 201)

    # print setup['csign']
    # bf = lo.fieldcalc(ze, setup)
    # # pl.plot(ze, bf)
    # pl.plot(ze[1:], np.diff(bf))

    series = 4
    ratio = 1

    setup['csign'] = [s*ratio if s < 0 else s for s in setup['csign']]
    # setup['csign'] = [s*ratio if s < 0 else s*ratio for s in setup['csign']]
Esempio n. 3
0
        atom = zs.K41()
    else:
        atom = zs.Rb87()  # default
    ##

    sim = np.load(filename)['simulation'][()]
    wire = sim['wire']
    setup = sim['setup']
    eta = sim['eta']
    v0 = sim['v0']
    vf = sim['vf']

    looppos, segments, layer = setup['looppos'], setup['segments'], setup['layer']

    eta, v0, vf, detu, R = sim['eta'], sim['v0'], sim['vf'], sim['detu'], sim['R']
    sl = zs.slowerlength(atom.aslow, eta, v0, vf)
    z = np.array([0])
    bfield = zs.bideal(atom, z, eta, v0, vf, detu)
    z = np.append([-5.5*R], np.append(np.linspace(0, sl, 61), [sl+5.5*R]))
    ze = np.linspace(z[0], z[-1], 201)

    ## Print winding data
    for i in range(len(layer)):
        if np.diff(segments[i]) != 0:
            print "%7.2f mm to %7.2f mm: %3d turns / %3d layers" %((looppos[segments[i][0]]-wire[0]/2)*1000, (looppos[segments[i][1]-1]+wire[0]/2)*1000, np.diff(segments[i]), layer[i])
    sta = looppos[segments[1][0]]-wire[0]/2
    stb = looppos[segments[-2][1]-1]+wire[0]/2  # The upper boundary is the start of the next layer, need -1
    efflen = zs.slowerlength(atom.aslow, eta, v0, vf) * 1000
    coillen = (stb - sta)*1000
    print "Effective length: %.1f mm" %(efflen)
    print "Slower coils' length: %.1f mm (%.1f mm extra)" %(coillen, (coillen-efflen))