355 lines
11 KiB
Plaintext
355 lines
11 KiB
Plaintext
|
|
|
|
|
|
|
|
|
|
y_sep=0.01;
|
|
py_sep=0.0;
|
|
|
|
|
|
|
|
S20SY02.MKDC010.cory := SYKICK*2;
|
|
S20SY02.MKAC020.cory := SYKICK*3;
|
|
S20SY02.MKDC030.cory := SYKICK*2;
|
|
S20SY02.MKAC040.cory := SYKICK*3;
|
|
S20SY02.MKDC050.cory := SYKICK*2;
|
|
|
|
|
|
|
|
use,sequence=swissfel;
|
|
select,flag=Error,pattern="SAT.*";
|
|
ealign,DY=0.01;
|
|
|
|
MATCH,SEQUENCE=swissfel,range=s20sy02$start/s20sy02$end,beta0=Twisssep;
|
|
VARY,NAME=s20sy02.mqua070.k1,STEP=0.0001,lower=-3,upper=3;
|
|
VARY,NAME=s20sy02.mqua100.k1,STEP=0.0001,lower=-3,upper=3;
|
|
VARY,NAME=s20sy02.mqua140.k1,STEP=0.0001,lower=-3,upper=3;
|
|
VARY,NAME=s20sy02.mqua180.k1,STEP=0.0001,lower=-3,upper=3;
|
|
VARY,NAME=SYKICK,STEP=0.0001;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=S20SY02.mbnd200,y=y_sep;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=S20SY02.mbnd200,py=py_sep;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=S20SY02.mbnd200,dy=-0.007;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=S20SY02.mbnd200,dpy=1.7e-3;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=S20SY02.mqua180, BETY < 60;
|
|
LMDIF,CALLS=8000,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
|
|
|
|
! this statements are needed to have explicit values in the output file
|
|
SYKICK=0;
|
|
S20SY02.MKDC010.c1:= SYKICK*2;
|
|
S20SY02.MKAC020.c1:= SYKICK*3;
|
|
S20SY02.MKDC030.c1:= SYKICK*2;
|
|
S20SY02.MKAC040.c1:= SYKICK*3;
|
|
S20SY02.MKDC050.c1:= SYKICK*2;
|
|
|
|
|
|
s20bc01.mqua010.k1:=1.;
|
|
|
|
MATCH,SEQUENCE=Swissfel,range=s20sy02$start/s20bc02$end,beta0=twisssep;
|
|
VARY,NAME=s20bc01.mqua010.k1,STEP=0.0001;
|
|
VARY,NAME=s20bc01.mqua030.k1,STEP=0.0001;
|
|
VARY,NAME=s20bc01.mqua050.k1,STEP=0.0001;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range= s20bc02$end,betx<4;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range= s20bc02$end,bety<90;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range= s20bc01$end,betx<250;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range= s20bc01$end,bety<20;
|
|
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
twiss,SEQUENCE=swissfel,range=s20sy02$start/S20BC02$END,beta0=twisssep;
|
|
plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100;
|
|
|
|
|
|
|
|
muLin3=0.2;
|
|
pol = 1;
|
|
s20cb01.mqua430.k1=0.5*pol;
|
|
s20cb02.mqua430.k1=-0.5*pol;
|
|
|
|
match,SEQUENCE=swissfel,range=S20cb01$start/s20cb02$end;
|
|
Vary,name=S20CB01.MQUA430.k1,step=0.0001;
|
|
Vary,name=S20CB02.MQUA430.k1,step=0.0001;
|
|
constraint,sequence=swissfel,range=s20cb02$end,mux=muLin3;
|
|
constraint,sequence=swissfel,range=s20cb02$end,muy=muLin3;
|
|
lmdif,calls=100,tolerance=1e-21;
|
|
endmatch;
|
|
|
|
twiss,SEQUENCE=swissfel,range=s20cb01$start/s20cb02$end;
|
|
|
|
nbetx=table(twiss,s20cb02$end,betx);
|
|
nalfx=table(twiss,s20cb02$end,alfx);
|
|
nbety=table(twiss,s20cb02$end,bety);
|
|
nalfy=table(twiss,s20cb02$end,alfy);
|
|
plot,haxis=s,vaxis=betx,bety,colour=100;
|
|
|
|
|
|
|
|
s20cb03.mqua430.k1 = s20cb01.mqua430.k1;
|
|
s20cb04.mqua430.k1 = s20cb02.mqua430.k1;
|
|
s30cb01.mqua430.k1 = s20cb01.mqua430.k1;
|
|
s30cb02.mqua430.k1 = s20cb02.mqua430.k1;
|
|
s30cb03.mqua430.k1 = s20cb01.mqua430.k1;
|
|
s30cb04.mqua430.k1 = s20cb02.mqua430.k1;
|
|
s30cb05.mqua430.k1 = s20cb01.mqua430.k1;
|
|
s30cb06.mqua430.k1 = s20cb02.mqua430.k1;
|
|
s30cb07.mqua430.k1 = s20cb01.mqua430.k1;
|
|
s30cb08.mqua430.k1 = s20cb02.mqua430.k1;
|
|
s30cb09.mqua430.k1 = s20cb01.mqua430.k1;
|
|
s30cb10.mqua430.k1 = s20cb02.mqua430.k1;
|
|
s30cb11.mqua430.k1 = s20cb01.mqua430.k1;
|
|
s30cb12.mqua430.k1 = s20cb02.mqua430.k1;
|
|
s30cb13.mqua430.k1 = s20cb01.mqua430.k1;
|
|
s30cb14.mqua430.k1 = s20cb02.mqua430.k1;
|
|
|
|
|
|
|
|
|
|
MATCH,SEQUENCE=Swissfel,range=s20sy02$start/s20cb04$end,beta0=twisssep;
|
|
VARY,NAME=s20ma01.mqua010.k1,STEP=0.0001;
|
|
VARY,NAME=s20ma01.mqua020.k1,STEP=0.0001;
|
|
VARY,NAME=s20ma01.mqua040.k1,STEP=0.0001;
|
|
vary,name=s20cb01.mqua430.k1,step=0.0001;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range= s20cb03$start,betx=nbetx;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range= s20cb03$start,bety=nbety;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range= s20cb03$start,alfx=nalfx;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range= s20cb03$start,alfy=nalfy;
|
|
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
twiss,SEQUENCE=swissfel,range=s20sy02$start/S20cb04$end,beta0=twisssep;
|
|
plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100;
|
|
|
|
|
|
MATCH,SEQUENCE=Swissfel,range=s20sy02$start/s30cb07$end,beta0=twisssep;
|
|
VARY,NAME=s30cb01.mqua430.k1,STEP=0.0001;
|
|
VARY,NAME=s30cb02.mqua430.k1,STEP=0.0001;
|
|
VARY,NAME=s30cb03.mqua430.k1,STEP=0.0001;
|
|
VARY,NAME=s30cb04.mqua430.k1,STEP=0.0001;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range= s30cb05$start,betx=nbetx;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range= s30cb05$start,bety=nbety;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range= s30cb05$start,alfx=nalfx;
|
|
CONSTRAINT,SEQUENCE=SwissFEL,range= s30cb05$start,alfy=nalfy;
|
|
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
|
|
!L = 9;
|
|
!alpha = 1.5;
|
|
!beta = alpha*L;
|
|
|
|
|
|
!MATCH,SEQUENCE=Swissfel,range=s20sy02$start/s30cb14$end,beta0=twisssep;
|
|
!VARY,NAME=s30cb10.mqua430.k1,STEP=0.0001;
|
|
!VARY,NAME=s30cb11.mqua430.k1,STEP=0.0001;
|
|
!VARY,NAME=s30cb12.mqua430.k1,STEP=0.0001;
|
|
!VARY,NAME=s30cb13.mqua430.k1,STEP=0.0001;
|
|
!VARY,NAME=s30cb14.mqua430.k1,STEP=0.0001;
|
|
!CONSTRAINT,SEQUENCE=SwissFEL,range= s30cb14.mqua430$end,betx=beta;
|
|
!CONSTRAINT,SEQUENCE=SwissFEL,range= s30cb14.mqua430$end,bety=beta;
|
|
!CONSTRAINT,SEQUENCE=SwissFEL,range= s30cb14.mqua430$end,alfx=alpha;
|
|
!CONSTRAINT,SEQUENCE=SwissFEL,range= s30cb14.mqua430$end,alfy=alpha;
|
|
!CONSTRAINT,SEQUENCE=SwissFEL,range= s30cb14.mqua430$end,X<1;
|
|
!LMDIF,CALLS=1000,TOLERANCE=1.e-21;
|
|
!ENDMATCH;
|
|
|
|
twiss,SEQUENCE=swissfel,range=s20sy02$start/S30cb14$END,beta0=twisssep;
|
|
plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100;
|
|
|
|
|
|
|
|
Select,flag=Error,pattern="SPO.*";
|
|
EALIGN,DY=0.01;
|
|
|
|
|
|
PSYKICK:=0.1;
|
|
S30cb15.MKDC010.cory := PSYKICK*2;
|
|
S30cb15.MKAC020.cory := PSYKICK*3;
|
|
S30cb15.MKDC030.cory := PSYKICK*2;
|
|
S30cb15.MKAC040.cory := PSYKICK*3;
|
|
S30CB15.MKDC050.cory := PSYKICK*2;
|
|
pqf:=1;
|
|
|
|
S30cb15.mqua100.k1 := -0.2*pqf;
|
|
S30cb15.mqua200.k1 := -pqf;
|
|
|
|
MATCH,SEQUENCE=Swissfel,range=S30CB15$START/s30cb15$END,BETA0 = TWISSsep;
|
|
VARY, NAME=PSYKICK, STEP=0.00001;
|
|
VARY, NAME=PQF, STEP=0.00001;
|
|
CONSTRAINT, SEQUENCE=swissfel, RANGE=s30cb15$end, Y = 0.01;
|
|
CONSTRAINT, SEQUENCE=swissfel, RANGE=s30cb15$end, PY = 0.;
|
|
LMDIF, CALLS=1000, TOLERANCE=1.E-21;
|
|
ENDMATCH;
|
|
|
|
|
|
pbetx=3.9036;
|
|
palfx=-0.05021;
|
|
pbety=37.6374;
|
|
palfy=4.4433;
|
|
|
|
twisspor: beta0, betx=pbetx,alfx=palfx, bety=pbety,alfy=palfy;
|
|
|
|
s30cb13.mqua430.k1 = 0.456;
|
|
s30cb14.mqua430.k1 = -1.741;
|
|
s30cb15.mqua010.k1 = 1.1533;
|
|
s30cb15.mqua020.k1 = -0.0961;
|
|
|
|
MATCH,SEQUENCE=Swissfel,range=s20sy02$start/s30sy01$end,beta0=twisssep;
|
|
VARY,NAME=s30cb13.mqua430.k1,STEP=0.0001;
|
|
VARY,NAME=s30cb14.mqua430.k1,STEP=0.0001;
|
|
VARY,NAME=s30cb15.mqua010.k1,STEP=0.0001;
|
|
VARY,NAME=s30cb15.mqua020.k1,STEP=0.0001;
|
|
CONSTRAINT, SEQUENCE=swissfel, RANGE=s30cb15$end,betx=pbetx;
|
|
CONSTRAINT, SEQUENCE=swissfel, RANGE=s30cb15$end,bety=pbety;
|
|
CONSTRAINT, SEQUENCE=swissfel, RANGE=s30cb15$end,alfx=palfx;
|
|
CONSTRAINT, SEQUENCE=swissfel, RANGE=s30cb15$end,alfy=palfy;
|
|
!LMDIF, CALLS=1000, TOLERANCE=1.E-21;
|
|
Simplex, CALLS=1000, TOLERANCE=1.E-21;
|
|
ENDMATCH;
|
|
|
|
twiss,SEQUENCE=swissfel,range=s20sy02$start/s30cb15$end,beta0=twisssep;
|
|
plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100;
|
|
plot,haxis=s,vaxis=y,dy,range=s30cb15$start/#e,colour=100;
|
|
|
|
|
|
|
|
|
|
S30cb15.MKDC010.cory := 0;
|
|
S30cb15.MKAC020.cory := 0;
|
|
S30cb15.MKDC030.cory := 0;
|
|
S30cb15.MKAC040.cory := 0;
|
|
S30CB15.MKDC050.cory := 0;
|
|
R56 = -000e-6;
|
|
|
|
MATCH,RMATRIX,SEQUENCE=swissFEL,range=SARCL02$start/SARCL02$end,betx=10,alfx=0,bety=10,alfy=0;
|
|
VARY,NAME=sarcl02.mqua130.k1,STEP=0.0001;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarcl02.mqua210,re56=R56*0.5;
|
|
LMDIF,CALLS=100,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
|
|
sarcl02.mqua210.k1=-sarcl02.mqua130.k1*0.9;
|
|
|
|
MATCH,SEQUENCE=swissfel,range=sarcl02$start/sarma01.mqua010,betx=10,alfx=0,bety=10,alfy=0;
|
|
VARY,NAME=sarcl02.mqua250.k1,STEP=0.0001;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarcl02.dbpm260$end,dpx=0;
|
|
LMDIF,CALLS=100,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
|
|
sarcl02.mqua310.k1=sarcl02.mqua250.k1;
|
|
sarcl02.mqua350.k1=sarcl02.mqua210.k1;
|
|
sarcl02.mqua460.k1=sarcl02.mqua130.k1;
|
|
|
|
|
|
dL=0.625+0.25;
|
|
bx0=25;
|
|
bx=bx0+dL*dL/bx0;
|
|
ax=-dL/bx0;
|
|
by0=0.8;
|
|
by=by0+dL*dL/by0;
|
|
ay=-dL/by0;
|
|
|
|
|
|
twiss,sequence=swissfel,range=sarcl02.mqsk300/sarma01.mqua010,betx=bx,alfx=ax,bety=by,alfy=ay;
|
|
|
|
nbetx= table(twiss,sarma01$start,betx);
|
|
nalfx=-table(twiss,sarma01$start,alfx);
|
|
nbety= table(twiss,sarma01$start,bety);
|
|
nalfy=-table(twiss,sarma01$start,alfy);
|
|
|
|
|
|
|
|
|
|
MATCH,SEQUENCE=swissfel,range=S30SY01$start/sarma01.mqua010,beta0=twisspor;
|
|
VARY,NAME=sarcl01.mqua020.k1,STEP=0.0001;
|
|
VARY,NAME=sarcl01.mqua050.k1,STEP=0.0001;
|
|
VARY,NAME=sarcl01.mqua080.k1,STEP=0.0001;
|
|
VARY,NAME=sarcl01.mqua100.k1,STEP=0.0001;
|
|
VARY,NAME=sarcl01.mqua140.k1,STEP=0.0001;
|
|
VARY,NAME=sarcl01.mqua190.k1,STEP=0.0001;
|
|
!CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua080,betx=beta;
|
|
!CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua080,alfx=alpha;
|
|
!CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua080,bety=beta;
|
|
!CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua080,alfy=alpha;
|
|
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarcl02$start,betx=nbetx;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarcl02$start,alfx=nalfx;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarcl02$start,bety=nbety;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarcl02$start,alfy=nalfy;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua050,bety<30;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua190,betx<30;
|
|
LMDIF,CALLS=100,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
|
|
muAR=0.17;
|
|
match,SEQUENCE=swissfel,range=sarun02$start/sarun03$end;
|
|
Vary,name=sarun02.mqua080.k1,step=0.0001;
|
|
Vary,name=sarun03.mqua080.k1,step=0.0001;
|
|
constraint,sequence=swissfel,range=sarun03$end,mux=muAR;
|
|
constraint,sequence=swissfel,range=sarun03$end,muy=muAR;
|
|
lmdif,calls=100,tolerance=1e-21;
|
|
endmatch;
|
|
|
|
twiss,sequence=swissfel,range=sarun02$start/sarun03$end;
|
|
mbetx=table(twiss,sarun02$end,betx);
|
|
malfx=table(twiss,sarun02$end,alfx);
|
|
mbety=table(twiss,sarun02$end,bety);
|
|
malfy=table(twiss,sarun02$end,alfy);
|
|
|
|
plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100;
|
|
sarun04.mqua080.k1=sarun02.mqua080.k1;
|
|
sarun05.mqua080.k1=sarun03.mqua080.k1;
|
|
sarun06.mqua080.k1=sarun02.mqua080.k1;
|
|
sarun07.mqua080.k1=sarun03.mqua080.k1;
|
|
sarun08.mqua080.k1=sarun02.mqua080.k1;
|
|
sarun09.mqua080.k1=sarun03.mqua080.k1;
|
|
sarun10.mqua420.k1=sarun02.mqua080.k1;
|
|
sarun11.mqua080.k1=sarun03.mqua080.k1;
|
|
sarun12.mqua080.k1=sarun02.mqua080.k1;
|
|
sarun13.mqua080.k1=sarun03.mqua080.k1;
|
|
sarun14.mqua080.k1=sarun02.mqua080.k1;
|
|
sarun15.mqua080.k1=sarun03.mqua080.k1;
|
|
sarun16.mqua080.k1=sarun02.mqua080.k1;
|
|
sarun17.mqua080.k1=sarun03.mqua080.k1;
|
|
sarun18.mqua080.k1=sarun02.mqua080.k1;
|
|
sarun19.mqua080.k1=sarun03.mqua080.k1;
|
|
|
|
SARUN01.mqua080.k1=sarun03.mqua080.k1;
|
|
sarma02.mqua050.k1=0;
|
|
sarma02.mqua120.k1=0.7*sarun02.mqua080.k1;
|
|
|
|
|
|
sarma01.mqua010.k1 := -1.435783623;
|
|
sarma01.mqua060.k1 := 1.29993551;
|
|
sarma01.mqua080.k1 := -1.1356922498;
|
|
sarma01.mqua120.k1 := 0.4142170392;
|
|
sarma01.mqua140.k1 := -0.4428419456;
|
|
|
|
MATCH,SEQUENCE=swissfel,range=S30SY01$start/sarun02$start,beta0=twisspor;
|
|
VARY,NAME=sarma01.mqua010.k1,STEP=0.0001;
|
|
VARY,NAME=sarma01.mqua060.k1,STEP=0.0001;
|
|
VARY,NAME=sarma01.mqua080.k1,STEP=0.0001;
|
|
VARY,NAME=sarma01.mqua120.k1,STEP=0.0001;
|
|
VARY,NAME=sarma01.mqua140.k1,STEP=0.0001;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarun01$start,betx=mbetx;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarun01$start,bety=mbety;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarun01$start,alfx=malfx;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarun01$start,alfy=malfy;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarun02$start,x<5;
|
|
LMDIF,CALLS=100,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
|
|
|
|
twiss,SEQUENCE=swissfel,range=#s/sarun19$end,beta0=twiss0;
|
|
plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100;
|
|
plot,haxis=s,vaxis=dx,dy,range=#s/#e,colour=100;
|
|
|
|
exit;
|
|
|
|
|
|
|