Esempio n. 1
0
def make_thin (kf1,kf2,ld,anz=1,verbose=False):
    kd1 = kf1       # k1 for qf1 & qd1
    ld1 = lf1 = 0.4 # len qf1 & qd1
    ff1 = kf1*lf1   # focal length qf1
    fd1 = kd1*ld1   # focal length qd1

    kf2 = kf2
    kd2 = kf2       # same as above for qf2 & qd2
    lf2 = ld2 = lf1
    ff2 = kf2*lf2
    fd2 = kd2*ld2

    slices = 1      # present the quad by 1 thin-quads   (bad!)
    slices = 3      # present the quad by 3 thin-quads   (better!)
    slices = 6      # present the quad by 6 thin-quads   (near perfect!)
    
    DL  = D(length=ld,label='L')
    QF1 = QFth(k0=kf1,length=0.5*lf1/slices,label='QF1')
    QF2 = QFth(k0=kf2,length=0.5*lf2/slices,label='QF2')
    QD1 = QDth(k0=kd1,length=0.5*ld1/slices,label='QD1')
    QD2 = QDth(k0=kd2,length=0.5*ld2/slices,label='QD2')

    cell = Lattice()
    for i in range(slices): cell.add_element(QD1)
    for i in range(slices): cell.add_element(QF1)
    cell.add_element(DL)
    for i in range(slices): cell.add_element(QD2)
    for i in range(slices): cell.add_element(QF2)
    for i in range(slices): cell.add_element(QF2)
    for i in range(slices): cell.add_element(QD2)
    cell.add_element(DL)
    for i in range(slices): cell.add_element(QF1)
    for i in range(slices): cell.add_element(QD1)

    lat = Lattice()
    for i in range(anz):
        lat.concat(cell)
    lat.cell()
    mcell = lat.accel
    betax = lat.betax0
    betay = lat.betay0

    if verbose:
        # {:.3f}
        print('L= {:.3f}'.format(ld),end=' ')
        print('triplet 1: kf= {:.3f}, kd={:.3f}'.format(kf1,kd1),end=' | ')
        print('triplet 2: kf= {:.3f}, kd={:.3f}'.format(kf2,kd2),end=' | ')
        print('betax= {:.3f}, betay= {:.3f}'.format(betax,betay))
    return lat,betax,betay
Esempio n. 2
0
def make_thick(kf1,kf2,ld,anz=1,verbose=False):
    kf1 = kf1
    kd1 = kf1
    lf1 = 0.4
    ld1 = lf1
    ff1 = kf1*lf1
    fd1 = kd1*ld1

    kf2 = kf2
    kd2 = kf2
    lf2 = lf1
    ld2 = lf2
    ff2 = kf2*lf2
    fd2 = kd2*ld2

    ld = ld

    DL  = D(length=ld,label='L')
    QF1 = QF(k0=kf1,length=0.5*lf1,label='QF1')
    QF2 = QF(k0=kf2,length=0.5*lf2,label='QF2')
    QD1 = QD(k0=kd1,length=0.5*ld1,label='QD1')
    QD2 = QD(k0=kd2,length=0.5*ld2,label='QD2')

    cell = Lattice()
    cell.add_element(QD1)
    cell.add_element(QF1)
    cell.add_element(DL)
    cell.add_element(QD2)
    cell.add_element(QF2)
    cell.add_element(QF2)
    cell.add_element(QD2)
    cell.add_element(DL)
    cell.add_element(QF1)
    cell.add_element(QD1)
    lat = Lattice()
    for i in range(anz):
        lat.concat(cell)
    lat.cell()
    mcell = lat.accel
    betax = lat.betax0
    betay = lat.betay0
    if verbose:
        # {:.3f}
        print('L= {:.3f}'.format(ld),end=' ')
        print('triplet 1: kf= {:.3f}, kd={:.3f}'.format(kf1,kd1),end=' | ')
        print('triplet 2: kf= {:.3f}, kd={:.3f}'.format(kf2,kd2),end=' | ')
        print('betax= {:.3f}, betay= {:.3f}'.format(betax,betay))
    return lat,betax,betay