source: MML/trunk/at/atdemos/spear2rad.m @ 4

Last change on this file since 4 was 4, checked in by zhangj, 10 years ago

Initial import--MML version from SOLEIL@2013

File size: 4.9 KB
Line 
1function spear2rad
2%SPEAR2RAD example lattice definition file
3% with CAVITY and CLASSICAL radiation
4% Created 11/21/99
5% Simplified SPEAR-II lattice
6% no BPMs, no correctors
7
8
9global FAMLIST THERING GLOBVAL
10
11GLOBVAL.E0 = 3e9;       % Design Energy [eV]
12GLOBVAL.LatticeFile = 'spear2rad';
13FAMLIST = cell(0);
14
15disp(' ');
16disp('** Loading SPEAR lattice in spear2rad.m **');
17
18
19AP = aperture('AP', [-0.05, 0.05, -0.05, 0.05],'AperturePass');
20
21
22DR01   =    drift('DR01' ,1.344800,'DriftPass');
23DR02   =    drift('DR02' ,0.860000,'DriftPass');
24DR03   =    drift('DR03' ,6.413180,'DriftPass');
25DR04   =    drift('DR04' ,0.611890,'DriftPass');
26DR04A  =    drift('DR04A',0.617123,'DriftPass');
27DR05   =    drift('DR05' ,2.823700,'DriftPass');
28DR06A  =    drift('DR06A',0.151205,'DriftPass');
29DR06B  =    drift('DR06B',0.229935,'DriftPass');
30DR07A  =    drift('DR07A',0.229948,'DriftPass');
31DR07B  =    drift('DR07B',0.151205,'DriftPass');
32DR08A  =    drift('DR08A',0.151205,'DriftPass');
33DR08B  =    drift('DR08B',0.227335,'DriftPass');
34DR09   =    drift('DR09' ,2.981660,'DriftPass');
35
36L0 =   2.341259880000003e+002; % design length [m]
37C0 =   299792458; % speed of light [m/s]
38
39%CAV    = rfcavity('CAV1' , 0, 1.6e+6 , 280*C0/L0,'IdentityPass');   
40
41CAV    = rfcavity('CAV1' , 0, 1.6e+6 , 280*C0/L0, 280, 'CavityPass');   
42
43% octupoles are inserted in drift DR03 between Q2 and Q1
44%OCT_Q1 =    drift('OCT_Q1' ,1.0056578,'DriftPass');
45%OCT_Q2 =    drift('OCT_Q2' ,5.1267822,'DriftPass');
46%OCT    =       sextupole('OCT'  , 0.28194, 0,'StrThickMPole4thOrderPass');
47%OCT   =                drift('OCT' ,0.28194,'DriftPass');
48
49
50
51%QF and QD valus set to have the tune at (7.13,5.23)
52Q3     =    quadrupole('Q3'  , 1.00000, 0.0000000,'StrMPoleSymplectic4RadPass');
53Q2     =    quadrupole('Q2'  , 1.34274, 0.0790090,'StrMPoleSymplectic4RadPass');
54Q1     =    quadrupole('Q1'  , 0.51834,-0.2595850,'StrMPoleSymplectic4RadPass');
55QFA    =    quadrupole('QFA' , 0.51834, 0.7931150,'StrMPoleSymplectic4RadPass');
56QFAH   =    quadrupole('QFAH', 0.25917, 0.7931150,'StrMPoleSymplectic4RadPass');
57QDA    =    quadrupole('QDA' , 0.51834,-0.6546270,'StrMPoleSymplectic4RadPass');
58QFB    =    quadrupole('QFB' , 0.51834, 0.5169680,'StrMPoleSymplectic4RadPass');
59QF     =    quadrupole('QF'  , 0.51834,  0.4498960277 ,'StrMPoleSymplectic4RadPass');
60QD     =    quadrupole('QD' , 0.51834,-0.669244391,'StrMPoleSymplectic4RadPass');
61
62
63
64% Fitted values to produce normalized chromaticities 0,0
65SF     =    sextupole('SF'  , 0.23335, 1.6768688886 ,'StrMPoleSymplectic4RadPass');
66SDA    =    sextupole('SDA' , 0.23335,-1.29030148931,'StrMPoleSymplectic4RadPass');
67SDB    =    sextupole('SDB' , 0.23335,-1.29030148931,'StrMPoleSymplectic4RadPass');
68
69
70
71
72
73BB     =    rbend('BB'  ,2.35785400,  ...
74            0.1848, 0.0924, 0.0924, 0,'BndMPoleSymplectic4RadPass');
75
76B      =    rbend('B'   ,1.17766900,   ...
77            0.0924, 0.0462, 0.0462, 0,'BndMPoleSymplectic4RadPass');
78
79% Begin Lattice
80
81
82
83
84SWSE =[ DR01 Q3 DR02 Q2 DR03 ...
85      Q1 DR04 BB DR04A ...
86      BB DR05 QFA DR06A ...
87        SF DR06B B DR07A SDA DR07B QDA DR08A ...
88        SDA DR08B BB DR08B SF DR08A QFB DR09 ...
89        QF DR04 BB DR08B SDB DR08A ...
90      QD DR08A SDB DR08B BB DR08B ...
91      SF DR08A QF DR09 QF ...
92      DR04 BB DR08B SDA DR08A QD ...
93      DR08A SDA DR08B BB DR04 QF ...
94      DR09 QF DR08A SF DR08B BB ...
95        DR08B SDB DR08A QD DR08A SDB DR08B BB ...
96      DR08B SF DR08A QF DR09 QF ...
97        DR04 BB DR08B SDA DR08A QD ...
98      DR08A SDA DR08B BB DR04 ...
99      QF DR09 QF DR08A SF DR08B BB ...
100      DR08B SDB DR08A QD DR08A SDB ...
101      DR08B BB DR04 QF DR09 QFB DR08A ...
102      SF DR08B BB DR08B SDA DR08A QDA ...
103      DR07B SDA DR07A B DR06B ...
104      SF DR06A QFA DR05 BB DR04A BB DR04 Q1 DR03...
105      Q2 DR02 Q3 DR01 ];
106
107 NENW =  [ DR01 Q3 DR02 Q2 DR03 ...
108        Q1 DR04 BB DR04A ...
109      BB DR05 QFA DR06A ...
110      SF DR06B B DR07A SDA DR07B QDA DR08A ...
111      SDA DR08B BB DR08B SF DR08A QFB DR09 ...
112      QF DR04 BB DR08B SDB DR08A QD ...
113      DR08A SDB DR08B BB DR08B ...
114      SF DR08A QF DR09 QF ...
115      DR04 BB DR08B SDA DR08A QD ...
116      DR08A SDA DR08B BB DR04 QF ...
117      DR09 QF DR08A SF DR08B BB ...
118      DR08B SDB DR08A QD ...
119                DR08A SDB DR08B BB ...
120      DR08B SF DR08A QF DR09 QF ...
121      DR04 BB DR08B SDA DR08A  ...
122      QD DR08A SDA DR08B BB DR04 ...
123      QF DR09 QF DR08A SF DR08B BB ...
124      DR08B SDB DR08A QD DR08A SDB ...
125      DR08B BB DR04 QF DR09 QFB DR08A ...
126      SF DR08B BB DR08B SDA DR08A QDA ...
127      DR07B SDA DR07A B DR06B ...
128      SF DR06A QFA DR05 BB DR04A BB DR04 Q1 DR03 ...
129      Q2 DR02 Q3 DR01 ];
130     
131     
132     
133      ELIST =  [CAV SWSE NENW AP];
134      % ELIST =  [SWSE NENW AP];       
135      ELIST = reverse(ELIST);
136
137THERING=cell(size(ELIST));
138for i=1:length(THERING)
139   THERING{i} = FAMLIST{ELIST(i)}.ElemData;
140   FAMLIST{ELIST(i)}.NumKids=FAMLIST{ELIST(i)}.NumKids+1;
141   FAMLIST{ELIST(i)}.KidsList = [FAMLIST{ELIST(i)}.KidsList i];
142end
143
144
145evalin('caller','global THERING FAMLIST GLOBVAL' );
146disp('** Done **');
147
148
149
150
151
152
153
154
Note: See TracBrowser for help on using the repository browser.