317 lines
9.8 KiB
Plaintext
317 lines
9.8 KiB
Plaintext
|
|
|
|
!-----------------------------------
|
|
! switch yard
|
|
! matching condition at the septum, the new design by Natalia on 27th July 2011
|
|
! find the correct kicker strength to have the right dispersion and offset.
|
|
S20SY02.MKDC010.cory := 0;
|
|
S20SY02.MKAC020.cory := 0;
|
|
S20SY02.MKDC030.cory := 0;
|
|
S20SY02.MKAC040.cory := 0;
|
|
S20SY02.MKDC050.cory := 0;
|
|
|
|
|
|
!------------------------------
|
|
! match periodic lattice of linac 3
|
|
s30cb01.mqua430.k1 := 0.8168941546;
|
|
s30cb02.mqua430.k1 := -0.8168914699;
|
|
muLin3=0.1883;
|
|
|
|
match,SEQUENCE=swissfel,range=s30cb01$start/s30cb03$start;
|
|
Vary,name=S30CB01.MQUA430.k1,step=0.0001;
|
|
Vary,name=S30CB02.MQUA430.k1,step=0.0001;
|
|
constraint,sequence=swissfel,range=s30cb02$end,mux=muLin3;
|
|
constraint,sequence=swissfel,range=s30cb02$end,muy=muLin3;
|
|
lmdif,calls=100,tolerance=1e-21;
|
|
endmatch;
|
|
|
|
|
|
|
|
S30CB03.MQUA430.k1=S30CB01.MQUA430.k1;
|
|
S30CB04.MQUA430.k1=S30CB02.MQUA430.k1;
|
|
S30CB05.MQUA430.k1=S30CB01.MQUA430.k1;
|
|
S30CB06.MQUA430.k1=S30CB02.MQUA430.k1;
|
|
S30CB07.MQUA430.k1=S30CB01.MQUA430.k1;
|
|
S30CB08.MQUA430.k1=S30CB02.MQUA430.k1;
|
|
S30CB09.MQUA430.k1=S30CB01.MQUA430.k1;
|
|
S30CB10.MQUA430.k1=S30CB02.MQUA430.k1;
|
|
S30CB11.MQUA430.k1=S30CB01.MQUA430.k1;
|
|
S30CB12.MQUA430.k1=S30CB02.MQUA430.k1;
|
|
S30CB13.MQUA430.k1=S30CB01.MQUA430.k1;
|
|
S30CB14.MQUA430.k1=S30CB02.MQUA430.k1;
|
|
S30CB15.MQUA430.k1=S30CB01.MQUA430.k1;
|
|
|
|
|
|
twiss,SEQUENCE=swissfel,range=s30cb01$start/s30cb02$end;
|
|
nbetx=table(twiss,s30cb02$end,betx);
|
|
nalfx=table(twiss,s30cb02$end,alfx);
|
|
nbety=table(twiss,s30cb02$end,bety);
|
|
nalfy=table(twiss,s30cb02$end,alfy);
|
|
|
|
|
|
use,sequence=swissfel;
|
|
MATCH,SEQUENCE=swissfel,range=s20SY02$start/s30cb01$end,beta0=twisssep;
|
|
VARY,NAME=s20sy03.mqua020.k1,STEP=0.0001,lower=-2.2,upper=2.2;
|
|
VARY,NAME=s20sy03.mqua030.k1,STEP=0.0001,lower=-2.2,upper=2.2;
|
|
VARY,NAME=s20sy03.mqua050.k1,STEP=0.0001,lower=-2.2,upper=2.2;
|
|
VARY,NAME=s20sy03.mqua060.k1,STEP=0.0001,lower=-2.2,upper=2.2;
|
|
VARY,NAME=s20sy03.mqua100.k1,STEP=0.0001,lower=-2.2,upper=2.2;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=s20sy03$end,betx=nbetx;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=s20sy03$end,alfx=nalfx;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=s20sy03$end,bety=nbety;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=s20sy03$end,alfy=nalfy;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=s20sy03.mqua060$start,betx<30; ! for the new design
|
|
LMDIF,CALLS=100,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
|
|
use,sequence=swissfel;
|
|
MATCH,SEQUENCE=swissfel,range=s20SY02$start/s30cb12$end,beta0=twisssep;
|
|
VARY,NAME=s30cb06.mqua430.k1,STEP=0.0001;
|
|
VARY,NAME=s30cb07.mqua430.k1,STEP=0.0001;
|
|
VARY,NAME=s30cb08.mqua430.k1,STEP=0.0001;
|
|
VARY,NAME=s30cb09.mqua430.k1,STEP=0.0001;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=s30cb10.mqua430$start,betx=twissL3->BETX;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=s30cb10.mqua430$start,alfx=twissL3->ALFX;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=s30cb10.mqua430$start,bety=twissL3->BETY;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=s30cb10.mqua430$start,alfy=twissL3->ALFY;
|
|
LMDIF,CALLS=100,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
|
|
twiss,SEQUENCE=swissfel,range=s20SY02$start/sarcl01$start,beta0=twisssep;
|
|
plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100;
|
|
|
|
|
|
|
|
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!1
|
|
! energy collimator
|
|
if (ECOLasBC ==0.) {
|
|
sarcl02.mqua130.k1=1.8;
|
|
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;
|
|
sarcl02.mqua250.k1= sarcl02.mqua130.k1;
|
|
|
|
MATCH,SEQUENCE=swissfel,range=SARCL02$START/SARCL02$END,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/sarcl02$end,betx=bx,alfx=ax,bety=by,alfy=ay;
|
|
plot,haxis=s,vaxis=betx,bety,colour=100;
|
|
|
|
nbetx= table(twiss,sarcl02$end,betx);
|
|
nalfx=-table(twiss,sarcl02$end,alfx);
|
|
nbety= table(twiss,sarcl02$end,bety);
|
|
nalfy=-table(twiss,sarcl02$end,alfy);
|
|
|
|
|
|
sarcl02.msex255.k2:=110;
|
|
sarcl02.msex305.k2:=110;
|
|
|
|
|
|
MATCH,chrom,SEQUENCE=sarcl02,range=#s/#e,betx=nbetx,alfx=nalfx,bety=nbety,alfy=nalfy;
|
|
VARY,NAME=ecol_k2,STEP=0.0001;
|
|
CONSTRAINT,SEQUENCE=Sarcl02,range=#e,ddx=0;
|
|
LMDIF,CALLS=100,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
sarcl02.msex255.k2=ecol_k2;
|
|
sarcl02.msex305.k2=ecol_k2;
|
|
|
|
twiss,chrom,rmatrix,range=SARCL02$START/SARCL02$END,betx=nbetx,alfx=nalfx,bety=nbety,alfy=nalfy;
|
|
plot,haxis=s,vaxis=betx,colour=100;
|
|
plot,haxis=s,vaxis=bety,colour=100;
|
|
plot,haxis=s,vaxis=dx,colour=100;
|
|
plot,haxis=s,vaxis=ddx,colour=100;
|
|
plot,haxis=s,vaxis=re56,colour=100;
|
|
|
|
|
|
} else {
|
|
sarcl02.mqua130.k1=0;
|
|
sarcl02.mqua210.k1=0;
|
|
sarcl02.mqua250.k1=0;
|
|
sarcl02.mqua310.k1=0;
|
|
sarcl02.mqua350.k1=0;
|
|
sarcl02.mqua460.k1=0;
|
|
sarcl02.msex255.k2=0;
|
|
sarcl02.msex305.k2=0;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
!---------------------------------
|
|
! match into energy collimator
|
|
! reference point is sarma01-mqua010
|
|
|
|
|
|
sarcl01.mqua020.k1 := 0.4550820417;
|
|
sarcl01.mqua050.k1 := -0.02350776516;
|
|
sarcl01.mqua080.k1 := -0.3705426893;
|
|
sarcl01.mqua100.k1 := 0.3937186328;
|
|
sarcl01.mqua140.k1 := 1.214406656;
|
|
sarcl01.mqua190.k1 := -1.475278354;
|
|
|
|
|
|
use,sequence=swissfel;
|
|
MATCH,SEQUENCE=swissfel,range=s20SY02$start/sarma02$start,beta0=twisssep;
|
|
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;
|
|
if (ECOLasBC ==0.){
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarma01.mqua010$start,betx=twissARECOL->BETX;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarma01.mqua010$start,alfx=twissARECOL->ALFX;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarma01.mqua010$start,bety=twissARECOL->BETY;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarma01.mqua010$start,alfy=twissARECOL->ALFY;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua050,bety<30;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua190,betx<30;
|
|
} else {
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarcl02.dscr280$start,betx = 10;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarcl02.dscr280$start,alfx=0.14;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarcl02.dscr280$start,bety = 10;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarcl02.dscr280$start,alfy=0.14;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua050,bety<70;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua190,betx<70;
|
|
}
|
|
LMDIF,CALLS=100,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
|
|
|
|
twiss,sequence=swissfel,range=s20SY02$start/sarcl01$start,beta0=twisssep;
|
|
plot,haxis=s,vaxis=betx,bety,range=S30CB15$START/SARCL02$END,colour=100;
|
|
|
|
|
|
|
|
!---------------------
|
|
! match periodic lattice of Aramis
|
|
|
|
muAR=0.15;
|
|
sarun03.mqua080.k1 := -1.699673315;
|
|
sarun04.mqua080.k1 := 1.746074065;
|
|
|
|
match,SEQUENCE=swissfel,range=sarun03$start/sarun04$end;
|
|
Vary,name=sarun03.mqua080.k1,step=0.0001;
|
|
Vary,name=sarun04.mqua080.k1,step=0.0001;
|
|
constraint,sequence=swissfel,range=sarun04$end,mux=muAR;
|
|
constraint,sequence=swissfel,range=sarun04$end,muy=muAR;
|
|
lmdif,calls=100,tolerance=1e-21;
|
|
endmatch;
|
|
|
|
|
|
twiss,SEQUENCE=swissfel,range=sarun03$start/sarun04$end;
|
|
nbetx=table(twiss,sarun04$end,betx);
|
|
nalfx=table(twiss,sarun04$end,alfx);
|
|
nbety=table(twiss,sarun04$end,bety);
|
|
nalfy=table(twiss,sarun04$end,alfy);
|
|
|
|
|
|
sarma02.mqua050.k1=sarun03.mqua080.k1*0.5;
|
|
sarma02.mqua120.k1=sarun04.mqua080.k1;
|
|
sarun01.mqua080.k1=sarun03.mqua080.k1;
|
|
sarun02.mqua080.k1=sarun04.mqua080.k1;
|
|
|
|
!---------------------------
|
|
! matching into the undulator line
|
|
|
|
|
|
sarma01.mqua010.k1 := -1.1706132612849132;
|
|
sarma01.mqua060.k1 := 1.5075569628969636;
|
|
sarma01.mqua080.k1 :=-0.6940972890297992;
|
|
sarma01.mqua120.k1 := -0.18956644741333395;
|
|
sarma01.mqua140.k1 := 0.5634249743213624;
|
|
|
|
|
|
|
|
MATCH,SEQUENCE=swissfel,range=s20SY02$start/sarun06$start,beta0=twisssep;
|
|
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=sarun03$start,betx=nbetx;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarun03$start,alfx=nalfx;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarun03$start,bety=nbety;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarun03$start,alfy=nalfy;
|
|
CONSTRAINT,SEQUENCE=swissfel,range=sarma01.mqua060,betx<40;
|
|
SIMPLEX,CALLS=1000,TOLERANCE=1.e-21;
|
|
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
|
|
ENDMATCH;
|
|
|
|
|
|
sarun05.mqua080.k1=sarun03.mqua080.k1;
|
|
sarun06.mqua080.k1=sarun04.mqua080.k1;
|
|
sarun07.mqua080.k1=sarun03.mqua080.k1;
|
|
sarun08.mqua080.k1=sarun04.mqua080.k1;
|
|
sarun09.mqua080.k1=sarun03.mqua080.k1;
|
|
sarun10.mqua080.k1=sarun04.mqua080.k1;
|
|
sarun11.mqua080.k1=sarun03.mqua080.k1;
|
|
sarun12.mqua080.k1=sarun04.mqua080.k1;
|
|
sarun13.mqua080.k1=sarun03.mqua080.k1;
|
|
sarun14.mqua080.k1=sarun04.mqua080.k1;
|
|
sarun15.mqua080.k1=sarun03.mqua080.k1;
|
|
sarun16.mqua080.k1=sarun04.mqua080.k1;
|
|
sarun17.mqua080.k1=sarun03.mqua080.k1;
|
|
sarun18.mqua080.k1=sarun04.mqua080.k1;
|
|
|
|
sarun19.mqua080.k1=sarun03.mqua080.k1;
|
|
sarun20.mqua080.k1=sarun04.mqua080.k1;
|
|
sarbd01.mqua020.k1=0;
|
|
|
|
|
|
|
|
match,sequence=swissfel,range=s20SY02$start/satbd02$end,beta0=twisssep;
|
|
vary,name=sarun19.mqua080.k1,step=0.0001,lower=-3,upper=3;
|
|
vary,name=sarun20.mqua080.k1,step=0.0001,lower=-3,upper=3;
|
|
vary,name=sarbd02.mqua030.k1,step=0.0001;
|
|
constraint,sequence=swissfel,range=satbd02$end,betx<200;
|
|
constraint,sequence=swissfel,range=satbd02$end,bety<150;
|
|
constraint,sequence=swissfel,range=satbd02$end,dx<100;
|
|
constraint,sequence=swissfel,range=satbd02$end,dy<0.5;
|
|
lmdif,calls=300,tolerance=1e-21;
|
|
endmatch;
|
|
|
|
twiss,RMATRIX,SEQUENCE=swissfel,range=#s/sarbd02$end,beta0=twiss0;
|
|
plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100;
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|