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']] # Get the needed current to run the coils:
import zeemanslower as zs from layeroptimize import * # Whether or not separate the images separate = False prefix = "test" # This the testing data to get the B-field scaling series = 12 filename = "%d_AWG1_5.npz" %(series) sim = np.load(filename)['simulation'][()] eta, v0, vf, detu, R = sim['eta'], sim['v0'], sim['vf'], sim['detu'], sim['R'] atom = zs.Rb87() sl = zs.slowerlength(atom.aslow, eta, v0, vf) z = np.array([0]) bfield = zs.bideal(atom, z, eta, v0, vf, detu) # # This the testing data to get the B-field scaling # series = 9 # filename = "%d_AWG18_5.npz" %(series) # sim = np.load(filename)['simulation'][()] # eta, v0, vf, detu = sim['eta'], sim['v0'], sim['vf'], sim['detu'] # atom = zs.K41() # sl = zs.slowerlength(atom.aslow, eta, v0, vf) # z = np.array([0]) # bfield = zs.bideal(atom, z, eta, v0, vf, detu) def getdata(filename): # Change from 0-d array into dict sim = np.load(filename)['simulation'][()]
import zeemanslower as zs simfile = "19_AWG12Coat_10.npz" sim = np.load(simfile)['simulation'][()] atom = zs.Rb87() wire = sim['wire'] setup = sim['setup'] eta = sim['eta'] v0 = sim['v0'] vf = sim['vf'] sl = zs.slowerlength(atom.aslow, eta, v0, 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'] bideal = zs.bideal(atom, 0, 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) ze = np.linspace(0.4, z[-1], 201) # for i, s in enumerate(segments): # print i, s, layer[i] f1 = lo.fieldcalc(ze, setup)/lo.fieldcalc(0, setup) pl.plot(ze, lo.fieldcalc(ze, setup)/lo.fieldcalc(0, setup), 'k-', linewidth=1) print setup['segments'] segments[18] = [302, 302] segments[19] = [302, 304] segments[20] = [304, 304]
fieldfile = "16_AWG12Coat_10.npz" atom = zs.Rb87() sim = np.load(fieldfile)['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([-10*R], np.append(np.linspace(0, sl, 61), [sl+10*R])) ze = np.linspace(z[0], z[-1], 201) ratio = 1 filename = 'trajectory01.npz' simed = True if simed: setup['csign'] = [s*ratio if s < 0 else s for s in setup['csign']] # Get the needed current to run the coils: bf = lo.fieldcalc(ze, setup) B0 = zs.bideal(atom, 0, eta, v0, vf, detu) I = B0[0] / lo.fieldcalc(0, setup)[0] print "Current:", I bf *= I field = lambda z: lo.fieldcalc(z, setup)*I
if __name__ == "__main__": atom = zs.Rb87() v0 = 254 vf = 30 eta = 0.5 # z0 = 0 # vmin, vmax = 230, 270 z0 = zs.slowerlength(atom.aslow, eta, v0, vf) z0 = 0.5683 vmin, vmax = 3, 130 detu = -175*1e6*2*np.pi B0 = zs.bideal(atom, [z0], eta, v0, vf, detu/(-2e6*np.pi)) vrange = np.linspace(vmin, vmax, 50000) delta = atom.k*vrange + detu - zs.uprimehbar * B0 s = eta/(1-eta) s = 2 print s a = -zs.hbar*atom.k*atom.G/(2*atom.m) * s/(1 + s + 4*delta**2 / atom.G**2) dz = 0.001 B = zs.bideal(atom, [z0], eta, v0, vf, detu/(-2e6*np.pi)) dBdz = np.diff(zs.bideal(atom, [z0, z0+dz], eta, v0, vf, detu/(-2e6*np.pi)))/dz # dBdz = 0 # dBdz = zs.hbar*atom.k*atom.G/(2*atom.m) * s/(1 + s) print B, dBdz ddeltaz = atom.k*a/vrange - zs.uprimehbar*dBdz # pl.plot(vrange, delta) i = np.argmin(ddeltaz)