コード例 #1
0
def fieldfind(R, HelixSegList, filename):
    harmonicBW = 12
    RSphereList = [R, 0.95 * R, 0.5 * R, 0.25 * R]
    Big_rvect, Big_zvect, Big_fieldBox = Boxfieldfind(R, HelixSegList)
    Small_rvect, Small_zvect, Small_fieldBox = Boxfieldfind(R, HelixSegList, BoxSize=R)
    theta_phi_points = SHT.measurement_points(harmonicBW)
    BFieldonSpheres = [Sphericalfieldfind(R, HelixSegList, Rsphere, theta_phi_points) for Rsphere in RSphereList]

    BFieldSHTs = []
    for BField in BFieldonSpheres:
        fields = transpose(BField)
        Bx = fields[0]
        By = fields[1]
        Bz = fields[2]
        Bs = fields[3]
        tmp = [SHT.SHT(harmonicBW, realdata=f, mode="COS_SIN") for f in fields]
        BFieldSHTs.append(tmp)

    q = [
        "['Units_r','Units_z','Units_B'],Big_rvect,Big_zvect,Big_fieldBox(Bx,By,Bz,fieldsquared),Small_rvect,Small_zvect,Small_fieldBox(Bx,By,Bz,fieldsquared),harmonicBW,RSphereList,BFieldonSpheres,BFieldSHTs(one for each RSphere and (Bx,By,Bz,B2) for each one)",
        ["meters", "meters", "teslas"],
        Big_rvect,
        Big_zvect,
        Big_fieldBox,
        Small_rvect,
        Small_zvect,
        Small_fieldBox,
        harmonicBW,
        RSphereList,
        BFieldonSpheres,
        BFieldSHTs,
    ]
    f = file(filename, "w+")
    cPickle.dump(q, f)
    f.close()
コード例 #2
0
ファイル: test.py プロジェクト: cjwiggins/MagnetoShim
def tester():
    bw=4;
    num=len(SHT.measurement_points(bw))
    rdata=[1 for i in range(num)];
    idata=[0 for i in range(num)];
    pprint(bw)
    pprint(rdata)
    pprint(idata)
    #pprint(len(SHT.measurement_points(bw)))
    l=SHT.SHT(bw,rdata,idata)
    pprint(l)
    return
コード例 #3
0
ファイル: test.py プロジェクト: cjwiggins/MagnetoShim
def harmonizer_tester(n,m,harms,bw,Rsphere,mode="NONE"):
    """
    This function shows the data produced by the harmonizer function
    at a number of data points given a certain set of harmonic components

    see 'anothertester'
    """

    meas_points=[]#SHT.measurement_points(bw)
    for theta,phi in SHT.measurement_points(bw):
        meas_points.append(Vector([Rsphere,theta,phi],type="SPHERICAL"))
    d,rdata=SHT.harmonizer(meas_points,harms,mode=mode,pointType="VECTOR");

    harmplotterMAT(bw,harms,mode=mode)
 
    l=SHT.SHT(bw,realdata=rdata,mode=mode,Rref=Rsphere)
    pprint(l)
    return
コード例 #4
0
ファイル: test.py プロジェクト: cjwiggins/MagnetoShim
def multitester():
    """
     This function generates some data
     and then when the SHT is taken it should
     have the same harmonic components as were
     origininally generated
    """
    bw=8;
    #harmtype='_{n,m}'
    harmtype='_{n}^{m}'
    Rsphere=0.08
    meas_points=[]
    for theta,phi in SHT.measurement_points(bw):
        meas_points.append(Vector([Rsphere,theta,phi],type="SPHERICAL"))
    
    mode = "COS_SIN"
    harms=[((0,0),(1.0,0.0)),
           ((1,0),(1.0,0.0)),
           ((2,0),(1.0,0.0)),
           ((3,0),(1.0,0.0)),
           ((4,0),(2.0,0.0)),
           ((1,1),(1.0,1.0)),
           ((2,1),(1.0,1.0)),
           ((2,2),(0.0,1.0)),
           ((7,6),(0.0,20))]
    #harms=[((1,1),(1.0,0.0))]
           
    d,rdata=SHT.harmonizer(meas_points,harms,mode=mode,pointType="VECTOR",harmtype=harmtype)
  


    SHT.harmplotterMAT(bw,harms,Rsphere,mode=mode,harmtype=harmtype,type="3D")
    print "I am about to SHT"
    l=SHT.SHT(bw,realdata=rdata,mode=mode,Rref=Rsphere,harmtype=harmtype)
    print "I SHTed"
    pprint(l)

    return
コード例 #5
0
ファイル: NSSHT.py プロジェクト: cjwiggins/MagnetoShim
def SHTmeasurement_points(bw,r):#,color=(0,1,0)):
    """Return the SHT.measurement_points in terms of the point construct"""
    meas_points=SHT.measurement_points(bw)
    result=[Vector((r,theta,phi),type="SPHERICAL") for theta,phi in meas_points]#,color=color)
    return result