!----------------------------------- ! 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. y_sep=0.01; py_sep=0.0; dy_sep=-y_sep; dpy_sep=-py_sep; 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; 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.006; CONSTRAINT,SEQUENCE=swissfel,range=S20SY02.mbnd200,dpy<1; CONSTRAINT,SEQUENCE=swissfel,range=S20SY02.mqua180, BETY < 60; LMDIF,CALLS=8000,TOLERANCE=1.e-21; ENDMATCH; use,sequence=swissfel; select,flag=Error,pattern="SAT.*"; ealign,DY=0.01; satsy01.mqua020.k1 := 0.48577; satsy01.mqua040.k1 := 1.0122; satsy01.mqua070.k1 := -0.055; satsy01.mqua090.k1 := -0.826; kmin=-2.1; kmax=2.1; MATCH,SEQUENCE=swissfel,range=s20SY02$start/satcl01$end,beta0=twisssep; VARY, NAME=satsy01.mqua020.k1, STEP=0.00001,LOWER=0,UPPER=4; VARY, NAME=satsy01.mqua040.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax; VARY, NAME=satsy01.mqua070.k1, STEP=0.00001,LOWER=Kmin,UPPER=KMAX; VARY, NAME=satsy01.mqua090.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax; CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01.mbnd200, DX < 7.05e2; CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01.mbnd200, DPX = 10.e-3; CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01.mbnd200, ALFX=0; CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01.mbnd200, ALFY=0; CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01.mbnd200, DPY =-1.16e-4; !CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01.mbnd200, DPY =0; LMDIF, CALLS=1000, TOLERANCE=1.E-21; ENDMATCH; satsy01.mqua210.k1=satsy01.mqua090.k1; satsy01.mqua230.k1=satsy01.mqua070.k1; satsy01.mqua260.k1=satsy01.mqua040.k1; satsy01.mqua280.k1=satsy01.mqua020.k1; satsy01.mqua300.k1 := 5.27400e-01; MATCH,SEQUENCE=swissfel,range=s20SY02$start/satcl01$end,beta0=twisssep; VARY, NAME=satsy01.mqua230.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax; VARY, NAME=satsy01.mqua210.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax; VARY, NAME=satsy01.mqua300.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax; VARY, NAME=satsy01.mqua280.k1, STEP=0.00001,LOWER=-4,UPPER=4; CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01$end, DX = 0; CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01$end, DPX = 0; CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01$end, DY < -0.008; CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01$end, X<10; LMDIF, CALLS=1000, TOLERANCE=1.E-21; ENDMATCH; leakdisp = 0; satsy01.mqua280.k1 = satsy01.mqua280.k1*(1+leakdisp); !------------------------------------------ ! close vertical dispersion satsy02.mqua010.k1 := - 1.71; satsy02.mqua110.k1 := 1.22622; satsy02.mqua120.k1 := 1.64073; satsy02.mqua230.k1 = -1.61620; MATCH,SEQUENCE=swissfel,range=s20SY02$start/satcl01$end,beta0=twisssep; VARY, NAME=satsy02.mqua010.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax; VARY, NAME=satsy02.mqua110.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax; VARY, NAME=satsy02.mqua120.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax; CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy02$end, DY = 0.0; CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy02$end, DPY = 0.0; CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy02$end, X <0; LMDIF, CALLS=1000, TOLERANCE=1.E-21; ENDMATCH; satcl011:=-1.3; satcl012:= 1.1; satcl01.mqua120.k1:=satcl011; satcl01.mqua130.k1:=satcl012; satcl01.mqua180.k1:=satcl012; satcl01.mqua190.k1:=satcl011; MATCH, SEQUENCE=swissfel, range=SATCL01$START/SATCL01$END,betx=5,alfx=0,bety=30,alfy=0; VARY, NAME=satcl011, STEP=0.00001,LOWER=Kmin,UPPER=Kmax; VARY, NAME=satcl012, STEP=0.00001,LOWER=Kmin,UPPER=Kmax; CONSTRAINT, SEQUENCE=swissfel, RANGE=satcl01$end, DX = 0; CONSTRAINT, SEQUENCE=swissfel, RANGE=satcl01$end, DPX = 0; LMDIF, CALLS=1000, TOLERANCE=1.E-21; ENDMATCH; satsy02.mqua230.k1 = -0.12; satsy03.mqua010.k1 = 0.56; satsy03.mqua040.k1 = 0.72; satsy03.mqua070.k1 = 0.427; satsy03.mqua100.k1 = -0.01; satsy03.mqua130.k1 = -0.67; MATCH,SEQUENCE=swissfel,range=#s/#e,range=s20SY02$start/satcl01$end,beta0=twisssep; VARY, NAME=satsy02.mqua230.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax; VARY, NAME=satsy03.mqua010.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax; VARY, NAME=satsy03.mqua040.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax; VARY, NAME=satsy03.mqua070.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax; VARY, NAME=satsy03.mqua100.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax; VARY, NAME=satsy03.mqua130.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax; CONSTRAINT, SEQUENCE=swissFEL, RANGE=satcl01.msex160,betx=10.8; CONSTRAINT, SEQUENCE=swissFEL, RANGE=satcl01.msex160,alfx=-0.01; CONSTRAINT, SEQUENCE=swissFEL, RANGE=satcl01.msex160,bety<30.8; ! was 13.8 CONSTRAINT, SEQUENCE=swissFEL, RANGE=satcl01.msex160,alfy=-0.01; constraint, sequence=swissfel, range=satsy03.mqua130$end, betx <90 ; constraint, sequence=swissfel, range=satsy03.mqua130$end, bety <90 ; LMDIF, CALLS=1000, TOLERANCE=1.E-21; ENDMATCH; MATCH, SEQUENCE=swissfel, range=s20SY02$start/satcl01$end,beta0=twisssep; VARY, NAME= satcl01.mqua180.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax; VARY, NAME= satcl01.mqua190.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax; CONSTRAINT, SEQUENCE=swissfel, RANGE=satcl01$end, DX = 0; CONSTRAINT, SEQUENCE=swissfel, RANGE=satcl01$end, DPX = 0; LMDIF, CALLS=1000, TOLERANCE=1.E-21; ENDMATCH; twiss,sequence=swissfel,range=s20sy02$start/satcl01$end,rmatrix,beta0=twisssep; plot,haxis=s,vaxis=betx,bety,range=s20SY02$start/#e,colour=100; plot,haxis=s,vaxis=dx,dy,range=s20SY02$start/#e,colour=100; plot,haxis=s,vaxis=re56,range=s20SY02$start/#e,colour=100; !--------------------------------------- ! match first cell of linac1RF cell of Athos muATL := 0.053; ! Linac 1 Fodo lattice matching satcb01.mqua230.k1 := 1.490961973; satcb01.mqua430.k1 := -1.490511125; match,SEQUENCE=swissfel,range=satcb01$start/satcb01$end; Vary,name=SatCB01.MQUA230.k1,step=0.0001; Vary,name=SatCB01.MQUA430.k1,step=0.0001; constraint,sequence=satcb01,range=#e,mux=muATL; constraint,sequence=satcb01,range=#e,muy=muATL; lmdif,calls=100,tolerance=1e-21; endmatch; satcl02.mqua230.k1=satcb01.mqua230.k1; satcl02.mqua430.k1=satcb01.mqua430.k1; twiss,SEQUENCE=swissfel,range=satcb01$start/satcb01$end; nbetx=table(twiss,satcb01$end,betx); nalfx=table(twiss,satcb01$end,alfx); nbety=table(twiss,satcb01$end,bety); nalfy=table(twiss,satcb01$end,alfy); !--------------------------------------- ! match to reference point at satdi01-mqua250 MATCH, SEQUENCE=swissfel,range=s20sy02$start/satcb01$start,beta0=twisssep; VARY,NAME=satdi01.mqua025.k1,STEP=0.0001,lower=-2.0,upper=2.0; VARY,NAME=satdi01.mqua080.k1,STEP=0.0001,lower=-2.0,upper=2.0; VARY,NAME=satdi01.mqua220.k1,STEP=0.0001,lower=-1.8,upper=1.8; VARY,NAME=satdi01.mqua230.k1,STEP=0.0001,lower=-1.8,upper=1.8; CONSTRAINT,SEQUENCE=swissfel,range=satdi01.mqua250$start,betx=35.76; CONSTRAINT,SEQUENCE=swissfel,range=satdi01.mqua250$start,alfx=-1.166; CONSTRAINT,SEQUENCE=swissfel,range=satdi01.mqua250$start,bety=24.087; CONSTRAINT,SEQUENCE=swissfel,range=satdi01.mqua250$start,alfy=0.648; LMDIF,CALLS=1000,TOLERANCE=1.e-21; ENDMATCH; !------------------------------------ ! match into SATCB01 MATCH, SEQUENCE=swissfel,range=s20sy02$start/satcb01$end,beta0=twisssep; VARY,NAME=satdi01.mqua250.k1,STEP=0.0001,lower=-1.8,upper=1.8; VARY,NAME=satdi01.mqua260.k1,STEP=0.0001,lower=-1.8,upper=1.8; VARY,NAME=satdi01.mqua280.k1,STEP=0.0001,lower=-1.8,upper=1.8; VARY,NAME=satdi01.mqua300.k1,STEP=0.0001,lower=-1.8,upper=1.8; CONSTRAINT,SEQUENCE=swissfel,range=satcb01$start,betx=nbetx; CONSTRAINT,SEQUENCE=swissfel,range=satcb01$start,alfx=nalfx; CONSTRAINT,SEQUENCE=swissfel,range=satcb01$start,bety=nbety; CONSTRAINT,SEQUENCE=swissfel,range=satcb01$start,alfy=nalfy; LMDIF,CALLS=1000,TOLERANCE=1.e-21; ENDMATCH; twiss, SEQUENCE=swissFEL,range=s20sy02$start/satcl02$end,beta0=twisssep; plot,haxis=s,vaxis=betx,bety,range=satdi01$start/satcl02$end,colour=100; !!!!!!!!!!!!!!!!!!!!!! Athos undulator pol=-1; satun06.mqua080.k1 := -1.699673315*pol; satun07.mqua080.k1 := 1.746074065*pol; muAT=0.15; match,SEQUENCE=swissfel,range=satun06$start/satun07$end; Vary,name=satun06.mqua080.k1,step=0.0001; Vary,name=satun07.mqua080.k1,step=0.0001; constraint,sequence=swissfel,range=satun07$end,mux=muAT; constraint,sequence=swissfel,range=satun07$end,muy=muAT; lmdif,calls=100,tolerance=1e-21; endmatch; satun08.mqua080.k1 := satun06.mqua080.k1; satun09.mqua080.k1 := satun07.mqua080.k1; satun10.mqua080.k1 := satun06.mqua080.k1; satun11.mqua080.k1 := satun07.mqua080.k1; satun12.mqua080.k1 := satun06.mqua080.k1; satun13.mqua080.k1 := satun07.mqua080.k1; satun14.mqua080.k1 := satun06.mqua080.k1; satun15.mqua080.k1 := satun07.mqua080.k1; satun16.mqua420.k1 := satun06.mqua080.k1; satun17.mqua080.k1 := satun07.mqua080.k1; satun18.mqua080.k1 := satun06.mqua080.k1; satun19.mqua080.k1 := satun07.mqua080.k1; satun20.mqua080.k1 := satun06.mqua080.k1; satun21.mqua080.k1 := satun07.mqua080.k1; satun22.mqua080.k1 := satun06.mqua080.k1; twiss,sequence=swissfel,range=satun06$start/satun07$end; plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100; ATbetx=table(twiss,satun07$end,betx); ATalfx=table(twiss,satun07$end,alfx); ATbety=table(twiss,satun07$end,bety); ATalfy=table(twiss,satun07$end,alfy); eebetx=8; eealfx=0.5; eebety=30; eealfy=-0.5; eebetx=7; eealfx=0.5; eebety=30; eealfy=1.5; twissee: beta0,betx=eebetx,bety=eebety,alfx=eealfx,alfy=eealfy; MATCH, SEQUENCE=swissfel,range=satma01.mqua250$end/satun07$end,beta0=twissee; VARY,NAME=satma01.mqua610.k1,STEP=0.0001,lower=-2.0,upper=2.0; VARY,NAME=satma01.mqua630.k1,STEP=0.0001,lower=-2.0,upper=2.0; VARY,NAME=satma01.mqua640.k1,STEP=0.0001,lower=-2.0,upper=2.0; VARY,NAME=satun04.mqua060.k1,STEP=0.0001,lower=-3.8,upper=3.8; VARY,NAME=satun05.mqua420.k1,STEP=0.0001,lower=-3.8,upper=3.8; CONSTRAINT,SEQUENCE=swissfel,range=satun06$start,betx=ATbetx; CONSTRAINT,SEQUENCE=swissfel,range=satun06$start,bety=ATbety; CONSTRAINT,SEQUENCE=swissfel,range=satun06$start,alfx=ATalfx; CONSTRAINT,SEQUENCE=swissfel,range=satun06$start,alfy=ATalfy; CONSTRAINT,SEQUENCE=swissfel,range=satun06$start,x<10; LMDIF,CALLS=1000,TOLERANCE=1.e-21; ENDMATCH; twiss,SEQUENCE=swissfel,range=satma01.mqua250$end/satun11$end,beta0=twissee; plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100; scl=4; satcb02.mqua230.k1=scl*0.2; satcb02.mqua430.k1=-scl*0.2; satcb03.mqua230.k1=scl*0.2; satcb03.mqua430.k1=-scl*0.2; satma01.mqua120.k1=0; satma01.mqua140.k1=0; satma01.mqua160.k1=0; satma01.mqua180.k1=0; satma01.mqua230.k1=0; satma01.mqua250.k1=0; MATCH, SEQUENCE=swissfel,range=s20sy02$start/satma01$end,beta0=twisssep; VARY,NAME=satcb03.mqua430.k1,STEP=0.0001,lower=-3.8,upper=3.8; VARY,NAME=satma01.mqua120.k1,STEP=0.0001,lower=-3.8,upper=3.8; VARY,NAME=satma01.mqua140.k1,STEP=0.0001,lower=-3.8,upper=3.8; VARY,NAME=satma01.mqua160.k1,STEP=0.0001,lower=-3.8,upper=3.8; VARY,NAME=satma01.mqua180.k1,STEP=0.0001,lower=-3.8,upper=3.8; VARY,NAME=satma01.mqua230.k1,STEP=0.0001,lower=-3.0,upper=3.0; VARY,NAME=satma01.mqua250.k1,STEP=0.0001,lower=-3.0,upper=3.0; CONSTRAINT,SEQUENCE=swissfel,range=satma01.mqua250$end,betx=eebetx; CONSTRAINT,SEQUENCE=swissfel,range=satma01.mqua250$end,bety=eebety; CONSTRAINT,SEQUENCE=swissfel,range=satma01.mqua250$end,alfx=eealfx; CONSTRAINT,SEQUENCE=swissfel,range=satma01.mqua250$end,alfy=eealfy; CONSTRAINT,SEQUENCE=swissFEL,range=satma01.mqua120$start, betx <70; CONSTRAINT,SEQUENCE=swissFEL,range=satma01.mqua120$start, bety <70; CONSTRAINT,SEQUENCE=swissFEL,range=satma01.mqua140$start, betx <70; CONSTRAINT,SEQUENCE=swissFEL,range=satma01.mqua140$start, bety <70; CONSTRAINT,SEQUENCE=swissFEL,range=satma01.mqua160$start, betx <70; CONSTRAINT,SEQUENCE=swissFEL,range=satma01.mqua160$start, bety <70; CONSTRAINT,SEQUENCE=swissFEL,range=satma01.mqua180$start, betx <70; CONSTRAINT,SEQUENCE=swissFEL,range=satma01.mqua180$start, bety <70; LMDIF,CALLS=1000,TOLERANCE=1.e-21; ENDMATCH; MATCH, SEQUENCE=swissfel,range=s20sy02$start/satbd01$end,beta0=twisssep; VARY,NAME=satun22.mqua080.k1,STEP=0.0001,lower=-5.0,upper=5.0; VARY,NAME=satma02.mqua010.k1,STEP=0.0001,lower=-5.0,upper=5.0; VARY,NAME=satma02.mqua020.k1,STEP=0.0001,lower=-5.0,upper=5.0; VARY,NAME=satma02.mqua040.k1,STEP=0.0001,lower=-5.0,upper=5.0; VARY,NAME=satma02.mqua050.k1,STEP=0.0001,lower=-5.0,upper=5.0; VARY,NAME=satma02.mqua070.k1,STEP=0.0001,lower=-5.0,upper=5.0; CONSTRAINT,SEQUENCE=swissfel,range=satbd01.mqua010$start,betx=50; CONSTRAINT,SEQUENCE=swissfel,range=satbd01.mqua010$start,bety=50; CONSTRAINT,SEQUENCE=swissfel,range=satbd01.mqua010$start,alfx=0; CONSTRAINT,SEQUENCE=swissfel,range=satbd01.mqua010$start,alfy=0; CONSTRAINT,SEQUENCE=swissfel,range=satbd01.mqua010$start,x=0; CONSTRAINT,SEQUENCE=swissfel,range=satbd01.mqua010$start,px=0; LMDIF,CALLS=1000,TOLERANCE=1.e-21; ENDMATCH; SATBD01.MQUA010.K1= 5.069789237265826e-01; SATBD01.MQUA030.K1= -6.184665903305938e-01 ; SATBD01.MQUA050.K1= 1.324854421128419e-01 ; SATBD01.MQUA070.K1= 4.740280173415730e-01 ; SATBD01.MQUA090.K1= -7.442648986155268e-01; SATBD02.MQUA030.K1= -1.050806764409536e+00; twiss,SEQUENCE=swissfel,range=s20sy02$start/satbd01$end,beta0=twisssep; plot,haxis=s,vaxis=betx,bety,range=satdi01$start/#e,colour=100; twiss,SEQUENCE=swissfel,range=#s/satbd01$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;