Working on the design optics for SF+

This commit is contained in:
2026-09-15 14:11:54 +02:00
parent f050e3425d
commit 85e73c09d5
3 changed files with 338 additions and 321 deletions
+1 -1
View File
@@ -250,7 +250,7 @@ class OpticsTools(QtWidgets.QMainWindow, QtCore.QObject, Ui_OpticsGUI):
if __name__ == '__main__':
QtWidgets.QApplication.setStyle(QtWidgets.QStyleFactory.create("plastique"))
parser = ArgumentParser()
parser.add_argument('-phase', type=int, help='Select Phase of the Lattice', default=0)
parser.add_argument('-phase', type=int, help='Select Phase of the Lattice', default=2)
parser.add_argument('-offline', type=int, help='Excludes any connection to control system', default=1)
args = parser.parse_args()
app = QtWidgets.QApplication(sys.argv)
+20 -15
View File
@@ -213,14 +213,15 @@ if (ECOLasBC ==0.) {
sarcl02.mqua460.k1=sarcl02.mqua130.k1;
dL=0.625+0.25;
bx0=25;
bx0=25-20;
bx=bx0+dL*dL/bx0;
ax=-dL/bx0;
by0=0.8;
by0=1.2;
by=by0+dL*dL/by0;
ay=-dL/by0;
twiss,sequence=swissfel,range=sarcl02.mqsk300/sarcl02$end,betx=bx,alfx=ax,bety=by,alfy=ay;
twiss,sequence=swissfel,range=sarcl02.mqsk300$start/sarma01$start,betx=bx,alfx=ax,bety=by,alfy=ay;
plot,haxis=s,vaxis=betx,bety,colour=100;
nbetx= table(twiss,sarcl02$end,betx);
@@ -282,34 +283,38 @@ 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.;
MATCH,SEQUENCE=swissfel,range=s20SY02$start/sarma01$end,beta0=twisssep;
VARY,NAME=sarcl01.mqua020.k1,STEP=0.0001;!,lower=-1., upper =1.;
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;
! 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=sarcl02$start,betx=nbetx;
constraint,sequence=swissfel,range=sarcl02$start,bety=nbety;
constraint,sequence=swissfel,range=sarcl02$start,alfx=nalfx;
constraint,sequence=swissfel,range=sarcl02$start,alfy=nalfy;
CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua050$start,bety<30;
CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua190$start,betx<30;
} else {
CONSTRAINT,SEQUENCE=swissfel,range=sarcl02.dscr280$start,betx = 10;
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;
CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua050$start,bety<70;
CONSTRAINT,SEQUENCE=swissfel,range=sarcl01.mqua190$start,betx<70;
}
LMDIF,CALLS=100,TOLERANCE=1.e-21;
ENDMATCH;
twiss,sequence=swissfel,range=s20SY02$start/sarcl01$start,beta0=twisssep;
twiss,sequence=swissfel,range=s20SY02$start/sarma01$start,beta0=twisssep;
plot,haxis=s,vaxis=betx,bety,range=S30CB15$START/SARCL02$END,colour=100;
File diff suppressed because it is too large Load Diff