Indication of magnet strengths and matching results in GUI

This commit is contained in:
2026-01-20 15:12:12 +01:00
parent 906890da98
commit 60b9643568
9 changed files with 192 additions and 38 deletions

View File

@@ -10,7 +10,7 @@ S20SY02.MKDC050.cory:= SYKICK*2;
s20bc01.mqua010.k1:=1.;
Print,text='MATCH POINT: BC2 in Linac 2';
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;
@@ -32,6 +32,7 @@ pol = 1;
s20cb01.mqua430.k1=0.5*pol;
s20cb02.mqua430.k1=-0.5*pol;
Print,text='MATCH POINT: FODO - Linac 2';
match,SEQUENCE=swissfel,range=S20cb01$start/s20cb02$end;
Vary,name=S20CB01.MQUA430.k1,step=0.0001;
Vary,name=S20CB02.MQUA430.k1,step=0.0001;
@@ -70,6 +71,7 @@ s30cb14.mqua430.k1 = s20cb02.mqua430.k1;
Print,text='MATCH POINT: Match into Linac 2';
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;
@@ -86,6 +88,8 @@ twiss,SEQUENCE=swissfel,range=s20sy02$start/S20cb04$end,beta0=twisssep;
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=s30cb01.mqua430.k1,STEP=0.0001;
VARY,NAME=s30cb02.mqua430.k1,STEP=0.0001;
@@ -119,6 +123,7 @@ pqf:=1;
S30cb15.mqua100.k1 := -0.2*pqf;
S30cb15.mqua200.k1 := -pqf;
Print,text='MATCH POINT: Kicker Strength for Porthos Septum';
MATCH,SEQUENCE=Swissfel,range=S30CB15$START/s30cb15$END,BETA0 = TWISSsep;
VARY, NAME=PSYKICK, STEP=0.00001;
VARY, NAME=PQF, STEP=0.00001;
@@ -134,6 +139,8 @@ s30cb15.mqua010.k1 = 1.1533;
s30cb15.mqua020.k1 = -0.0961;
Print,text='MATCH POINT: Match into Porthos Septum';
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;
@@ -171,6 +178,7 @@ if (ECOLasBC ==0.) {
sarcl02.mqua130.k1=1.8;
R56 = -000e-6;
Print,text='MATCH POINT: Isochronous Setup of Energy Collimator';
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;
@@ -180,6 +188,7 @@ if (ECOLasBC ==0.) {
sarcl02.mqua210.k1=-sarcl02.mqua130.k1*0.9;
sarcl02.mqua250.k1= sarcl02.mqua130.k1;
Print,text='MATCH POINT: Dispersion Symmetry Point of Energy Collimator';
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;
@@ -210,7 +219,7 @@ if (ECOLasBC ==0.) {
sarcl02.msex255.k2:=110;
sarcl02.msex305.k2:=110;
Print,text='MATCH POINT: Sextupoles in Energy Collimator';
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;
@@ -259,6 +268,7 @@ sarcl01.mqua190.k1 := -1.475278354;
use,sequence=swissfel;
Print,text='MATCH POINT: Match into Energy Collimator';
MATCH,SEQUENCE=swissfel,range=s20SY02$start/sarma02$start,beta0=twisssep;
VARY,NAME=sarcl01.mqua020.k1,STEP=0.0001,lower=-1., upper =1.;
VARY,NAME=sarcl01.mqua050.k1,STEP=0.0001;
@@ -295,6 +305,7 @@ plot,haxis=s,vaxis=betx,bety,range=S30CB15$START/SARCL02$END,colour=100;
!-----------------
muAR=0.16;
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;
@@ -338,6 +349,7 @@ sarma01.mqua080.k1 := -1.1356922498;
sarma01.mqua120.k1 := 0.4142170392;
sarma01.mqua140.k1 := -0.4428419456;
Print,text='MATCH POINT: Match into Aramis Undulator';
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;
@@ -369,7 +381,7 @@ twiss,SEQUENCE=swissfel,range=#s/sarbd02.dscr050$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;

View File

@@ -17,6 +17,9 @@ use,sequence=swissfel;
select,flag=Error,pattern="SAT.*";
ealign,DY=0.01;
Print,text='MATCH POINT: Kicker Strength of Septum';
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;
@@ -49,7 +52,7 @@ plot,haxis=s,vaxis=y,dy,range=#s/#e,colour=100;
satsy01.mqua110.k1=-0.7;
Print,text='MATCH POINT: Closed Dispersion in Switchyard';
MATCH,SEQUENCE=Swissfel,range=s20sy02$start/satsy02$end,beta0=twisssep;
VARY,NAME=satsy01.mqua020.k1,STEP=0.0001;
VARY,NAME=satsy01.mqua050.k1,STEP=0.0001;
@@ -73,7 +76,7 @@ plot,haxis=s,vaxis=dx,dy,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;
CONSTRAINT,SEQUENCE=SwissFEL,range= satsy03.mbnd200,DX=0.0;
@@ -85,6 +88,7 @@ satsy02.mqua230.k1=0;
satsy02.mqua240.k1=0;
satsy02.mqua260.k1=0;
Print,text='MATCH POINT: Switchyard Drift';
MATCH,SEQUENCE=SwissFEL,range=s20sy02$start/satsy03$end,beta0=twisssep;
VARY,NAME=satsy02.mqua210.k1,STEP=0.0001;
VARY,NAME=satsy02.mqua230.k1,STEP=0.0001;
@@ -98,6 +102,7 @@ LMDIF,CALLS=1000,TOLERANCE=1.e-21;
ENDMATCH;
Print,text='MATCH POINT: Match into SATSY03';
MATCH,SEQUENCE=SwissFEL,range=s20sy02$start/satsy03$end,beta0=twisssep;
VARY,NAME=satsy02.mqua300.k1,STEP=0.0001;
VARY,NAME=satsy02.mqua310.k1,STEP=0.0001;
@@ -119,6 +124,7 @@ plot,haxis=s,vaxis=dx,dy,range=#s/#e,colour=100;
Print,text='MATCH POINT: BC2 in Switchyard';
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;
@@ -137,6 +143,7 @@ satcl01.mqua180.k1 := CL2.k1;
satcl01.mqua190.k1 := CL1.k1;
Print,text='MATCH POINT: Closed Dispersion in SATCL01';
MATCH,SEQUENCE=SwissFEL,range=satcl01$start/satcl01$end,betx=3,alfx=0,bety=50,alfy=5;
VARY,NAME=cl1.k1,STEP=0.0001;
VARY,NAME=cl2.k1,STEP=0.0001;
@@ -148,7 +155,7 @@ LMDIF,CALLS=1000,TOLERANCE=1.e-21;
ENDMATCH;
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;
VARY,NAME=satbc01.mqua430.k1,STEP=0.0001;
@@ -162,6 +169,10 @@ CONSTRAINT,SEQUENCE=SwissFEL,range= satcl01.msex160, bety < 5;
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;
@@ -191,6 +202,7 @@ L = 20.;
alpha=0.7;
beta=L*alpha;
Print,text='MATCH POINT: Match through Athos C-Band Linac';
MATCH, SEQUENCE=SwissFEL,range=s20sy02$start/satcb01$end,beta0=twisssep;
VARY,NAME=satdi01.mqua080.k1,STEP=0.0001,lower=-1.8,upper=1.8;
@@ -220,6 +232,8 @@ pol=-1;
satun06.mqua080.k1 := -1.699673315*pol;
satun07.mqua080.k1 := 1.746074065*pol;
muAT=0.15;
Print,text='MATCH POINT: FODO - Athos Undulator';
match,SEQUENCE=swissfel,range=satun06$start/satun07$end;
Vary,name=satun06.mqua080.k1,step=0.0001;
Vary,name=satun07.mqua080.k1,step=0.0001;
@@ -271,6 +285,7 @@ eealfy=1.5;
twissee: beta0,betx=eebetx,bety=eebety,alfx=eealfx,alfy=eealfy;
Print,text='MATCH POINT: Match into Athos Undulator';
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;
@@ -298,7 +313,7 @@ satcb03.mqua230.k1=scl*0.2;
satcb03.mqua430.k1=-scl*0.2;
Print,text='MATCH POINT: Match through EEHG Section';
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;
@@ -329,3 +344,4 @@ plot,haxis=s,vaxis=betx,bety,range=satdi01$start/#e,colour=100;
twiss,SEQUENCE=swissfel,range=#s/satun26$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;

View File

@@ -8,7 +8,7 @@ alpha = 1;
beta = alpha*L;
Print,text='MATCH POINT: Laser Heater';
MATCH,SEQUENCE=SwissFEL,range=#s/sinbc02$start,beta0 = Twiss0;
VARY,NAME=sinlh01.MQUA020.k1,STEP=0.0001;
VARY,NAME=sinlh01.MQUA040.k1,STEP=0.0001;
@@ -35,6 +35,7 @@ ENDMATCH;
twiss,SEQUENCE=swissfel,range=#s/sinbc01$end,beta0 = Twiss0;
plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100;
Print,text='MATCH POINT: BC 1';
MATCH,SEQUENCE=SwissFEL,range=#s/sinma01$start,beta0 = Twiss0;
VARY,NAME=sinbc01.MQUA020.k1,STEP=0.0001;
VARY,NAME=sinbc01.MQUA050.k1,STEP=0.0001;
@@ -54,6 +55,7 @@ plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100;
sinma01.mqua020.k1=-0.1;
Print,text='MATCH POINT: Injector-TDS';
MATCH,SEQUENCE=SwissFEL,range=#s/sindi02$end,beta0 = Twiss0;
VARY,NAME=sinma01.MQUA020.k1,STEP=0.0001;
VARY,NAME=sinma01.MQUA030.k1,STEP=0.0001;
@@ -83,7 +85,7 @@ s10cb02.mqua230.k1=0.2;
s10cb02.mqua430.k1=-0.2;
muLin1=0.2;
Print,text='MATCH POINT: FODO - Linac 1';
match,SEQUENCE=swissfel,range=S10cb02$start/s10cb02$end;
Vary,name=S10CB02.MQUA230.k1,step=0.0001;
Vary,name=S10CB02.MQUA430.k1,step=0.0001;
@@ -103,7 +105,7 @@ nbety=table(twiss,s10cb02$end,bety);
nalfy=table(twiss,s10cb02$end,alfy);
plot,haxis=s,vaxis=betx,bety,colour=100;
Print,text='MATCH POINT: Match into Linac 1';
MATCH,SEQUENCE=SwissFEL,range=#s/s10cb02$end,beta0 = Twiss0;
VARY,NAME=sindi02.mqua020.k1,STEP=0.0001,lower=-5.5,upper=5.5;
VARY,NAME=sindi02.mqua030.k1,STEP=0.0001,lower=-5.5,upper=5.5;
@@ -151,7 +153,7 @@ twiss,SEQUENCE=swissfel,range=#s/s10cb10$end,beta0 = Twiss0;
plot,haxis=s,vaxis=betx,bety,range=#s/#e,colour=100;
Print,text='MATCH POINT: Match into Athos Septum';
MATCH,SEQUENCE=SwissFEL,range=#s/s20sy02$start,beta0 = Twiss0;
VARY,NAME=s20sy01.mqua010.k1,STEP=0.0001,lower=-5.5,upper=5.5;
VARY,NAME=s20sy01.mqua060.k1,STEP=0.0001,lower=-5.5,upper=5.5;