def __init__(self, name, K, L, spaceChargeOn, multipart, twiss, beamdata, nbrOfSplits):
LinearElement.__init__(self, "quad " + name)
#self.name = name
self.K = K
self.L = L
gamma = gammaFromBeta(beamdata[0])
self.M = self.createMatrixM(K, L, beamdata[0], gamma) # M should be a 6x6 matrix
self.T = self.createMatrixT(self.M) # M should be a 9x9 matrix
# disunite matrices
self.n = nbrOfSplits
self.Lsp = self.L/self.n
self.Msp = self.createMatrixM(self.K, self.Lsp, beamdata[0], gamma)
self.Tsp = self.createMatrixT(self.Msp)
# space charge class
self.spaceChargeOn = spaceChargeOn
if self.spaceChargeOn == 1:
#self.sc = SpaceCharge('quad_sc', self.Lsp, multipart, twiss, beamdata) # OLD
self.sc = SpaceCharge('quad_sc', self.Lsp, beamdata) # NEW
elif self.spaceChargeOn == 2:
self.sc = SpaceChargeEllipticalIntegral('quad_sc', self.Lsp, beamdata)
accelerator.py 文件源码
python
阅读 25
收藏 0
点赞 0
评论 0
评论列表
文章目录