! FFAG Prototype Cell !--- Pipes, Blocks FF.pip: pipe, L = 0.40, aperture_at = both_ends, aperture_type = elliptical, x_limit = 35e-3, y_limit = 35e-3 FF.Qua: QUAD, fringe_type = full, field_master = T, scale_multipoles = F FF.QF: FF.Qua, L = 0.133, type = "FFAG_QF" FF.QD: FF.Qua, L = 0.122, type = "FFAG_QD" FF.QF[descrip] = "3DMODEL=Halbach_QF/Halbach_QF.blend" FF.QD[descrip] = "3DMODEL=Halbach_BD/Halbach_BD.blend" FF.Blk: FF.pip, L = 0.042 FF.Blk01: FF.Blk FF.pipe.L = 0.402 !140241 FF.Pip01: FF.Pip, L = FF.pipe.L/2 FF.Pip02: FF.Pip, L = FF.pipe.L/2 FF.stretch = 5.5e-3 ! Stretch for straight cells. Affects the path length roughly as 100* this number !--- Quads FF.QF[B1_GRADIENT] = -1.13932228010596E+01 FF.QD[B1_GRADIENT] = 1.10014677785870E+01 FF.QD[X_OFFSET] = 2.79318344874404E-02 FF.QF[FQ1] = -4.08269195941274E-04 FF.QD[FQ1] = -3.83903145692748E-04 FF.QF[FQ2] = 7.04018411844126E-05 FF.QD[FQ2] = 4.90155460674233E-05 ! Straight match !FF.QF[B1_GRADIENT] = -1.07748099222505E+01 !FF.QD[B1_GRADIENT] = 1.04182266909332E+01 FF.quad_padding = 0.012 FF.Qua01: FF.QF, superimpose, ref = FF.Pip01, ele_origin = end, ref_origin=end, offset = -FF.quad_padding FF.Qua02: FF.QD, superimpose, ref = FF.Pip02, ele_origin =beginning, ref_origin=beginning, offset = FF.quad_padding !--- Patches FF.patch1: patch FF.patch2: patch !FF.Ltot = FF.Pip01[L] + FF.Pip02[L] FF.angle = -5*pi/180 FF.patch1[x_pitch] = FF.angle/2 FF.patch2[x_pitch] = FF.angle/2 ! !--- Markers FF.Mar.BEG: MARKER FF.Mar.END: MARKER FF.Qua01.Mar.BEG: MARKER FF.Qua01.Mar.END: MARKER !FF.Qua01.Mar.MID: MARKER, superimpose, ref = FF.Qua01 FF.Qua02.Mar.BEG: MARKER FF.Qua02.Mar.END: MARKER !FF.Qua02.Mar.MID: MARKER, superimpose, ref = FF.Qua02 !FF.Pip01.Mar.MID: MARKER, superimpose, ref = FF.Pip01 !FF.Pip02.Mar.MID: MARKER, superimpose, ref = FF.Pip02 ! 3D models !FF.Qua01[descrip] = "3DMODEL=Halbach_QF/Halbach_QF.blend" !FF.Qua02[descrip] = "3DMODEL=Halbach_QD/Halbach_QD.blend" FF.Blk01[descrip] = "3DMODEL=FFAG_BPM_Block/FFAG_BPM_Block.blend" FF.Pum01: instrument, L = 0.10 FF.Pum01[descrip] = "3DMODEL=7206-612_FFAG_Pump_Port/7206-612_FFAG_Pump_Port.blend" ! - - - Lines ! Dummy lines for periodic field overlaps F1: fiducial, origin_ele = FF.Mar.BEG F2: fiducial, origin_ele = FF.Mar.END FF.Pip00: FF.Pip02 FF.Pip03: FF.Pip01 FF.Qua00: FF.QD, superimpose, ref = FF.Pip00, ele_origin =beginning, ref_origin=beginning, offset = FF.quad_padding FF.Qua03: FF.QF, superimpose, ref = FF.Pip03, ele_origin = end, ref_origin=end, offset = -FF.quad_padding FF.dummy1: line = (FF.Pip00, F1) FF.dummy2: line = (F2, FF.Pip03) FF.dummy1[geometry] = open ! Prevents closed orbit calc FF.dummy2[geometry] = open FF.arc_cell: line = (FF.Mar.BEG, FF.Pip01, FF.patch1, FF.Blk01, FF.patch2, FF.Pip02, FF.Mar.END) FF.drift: drift, L = 0.40, aperture_at = both_ends, aperture_type = elliptical, x_limit = 35e-3, y_limit = 35e-3 FF.drift2: FF.drift, L = FF.quad_padding + FF.Blk01[L]/2/cos(FF.angle/2) FF.drift3: FF.drift, L = FF.quad_padding + FF.Blk01[L]/2/cos(FF.angle/2) FF.drift1: FF.drift, L = FF.Pip02[L] - FF.QF[L] - FF.quad_padding FF.drift4: FF.drift, L = FF.Pip01[L] - FF.QD[L] - FF.quad_padding QF.edge1: multipole, k1L = 0 QF.edge2: multipole, k1L = 0 QD.edge1: multipole, k1L = 0 QD.edge2: multipole, k1L = 0 !O_QF: group = {FF.drift1[L]: -delta_L + delta_z, FF.QF[L]: delta_L , FF.drift2[L]: -delta_z}, var = {delta_L, delta_z} !O_QD: group = {FF.drift4[L]: -delta_L - delta_z, FF.QD[L]: delta_L , FF.drift3[L]: delta_z}, var = {delta_L, delta_z} !O_QF_offset: overlay = {QF.edge1, FF.QF, QF.edge2}, x_offset !O_QD_offset: overlay = {QD.edge1, FF.QD, QD.edge2}, x_offset !O_QF_offset[x_offset] = FF.QF[x_offset] !O_QD_offset[x_offset] = FF.QD[x_offset] FF.arc_cell_no_superimpose: line = (FF.Mar.BEG, FF.drift1, ! QF.edge1, FF.QF, ! QF.edge2, FF.drift2, FF.patch1, !FF.Blk01, FF.patch2, FF.drift3, ! QD.edge1, FF.QD, ! QD.edge2, FF.drift4, FF.Mar.END) FF.Ben: SBEND, fringe_type = full, higher_order_fringe_type = full FF.QF_sbend: FF.Ben, L = FF.QF[L], b1_gradient = FF.QF[b1_gradient] FF.QD_sbend: FF.Ben, L = FF.QD[L], b1_gradient = FF.QD[b1_gradient] FF.QF_sbend[b_field] = 0.203039 FF.QD_sbend[b_field] = -0.323509 FF.arc_cell_using_sbend: line = (FF.Mar.BEG, FF.drift1, FF.QF_sbend, FF.drift2, !FF.patch1, !FF.Blk01, !FF.patch2, FF.drift3, FF.QD_sbend, FF.drift4, FF.Mar.END) FF.straight_cell: line = (FF.Mar.BEG, FF.Qua01.Mar.BEG, FF.Qua01, FF.Qua01.Mar.END, FF.Pip01, FF.Qua02.Mar.BEG, FF.Qua02, FF.Qua02.Mar.END, FF.Pip02, FF.Mar.END)