Support for different phases. Settings have to match the loaded phase
This commit is contained in:
7
model.py
7
model.py
@@ -139,7 +139,7 @@ class Model:
|
||||
elif 'MKAC' in ele.Name or 'MKDC' in ele.Name:
|
||||
kicker[ele.Name] = {'cory': ele.cory,'design_kick':ele.design_kick}
|
||||
return {'Quadrupole':quadrupoles,'Sextupole':sextupoles,'Dipole':dipoles,'RF':rf,'Undulator':undulators,
|
||||
'Kicker':kicker,'Energy':energy, 'InitialCondition':self.startTwiss}
|
||||
'Kicker':kicker,'Energy':energy, 'InitialCondition':self.startTwiss,'Phase':self.phase}
|
||||
|
||||
def loadSettingsGroup(self,group,fields,normalized=False):
|
||||
for key in group.keys():
|
||||
@@ -150,6 +150,10 @@ class Model:
|
||||
ele.__dict__[field]/=ele.Length
|
||||
|
||||
def loadSettings(self,settings):
|
||||
if not 'Phase' in settings.keys():
|
||||
return False
|
||||
if not settings['Phase'] == self.phase:
|
||||
return False
|
||||
self.loadSettingsGroup(settings['Quadrupole'],['k1'])
|
||||
self.loadSettingsGroup(settings['Sextupole'], ['k2'])
|
||||
self.loadSettingsGroup(settings['Dipole'], ['angle'])
|
||||
@@ -163,6 +167,7 @@ class Model:
|
||||
self.updateEnergy(self.startEnergy)
|
||||
print('Settings loaded (Reference Energy:',self.om.EnergyAt(self.energyReference)[0],')')
|
||||
self.forceLat=True
|
||||
return True
|
||||
|
||||
def updateModelFromMatching(self,var):
|
||||
for magm in var.keys():
|
||||
|
||||
Reference in New Issue
Block a user