Example #1
0
zeropos = 31
zz = np.append(np.linspace(-0.3, 0.01, zeropos), np.linspace(0, 1.1, 201))
curr = layer.bideal(0)/layer.fieldcalc(zz, newsetup, d=d0)[zeropos]
print 'Current = %.2f A' %(curr)

wirelen = layer.totalcoillength(newsetup, d=d0)
print 'Wire length = %.3f m ' %(wirelen)

resist = 0.334 * wirelen / 100.0
power = resist * curr*curr
print 'Minimum power = %.2f W' %(power)


pl.figure(figsize=(11.69, 8.27), dpi=100)
pl.plot(zl, layer.normalize(ideal, 1), 'ko', markersize=6, label='fitted field')
pl.plot(zz, layer.normalize(layer.fieldcalc(zz, newsetup, d=d0), zeropos), 'r-', linewidth=2.4, label='coil field')

x = layer.getLayerNumber(newsetup)
pl.plot(newsetup['looppos'], np.array(x[0])/10.0, 'g--', label='coil wind number / 10')
pl.xlabel('Position')
pl.ylabel('Field / Coil wind number')
pl.ylim([-1.1, 1.1])
pl.title(r'pitch=%.1fmm, %.1fA, >%.1f$\Omega$, >%.1fW, %s' %(data['d0']*1000, curr, resist, power, basefile))
pl.legend(loc='best')


pl.savefig('%s.png' %basefile)
pl.savefig('%s.pdf' %basefile)

pl.show()
Example #2
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))

    layers = lo.getLayerNumber(setup)

    fig = pl.figure(figsize=(fh, fw))
    fig.text(0.5, 0.95, '%s: slower = %g m, Max B = %g G' %(filename, sl, max(bfield)*1e4 ), horizontalalignment='center')
    ## Layers plot
    pl.subplot(211)
    pl.plot(looppos, layers[0], 'k.')
    pl.xlim([looppos[0], looppos[-1]])
    pl.ylim([0, max(layer)+1])
    pl.xlabel('Position (m)')
    pl.ylabel('Layer number')

    ## Field plot
    pl.subplot(212)
    pl.plot(ze, lo.fieldcalc(ze, setup)/lo.fieldcalc(0, setup), 'k-', linewidth=3)
    pl.plot(ze, ze*0, 'k--', linewidth=1)