Optimizing SF+ matching including sextupoles.

Lattice plots have now also an indication for screens
This commit is contained in:
2026-01-22 14:53:38 +01:00
parent 13873bbd69
commit 84b114a2d0
7 changed files with 145 additions and 2083 deletions

View File

@@ -1,15 +1,17 @@
option,-echo;
! starting condition
Twiss0: beta0,betx=10,alfx=0,bety=10,alfy=0; ! location:swissfel$start
TwissM1: beta0,betx=4.36,alfx=0.5,bety=4.36,alfy=0.5; ! location:sinsb04.mqua230$end
TwissM1: beta0,betx=5.232,alfx=0.6,bety=5.232,alfy=0.6; ! location:sinsb04.mqua230$end
TwissM2: beta0, betx = 11.1557, alfx = -1.17, bety = 50, alfy = 0.; ! label: After BC1 location:sindi02.mqua020$start
Twisssep: beta0,betx=10,alfx=-0.2,bety=20,alfy=1.0; ! label: Septum location:s20sy02$start
TwissAT1: beta0,betx=34.45,alfx=1,bety=34.45,alfy=1; ! label: Switchyard - Drift location:satsy02.mqua230
TwissAT2: beta0,betx=38,alfx=8,bety=1.52,alfy=-0.5; ! label: Switchyard - Double Bend location:satsy03.mqua110
TwissAT2: beta0,betx=15,alfx=5,bety=1.52,alfy=-0.5; ! label: Switchyard - Double Bend location:satsy03.mqua110
TwissAT3: beta0,betx=10,alfx=0.5,bety=10,alfy=0.5; ! label: Beam Stopper location:satcb01.mqua430$end
twissee: beta0,betx=7,bety=30,alfx=0.5,alfy=1.5; ! label: EEHG location:satma01.mqua250$end
twissAT4: beta0, betx=50,bety=50,alfx=0.0,alfy=0; ! label: Athos XTCAV location: satbd01.mqua010$start
twisspor: beta0, betx=3.9036,alfx=-0.05021,bety=37.6374,alfy=4.4433; ! label: Porthos Septum location:s30cb15$end
twissL2: beta0, betx=21.84,bety=21.84,alfx=0.6,alfy=0.6; ! label: Athos Linac 2: s20cb01.mqua430$end
twisspor: beta0, betx=3.8936,alfx=-0.05021,bety=37.6374,alfy=4.4433; ! label: Porthos Septum location:s30cb15$end
twissARECOL:beta0, betx = 2.304, alfx = -1.4045, bety = 25.929, alfy = -6.363; ! label: Aramis ECOL location:sarma01.mqua010$start
! variables
ECOLasBC = 0; ! Description: Flag to configure Aramis Energy collimator as a bunch compressor

View File

@@ -15,10 +15,10 @@ 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.mqua060.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;
CONSTRAINT,SEQUENCE=SwissFEL,range= s20bc02$end,betx<4.5;
CONSTRAINT,SEQUENCE=SwissFEL,range= s20bc02$end,bety<150;
CONSTRAINT,SEQUENCE=SwissFEL,range= s20bc01$end,betx<150;
CONSTRAINT,SEQUENCE=SwissFEL,range= s20bc01$end,bety<50;
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
ENDMATCH;
@@ -27,8 +27,8 @@ plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100;
muLin3=0.2;
pol = 1;
muLin3=0.18;
pol = -1;
s20cb01.mqua430.k1=0.5*pol;
s20cb02.mqua430.k1=-0.5*pol;
@@ -69,7 +69,10 @@ s30cb13.mqua430.k1 = s20cb01.mqua430.k1;
s30cb14.mqua430.k1 = s20cb02.mqua430.k1;
s20ma01.mqua010.k1=0;
s20ma01.mqua020.k1=0;
s20ma01.mqua040.k1=0;
s20cb01.mqua430.k1=0;
Print,text='MATCH POINT: Match into Linac 2';
MATCH,SEQUENCE=Swissfel,range=s20sy02$start/s20cb04$end,beta0=twisssep;
@@ -77,10 +80,14 @@ 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;
!CONSTRAINT,SEQUENCE=SwissFEL,range= s20cb03$start,betx=20;
!CONSTRAINT,SEQUENCE=SwissFEL,range= s20cb03$start,bety=20;
!CONSTRAINT,SEQUENCE=SwissFEL,range= s20cb03$start,alfx=0.5;
!CONSTRAINT,SEQUENCE=SwissFEL,range= s20cb03$start,alfy=0.5;
CONSTRAINT,SEQUENCE=SwissFEL,range= s20cb01.mqua430$end,betx=twissL2->betx;
CONSTRAINT,SEQUENCE=SwissFEL,range= s20cb01.mqua430$end,bety=twissL2->bety;
CONSTRAINT,SEQUENCE=SwissFEL,range= s20cb01.mqua430$end,alfx=twissL2->alfx;
CONSTRAINT,SEQUENCE=SwissFEL,range= s20cb01.mqua430$end,alfy=twissL2->alfy;
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
ENDMATCH;
@@ -91,14 +98,16 @@ plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100;
Print,text='MATCH POINT: Corrected Matching into Linac 3';
MATCH,SEQUENCE=Swissfel,range=s20sy02$start/s30cb07$end,beta0=twisssep;
VARY,NAME=s20cb02.mqua430.k1,STEP=0.0001;
VARY,NAME=s20cb03.mqua430.k1,STEP=0.0001;
VARY,NAME=s20cb04.mqua430.k1,STEP=0.0001;
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;
CONSTRAINT,SEQUENCE=SwissFEL,range= s30cb05$start,X<10;
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
ENDMATCH;
@@ -133,6 +142,10 @@ LMDIF, CALLS=1000, TOLERANCE=1.E-21;
ENDMATCH;
s30cb13.mqua430.k1 = 0.456;
s30cb14.mqua430.k1 = -1.741;
s30cb15.mqua010.k1 = 1.1533;
@@ -150,7 +163,7 @@ CONSTRAINT, SEQUENCE=swissfel, RANGE=s30cb15$end,betx=twisspor->betx;
CONSTRAINT, SEQUENCE=swissfel, RANGE=s30cb15$end,bety=twisspor->bety;
CONSTRAINT, SEQUENCE=swissfel, RANGE=s30cb15$end,alfx=twisspor->alfx;
CONSTRAINT, SEQUENCE=swissfel, RANGE=s30cb15$end,alfy=twisspor->alfy;
!LMDIF, CALLS=1000, TOLERANCE=1.E-21;
!!LMDIF, CALLS=1000, TOLERANCE=1.E-21;
Simplex, CALLS=1000, TOLERANCE=1.E-21;
ENDMATCH;
@@ -216,13 +229,13 @@ if (ECOLasBC ==0.) {
nalfy=-table(twiss,sarcl02$end,alfy);
sarcl02.msex255.k2:=110;
sarcl02.msex305.k2:=110;
sarcl02.msex255.k2:=ecol_k2;
sarcl02.msex305.k2:=ecol_k2;
Print,text='MATCH POINT: Sextupoles in Energy Collimator';
MATCH,chrom,SEQUENCE=sarcl02,range=#s/#e,betx=nbetx,alfx=nalfx,bety=nbety,alfy=nalfy;
MATCH,chrom,SEQUENCE=swissfel,range=sarcl02$start/sarcl02$end,betx=nbetx,alfx=nalfx,bety=nbety,alfy=nalfy;
VARY,NAME=ecol_k2,STEP=0.0001;
CONSTRAINT,SEQUENCE=Sarcl02,range=#e,ddx=0;
CONSTRAINT,SEQUENCE=swissfel,range=sarcl02$end,ddx=0;
LMDIF,CALLS=100,TOLERANCE=1.e-21;
ENDMATCH;
@@ -304,14 +317,16 @@ plot,haxis=s,vaxis=betx,bety,range=S30CB15$START/SARCL02$END,colour=100;
!-----------------
muAR=0.16;
muAR=0.15;
sarun02.mqua080.k1=1;
sarun03.mqua080.k1=-1;
Print,text='MATCH POINT: FODO - Aramis Undulator';
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;
lmdif,calls=1000,tolerance=1e-21;
endmatch;
twiss,sequence=swissfel,range=sarun02$start/sarun03$end;
@@ -367,6 +382,20 @@ ENDMATCH;
! from eduard
SARUN18.MQUA080.K1= -6.305232722687153e-01;
SARUN19.MQUA080.K1= 1.167256186348939e+00;
Print,text='MATCH POINT: Aramis XTCAV';
MATCH, SEQUENCE=swissfel,range=s20sy02$start/satbd01$end,beta0=twisssep;
VARY,NAME=sarun18.mqua080.k1,STEP=0.0001;
VARY,NAME=sarun19.mqua080.k1,STEP=0.0001;
CONSTRAINT,SEQUENCE=swissfel,range=sarun20$start,betx=50;
CONSTRAINT,SEQUENCE=swissfel,range=sarun20$start,alfx=0;
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
ENDMATCH;
SARUN20.mqua220.K1= 8.363412365675689e-01;
SARBD01.MQUA010.K1= -2.099999992065428e+00;
SARBD01.MQUA020.K1= -2.099998228837625e+00;

View File

@@ -49,7 +49,7 @@ plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100;
plot,haxis=s,vaxis=y,dy,range=#s/#e,colour=100;
satsy01.mqua110.k1=-0.7;
satsy01.mqua110.k1=-1.7;
Print,text='MATCH POINT: Closed Dispersion in Switchyard';
@@ -69,24 +69,44 @@ ENDMATCH;
Print,text='MATCH POINT: Sextupoles in Switch Yard';
MATCH,chrom,SEQUENCE=swissfel,range=s20sy02$start/satsy02$end,beta0=twisssep;
VARY,NAME=satsy01.msex030.k2,STEP=0.0001;
VARY,NAME=satsy01.msex090.k2,STEP=0.0001;
CONSTRAINT,SEQUENCE=swissfel,range=satsy01$end,ddx=0;
CONSTRAINT,SEQUENCE=swissfel,range=satsy01$end,ddpx=0;
LMDIF,CALLS=100,TOLERANCE=1.e-21;
ENDMATCH;
twiss,SEQUENCE=swissfel,range=s20sy02$start/Satsy02.mqua210$start,beta0=twisssep;
twiss,chrom,SEQUENCE=swissfel,range=s20sy02$start/Satsy02.mqua210$start,beta0=twisssep;
plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100;
plot,haxis=s,vaxis=dx,dy,range=#s/#e,colour=100;
plot,haxis=s,vaxis=ddx,range=#s/#e,colour=100;
Print,text='MATCH POINT: Closed Dispersion in SATSY03';
MATCH,SEQUENCE=SwissFEL,range=s20sy02$start/satsy03$end,beta0=twisssep;
VARY,NAME=satsy03.mqua120.k1,STEP=0.0001;
VARY,NAME=satsy03.mqua130.k1,STEP=0.0001;
CONSTRAINT,SEQUENCE=SwissFEL,range= satsy03.mbnd200,DX=0.0;
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
ENDMATCH;
satsy02.mqua210.k1=1;
satsy02.mqua230.k1=0;
satsy02.mqua240.k1=0;
satsy02.mqua260.k1=0;
Print,text='MATCH POINT: Sextupoles in SATSY03';
MATCH,chrom,SEQUENCE=swissfel,range=s20sy02$start/satsy03$end,beta0=twisssep;
VARY,NAME=satsy03.msex110.k2,STEP=0.0001;
VARY,NAME=satsy03.msex140.k2,STEP=0.0001;
CONSTRAINT,SEQUENCE=swissfel,range=satsy03.mqua220$start,ddx=0;
CONSTRAINT,SEQUENCE=swissfel,range=satsy03.mqua220$start,ddpx=0;
LMDIF,CALLS=100,TOLERANCE=1.e-21;
ENDMATCH;
Print,text='MATCH POINT: Switchyard Drift';
MATCH,SEQUENCE=SwissFEL,range=s20sy02$start/satsy03$end,beta0=twisssep;
@@ -98,6 +118,7 @@ CONSTRAINT,SEQUENCE=SwissFEL,range= satsy02.mqua260$end,betx=twissAT1->BETX;
CONSTRAINT,SEQUENCE=SwissFEL,range= satsy02.mqua260$end,bety=twissAT1->BETY;
CONSTRAINT,SEQUENCE=SwissFEL,range= satsy02.mqua260$end,alfx=twissAT1->ALFX;
CONSTRAINT,SEQUENCE=SwissFEL,range= satsy02.mqua260$end,alfy=twissAT1->ALFY;
CONSTRAINT,SEQUENCE=SwissFEL,range= satsy02.mqua230$end,betx<120;
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
ENDMATCH;
@@ -109,10 +130,10 @@ VARY,NAME=satsy02.mqua310.k1,STEP=0.0001;
VARY,NAME=satsy02.mqua330.k1,STEP=0.0001;
VARY,NAME=satsy02.mqua340.k1,STEP=0.0001;
CONSTRAINT,SEQUENCE=SwissFEL,range= satsy03.mqua120,betx=twissAT2->BETX;
CONSTRAINT,SEQUENCE=SwissFEL,range= satsy03.mqua120,bety=twissAT2->BETY;
CONSTRAINT,SEQUENCE=SwissFEL,range= satsy03.mqua120,alfx=twissAT2->ALFX;
CONSTRAINT,SEQUENCE=SwissFEL,range= satsy03.mqua120,alfy=twissAT2->ALFY;
CONSTRAINT,SEQUENCE=SwissFEL,range= satsy03.mqua130,betx=twissAT2->BETX;
CONSTRAINT,SEQUENCE=SwissFEL,range= satsy03.mqua130,bety=twissAT2->BETY;
CONSTRAINT,SEQUENCE=SwissFEL,range= satsy03.mqua130,alfx=twissAT2->ALFX;
CONSTRAINT,SEQUENCE=SwissFEL,range= satsy03.mqua130,alfy=twissAT2->ALFY;
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
ENDMATCH;
@@ -129,14 +150,14 @@ MATCH,SEQUENCE=SwissFEL,range=s20sy02$start/satbc01$end,beta0=twisssep;
VARY,NAME=satsy03.mqua220.k1,STEP=0.0001;
VARY,NAME=satsy03.mqua310.k1,STEP=0.0001;
VARY,NAME=satsy03.mqua430.k1,STEP=0.0001;
CONSTRAINT,SEQUENCE=SwissFEL,range= satbc01.mbnd400,BETX<5;
CONSTRAINT,SEQUENCE=SwissFEL,range= satbc01.mbnd400,BETY<60;
CONSTRAINT,SEQUENCE=SwissFEL,range= satbc01.mbnd100,BETX<80;
CONSTRAINT,SEQUENCE=SwissFEL,range= satbc01.mbnd400,BETX<3;
CONSTRAINT,SEQUENCE=SwissFEL,range= satbc01.mbnd400,BETY<160;
CONSTRAINT,SEQUENCE=SwissFEL,range= satbc01.mbnd100,BETX<180;
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
ENDMATCH;
CL1.k1 := -1.3;
CL2.k1 := 1.1;
CL1.k1 := -1.;
CL2.k1 := 1.3;
satcl01.mqua120.k1 := CL1.k1;
satcl01.mqua130.k1 := CL2.k1;
satcl01.mqua180.k1 := CL2.k1;
@@ -155,6 +176,13 @@ LMDIF,CALLS=1000,TOLERANCE=1.e-21;
ENDMATCH;
satbc01.mqua410.k1=0;
satbc01.mqua430.k1=0;
satbc01.mqua450.k1=0;
satbc01.mqua470.k1=0;
Print,text='MATCH POINT: Match into SATCL01';
MATCH,SEQUENCE=SwissFEL,range=s20sy02$start/satcl01$end,beta0=twisssep;
VARY,NAME=satbc01.mqua410.k1,STEP=0.0001;
@@ -164,25 +192,43 @@ VARY,NAME=satbc01.mqua470.k1,STEP=0.0001;
CONSTRAINT,SEQUENCE=SwissFEL,range= satcl01.msex160, alfx = 0;
CONSTRAINT,SEQUENCE=SwissFEL,range= satcl01.msex160, alfy = 0;
CONSTRAINT,SEQUENCE=SwissFEL,range= satcl01.msex160, betx > 10;
CONSTRAINT,SEQUENCE=SwissFEL,range= satcl01.msex160, bety < 5;
CONSTRAINT,SEQUENCE=SwissFEL,range= satcl01.msex160, betx = 10;
CONSTRAINT,SEQUENCE=SwissFEL,range= satcl01.msex160, bety =15;
SIMPLEX,CALLS=1000,TOLERANCE=1.e-21;
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
ENDMATCH;
Print,text='MATCH POINT: Sextupole in SATCL01';
MATCH,chrom,SEQUENCE=SwissFEL,range=s20sy02$start/satdi01$end,beta0=twisssep;
VARY,NAME=satcl01.msex110.k2,STEP=0.0001;
VARY,NAME=satcl01.msex160.k2,STEP=0.0001;
VARY,NAME=satcl01.mqua180.k1,STEP=0.0001;
VARY,NAME=satcl01.mqua190.k1,STEP=0.0001;
CONSTRAINT,SEQUENCE=SwissFEL,range= satcl01$end,ddx=0;
CONSTRAINT,SEQUENCE=SwissFEL,range= satcl01$end,ddpx=0;
CONSTRAINT,SEQUENCE=SwissFEL,range= satcl01$end,dx=0;
CONSTRAINT,SEQUENCE=SwissFEL,range= satcl01$end,dpx=0;
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
ENDMATCH;
Print,text='MATCH POINT: Minimizing Beam Size in HERO Modulator';
MATCH,SEQUENCE=SwissFEL,range=s20sy02$start/satdi01$end,beta0=twisssep;
VARY,NAME=satdi01.mqua025.k1,STEP=0.0001;
CONSTRAINT,SEQUENCE=SwissFEL,range= satdi01.dscr065$start, betx<19;
CONSTRAINT,SEQUENCE=SwissFEL,range= satdi01.dscr065$start, bety<19;
CONSTRAINT,SEQUENCE=SwissFEL,range= satdi01.dscr065$start, betx<22;
CONSTRAINT,SEQUENCE=SwissFEL,range= satdi01.dscr065$start, bety<22;
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
ENDMATCH;
twiss,SEQUENCE=swissfel,rmatrix,range=s20sy02$start/satdi01.dscr065$end,beta0=twisssep;
twiss,chrom,SEQUENCE=swissfel,rmatrix,range=s20sy02$start/satdi01.dscr065$end,beta0=twisssep;
plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100;
plot,haxis=s,vaxis=dx,dy,range=#s/#e,colour=100;
plot,haxis=s,vaxis=ddx,range=#s/#e,colour=100;
plot,haxis=s,vaxis=re56,range=#s/#e,colour=100;
@@ -306,7 +352,7 @@ twiss,SEQUENCE=swissfel,range=satma01.mqua250$end/satun11$end,beta0=twissee;
plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100;
scl=7;
scl=6.5;
satcb02.mqua230.k1=scl*0.2;
satcb02.mqua430.k1=-scl*0.2;
satcb03.mqua230.k1=scl*0.2;

View File

@@ -2,7 +2,13 @@
! into laser heater
sinlh01.mqua020.k1=4.13741e-01;
sinlh01.mqua040.k1=1.02263e-02;
sinlh01.mqua070.k1=8.56362e-01;
sinsb03.mqua130.k1=-9.18903e-01;
sinsb03.mqua230.k1=1.61605e+00;
sinsb04.mqua130.k1=-1.34639e+00;
sinsb04.mqua230.k1=1.47628e+00;
Print,text='MATCH POINT: Laser Heater';
@@ -25,9 +31,9 @@ CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb03.mqua230$end, betx < 65;
CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb03.mqua230$end, bety < 65;
CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb03.mqua130$end, betx < 65;
CONSTRAINT,SEQUENCE=SwissFEL,range=sinsb03.mqua130$end, bety < 65;
SIMPLEX,CALLS=1000,TOLERANCE=1.e-21;
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
SIMPLEX,CALLS=1000,TOLERANCE=1.e-21;
ENDMATCH;
@@ -84,7 +90,7 @@ plot,haxis=s,vaxis=betx,bety,range=sinbc02$start/#e,colour=100;
s10cb02.mqua230.k1=-0.2;
s10cb02.mqua430.k1=0.2;
muLin1=0.13;
muLin1=0.1;
Print,text='MATCH POINT: FODO - Linac 1';
match,SEQUENCE=swissfel,range=S10cb02$start/s10cb02$end;
Vary,name=S10CB02.MQUA230.k1,step=0.0001;
@@ -113,7 +119,7 @@ VARY,NAME=sindi02.mqua050.k1,STEP=0.0001,lower=-5.5,upper=5.5;
VARY,NAME=sindi02.mqua060.k1,STEP=0.0001,lower=-5.5,upper=5.5;
VARY,NAME=sindi02.mqua090.k1,STEP=0.0001,lower=-5.5,upper=5.5;
VARY,NAME=s10cb01.mqua230.k1,STEP=0.0001,lower=-5.5,upper=5.5;
!VARY,NAME=s10cb01.mqua430.k1,STEP=0.0001,lower=-5.5,upper=5.5;
VARY,NAME=s10cb01.mqua430.k1,STEP=0.0001,lower=-5.5,upper=5.5;
CONSTRAINT,SEQUENCE=swissfel,range=s10cb02$start,betx=nbetx;
CONSTRAINT,SEQUENCE=swissfel,range=s10cb02$start,alfx=nalfx;
@@ -124,6 +130,7 @@ CONSTRAINT,SEQUENCE=swissfel,range=s10cb01$start,y=0;
CONSTRAINT,SEQUENCE=swissfel,range=s10cb01$start,dx=0;
CONSTRAINT,SEQUENCE=swissfel,range=s10cb01$start,dy=0;
LMDIF,CALLS=1000,TOLERANCE=1.e-21;
SIMPLEX,CALLS=1000,TOLERANCE=1.e-21;
ENDMATCH;
twiss,SEQUENCE=swissfel,range=#s/s10cb02$end,beta0 = Twiss0;

File diff suppressed because it is too large Load Diff

View File

@@ -1,6 +1,6 @@
3) Match for sextupoles!

View File

@@ -297,6 +297,15 @@ class OpticsPlot(QtWidgets.QMainWindow, Ui_OpticsPlotGUI):
s2 = s[i]
self.axes2.add_patch(patches.Rectangle((s1, 0.89), (s2 - s1), 0.02, facecolor='cyan', edgecolor="none"))
if 'dscr' in name:
if 'start' in name:
sstart = s[i]
if 'end' in name:
s1 = sstart
s2 = s[i]
self.axes2.add_patch(
patches.Rectangle((s1, 0.89), (s2 - s1), 0.02, facecolor='orange', edgecolor="none"))
if 'mqua' in name:
if splitquads == True:
if 'end' in name: