Initial test of matching

This commit is contained in:
2025-05-14 17:54:00 +02:00
parent a1d8ed58c5
commit 2f8a07ac37
3 changed files with 87 additions and 31 deletions

View File

@@ -169,7 +169,10 @@ class Model:
def match(self):
config = self.parent.reference.getMatchingPoint()
config,ID = self.parent.reference.getMatchingPoint()
if config is None:
return
self.setBranch(config['Destination'])
if config['Reference'] is None:
start='#s'
@@ -198,13 +201,31 @@ class Model:
res,twiss,err=self.madx.match(sequence=config['Sequence'], start=start, end=end,
init=itwiss, var=var, const=conf0,
preset=False,random=False)
print(res)
print(err)
plot = True
if plot:
energy = self.calcEnergyProfile(twiss)
print('Plotting')
self.parent.plot.newData(twiss,energy)
if not config['Save'] == False:
self.parent.reference.saveTwiss(ID,twiss)
self.parent.reference.updateMatchPoint(ID,err)
self.updateModelFromMatching(res)
energy = self.calcEnergyProfile(twiss)
self.parent.plot.newData(twiss,energy)
def updateModelFromMatching(self,var):
for magm in var.keys():
if 'mqua' in magm or 'mqsk' in magm:
mag0 = magm[0:15]
val = var[magm]
ele=self.om.getElement(mag0)
if not ele is None:
ele.k1 = val
print('Updating %s to k1: %8.4f' % (mag0, val))
magnets=self.parent.reference.getDependence(mag0)
if not magnets is None:
for magd in magnets:
ele = self.om.getElement(magd)
if not ele is None:
ele.k1 = val
print('Updating %s to k1: %8.4f' % (magd, val))
##################
# tracking