222 lines
7.5 KiB
Plaintext
222 lines
7.5 KiB
Plaintext
|
|
! current solution to compress in switchyard.
|
|
! according to current machine settings the maximum is 2.14 @ 3.21 GeV
|
|
Kmin=-2.1;
|
|
Kmax=2.1;
|
|
|
|
|
|
!---------------------------------
|
|
! match first half of SATSY01
|
|
|
|
|
|
satsy01.mqua020.k1 := 0.35;
|
|
satsy01.mqua040.k1 := 1.75;
|
|
satsy01.mqua070.k1 := -2.;
|
|
satsy01.mqua090.k1 := -1.22;
|
|
|
|
Print,text='MATCH POINT: Match Dispersion at Center Dipole of SATSY01';
|
|
MATCH,SEQUENCE=swissfel,range=s20SY02$start/satcl01$end,beta0=twisssep;
|
|
VARY, NAME=satsy01.mqua020.k1, STEP=0.00001,LOWER=-4,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 = 0.082; !
|
|
CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01.mbnd200, DPX = 0.0084;
|
|
CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01.mbnd200, DY < 0.09;
|
|
CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01.mbnd200, DPY < 1;
|
|
LMDIF, CALLS=1000, TOLERANCE=1.E-21;
|
|
ENDMATCH;
|
|
|
|
|
|
!-------------------------------------
|
|
! match second half of SATSY01 - closing dispersion
|
|
|
|
|
|
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;
|
|
|
|
|
|
DXS = -0.030;
|
|
DPXS = -0.001;
|
|
|
|
Print,text='MATCH POINT: Match Dispersion at End of SATSY01';
|
|
MATCH,SEQUENCE=swissfel,range=s20SY02$start/satcl01$end,beta0=twisssep;
|
|
VARY, NAME=satsy01.mqua280.k1, STEP=0.00001,LOWER=-4,UPPER=4;
|
|
VARY, NAME=satsy01.mqua300.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax;
|
|
CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01$end, DX = DXS;
|
|
CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01$end, DPX =DPXS;
|
|
CONSTRAINT, SEQUENCE=swissfel, RANGE=satsy01$end, X < 0.1;
|
|
LMDIF, CALLS=1000, TOLERANCE=1.E-21;
|
|
ENDMATCH;
|
|
|
|
|
|
|
|
!------------------------------------------
|
|
! close vertical dispersion
|
|
|
|
|
|
satsy02.mqua010.k1 := - 1.71;
|
|
satsy02.mqua110.k1 := 1.22622;
|
|
satsy02.mqua120.k1 := 1.64073;
|
|
satsy02.mqua230.k1 = -1.61620;
|
|
|
|
|
|
Print,text='MATCH POINT: Close Vertical Dispersion';
|
|
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.0;
|
|
LMDIF, CALLS=1000, TOLERANCE=1.E-21;
|
|
ENDMATCH;
|
|
|
|
|
|
|
|
!---------------------------------
|
|
! match sextupoles
|
|
|
|
|
|
satsy01.msex050.k2 = 100;
|
|
satsy01.msex080.k2 = -100;
|
|
satsy01.msex220.k2 = -100;
|
|
satsy01.msex250.k2 = 100;
|
|
|
|
|
|
Print,text='MATCH POINT: Sextupoles in SATSY01 and SATSY02';
|
|
MATCH,chrom, SEQUENCE=swissfel,range=s20SY02$start/satcl01$end,beta0=twisssep;
|
|
VARY, NAME=satsy01.msex050.k2, STEP=0.00001;
|
|
VARY, NAME=satsy01.msex080.k2, STEP=0.00001;
|
|
VARY, NAME=satsy01.msex220.k2, STEP=0.00001;
|
|
VARY, NAME=satsy01.msex250.k2, STEP=0.00001;
|
|
|
|
CONSTRAINT, SEQUENCE=swissFEL, RANGE=satsy02$end, DDX = 0;
|
|
CONSTRAINT, SEQUENCE=swissFEL, RANGE=satsy02$end, DDY = 0;
|
|
CONSTRAINT, SEQUENCE=swissFEL, RANGE=satsy02$end, DDPX = 0;
|
|
CONSTRAINT, SEQUENCE=swissFEL, RANGE=satsy02$end, DDPY = 0;
|
|
LMDIF, CALLS=1000, TOLERANCE=1.E-21;
|
|
ENDMATCH;
|
|
|
|
|
|
twiss, chrom,rmatrix, SEQUENCE=swissFEL, range=s20SY02$start/satcl01$end,beta0=twisssep;
|
|
plot,haxis=s,vaxis=betx,bety,range = s20sy02$start/satsy02$end, colour=100;
|
|
plot,haxis=s,vaxis=dx,dy,range = s20sy02$start/satsy02$end,colour=100;
|
|
plot,haxis=s,vaxis=ddx,ddy,range = s20sy02$start/satsy02$end,colour=100;
|
|
plot,haxis=s,vaxis=re56,range = s20sy02$start/satsy02$end,colour=100;
|
|
|
|
|
|
|
|
|
|
|
|
!-------------------------------------------------
|
|
!------ Match horizontal dispersion in collimator
|
|
|
|
! was -1.2 and 1
|
|
satcl011:=-1.3;
|
|
satcl012:= 1.0;
|
|
satcl01.mqua120.k1:=satcl011;
|
|
satcl01.mqua130.k1:=satcl012;
|
|
satcl01.mqua180.k1:=satcl012;
|
|
satcl01.mqua190.k1:=satcl011;
|
|
|
|
|
|
Print,text='MATCH POINT: Close Dispersion in SATCL01';
|
|
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;
|
|
|
|
satcl01.mqua120.k1=satcl011;
|
|
satcl01.mqua130.k1=satcl012;
|
|
satcl01.mqua180.k1=satcl012;
|
|
satcl01.mqua190.k1=satcl011;
|
|
|
|
|
|
|
|
|
|
|
|
!------------------------------------------------------------
|
|
!------ Match the phase advance between the two double bends
|
|
|
|
|
|
satsy02.mqua230.k1 = -1.28;
|
|
satsy03.mqua010.k1 = -0.44;
|
|
satsy03.mqua040.k1 = -0.9;
|
|
satsy03.mqua070.k1 = 1.6;
|
|
satsy03.mqua100.k1 = 0.55;
|
|
satsy03.mqua130.k1 = -0.93;
|
|
|
|
Print,text='MATCH POINT: Match into SATCL01';
|
|
MATCH,SEQUENCE=swissfel,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;
|
|
CONSTRAINT, SEQUENCE=swissFEL, RANGE=satcl01.msex160,bety<30.8; ! was 13.8
|
|
CONSTRAINT, SEQUENCE=swissFEL, RANGE=satcl01.msex160,alfy=0.;
|
|
constraint, sequence=swissfel, range=satsy03.mqua130$end, betx <80 ;
|
|
constraint, sequence=swissfel, range=satsy03.mqua130$end, bety <80 ;
|
|
constraint, sequence=swissfel, range=satsy03$end, DX = 0.042;
|
|
LMDIF, CALLS=1000, TOLERANCE=1.E-21;
|
|
ENDMATCH;
|
|
|
|
|
|
twiss, chrom,rmatrix, SEQUENCE=swissFEL, range=s20SY02$start/satcl01$end,beta0=twisssep;
|
|
plot,haxis=s,vaxis=betx,bety,range = s20sy02$start/satsy02$end, colour=100;
|
|
plot,haxis=s,vaxis=dx,dy,range = s20sy02$start/satsy02$end,colour=100;
|
|
plot,haxis=s,vaxis=ddx,ddy,range = s20sy02$start/satsy02$end,colour=100;
|
|
plot,haxis=s,vaxis=re56,range = s20sy02$start/satsy02$end,colour=100;
|
|
|
|
|
|
|
|
|
|
!--------------------------
|
|
! close dispersion in SATCL01
|
|
Print,text='MATCH POINT: Close Dispersion in Switchyard';
|
|
MATCH,SEQUENCE=swissfel,range=s20SY02$start/satcl01$end,beta0=twisssep;
|
|
VARY, NAME=satsy03.mqua130.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax;
|
|
VARY, NAME=satcl01.mqua120.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax;
|
|
VARY, NAME=satcl01.mqua130.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax;
|
|
VARY, NAME=satcl01.mqua190.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax;
|
|
VARY, NAME=satcl01.mqua180.k1, STEP=0.00001,LOWER=Kmin,UPPER=Kmax;
|
|
CONSTRAINT, SEQUENCE=swissfel, RANGE=satcl01$end, DX = 0;
|
|
CONSTRAINT, SEQUENCE=swissfel, RANGE=satcl01$end, DPX = 0;
|
|
CONSTRAINT, SEQUENCE=swissfel, RANGE=satcl01$end, bety < 100;
|
|
CONSTRAINT, SEQUENCE=swissfel, RANGE=satcl01$end, betx < 10;
|
|
CONSTRAINT, SEQUENCE=swissfel, RANGE=satcl01$end, Y < 1;
|
|
LMDIF, CALLS=1000, TOLERANCE=1.E-21;
|
|
ENDMATCH;
|
|
|
|
|
|
|
|
!------------------------------------
|
|
! optimize sextupoles in SATCL01
|
|
|
|
satcl01.msex110.k2 = 76.01;
|
|
satcl01.msex160.k2 = -59.;
|
|
|
|
|
|
Print,text='MATCH POINT: Sextupoles in SATCL01';
|
|
MATCH, chrom, SEQUENCE=swissfel,range=s20SY02$start/satcl01$end,beta0=twisssep;
|
|
VARY, NAME=satcl01.msex110.k2, STEP=0.00001,LOWER=-200,UPPER=200;
|
|
VARY, NAME=satcl01.msex160.k2, STEP=0.00001,LOWER=-200,UPPER=200;
|
|
CONSTRAINT, SEQUENCE=swissfel, RANGE=satcl01$end, DDX = 0;
|
|
CONSTRAINT, SEQUENCE=swissfel, RANGE=satcl01$end, DDPX = 0;
|
|
LMDIF, CALLS=1000, TOLERANCE=1.E-21;
|
|
ENDMATCH;
|
|
|
|
|
|
|
|
|