當前位置: 首頁>>代碼示例>>Python>>正文


Python teapot.DriftTEAPOT類代碼示例

本文整理匯總了Python中orbit.teapot.DriftTEAPOT的典型用法代碼示例。如果您正苦於以下問題:Python DriftTEAPOT類的具體用法?Python DriftTEAPOT怎麽用?Python DriftTEAPOT使用的例子?那麽, 這裏精選的類代碼示例或許可以為您提供幫助。


在下文中一共展示了DriftTEAPOT類的12個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Python代碼示例。

示例1: __init__

    def __init__(self, phaseLength, nMacrosMin, nBins,\
	    bunch, impeDict,\
	    name = "freq. dep. LImpedance node"):
        """
            Constructor. Creates the FreqDep_LImpedance-teapot element.
        """
        DriftTEAPOT.__init__(self, name)
        self.limpedance = LImpedance(phaseLength, nMacrosMin, nBins)
        self.setType("freq. dep. limpedance node")
        self.setLength(0.0)
        self.phaseLength = phaseLength
        self.nBins = nBins
        self.localDict = impeDict
        self.freq_tuple = self.localDict["freqs"]
        self.freq_range = (len(self.freq_tuple) - 1)
        self.z_tuple = self.localDict["z_imp"]
        self.c = consts.speed_of_light
        BetaRel = bunch.getSyncParticle().beta()
        Freq0 = (BetaRel * self.c) / self.phaseLength
        Z = []
        for n in range(self.nBins / 2 - 1):
            freq_mode = Freq0 * (n + 1)
            z_mode = interp(freq_mode, self.freq_range,\
                            self.freq_tuple, self.z_tuple)
            Z.append(z_mode)
        self.limpedance.assignImpedance(Z)
開發者ID:luxiaohan,項目名稱:py-orbit-code,代碼行數:26,代碼來源:ImpedanceNode.py

示例2: __init__

	def __init__(self, length, name = "base_rfnode"):
		"""
			Constructor. Creates Base RF Cavity TEAPOT element.
			It will never be called.
		"""
		DriftTEAPOT.__init__(self, name)
		self.setType("base rf node")
		self.setLength(0.0)
開發者ID:luxiaohan,項目名稱:py-orbit-code,代碼行數:8,代碼來源:RFNode.py

示例3: __init__

	def __init__(self, length, ma, density_fac, shape, a, b, c, d, angle, pos = 0, name = "collimator no name"):
		"""
		Constructor. Creates the Collimator TEAPOT element.
		"""
		DriftTEAPOT.__init__(self,name)
		self.collimator = Collimator(length,ma,density_fac,shape,a,b,c,d,angle,pos)
		self.setType("collimator teapot")
		self.setLength(length)
開發者ID:luxiaohan,項目名稱:py-orbit-code,代碼行數:8,代碼來源:TeapotCollimatorNode.py

示例4: __init__

	def __init__(self, bunch, xbump, xpbump, ybump, ypbump, name = "bump"):
		"""
		Constructor. Creates the Bumpe TEAPOT element.
		"""
		DriftTEAPOT.__init__(self,name)
		self.simplebump = simpleBump(bunch, xbump, xpbump, ybump, ypbump);
		self.setType("Bump")
		self.setLength(0.0)
開發者ID:luxiaohan,項目名稱:py-orbit-code,代碼行數:8,代碼來源:TeapotBumpNode.py

示例5: __init__

    def __init__(self, disp,\
	    name = "BendYF Displacement"):
        """
            Constructor. Creates BendDisplacementYF element.
        """
        DriftTEAPOT.__init__(self, name)
        self.setType("yf bend displacement node")
        self.setLength(0.0)
        self.disp = disp
開發者ID:luxiaohan,項目名稱:py-orbit-code,代碼行數:9,代碼來源:ErrorNode.py

示例6: __init__

	def __init__(self, a, b, pos = 0, c = 0, d = 0, name = "aperture"):
		DriftTEAPOT.__init__(self,name)
		self.shape = 3
		self.a = a
		self.b = b
		self.c = c
		self.d = d
		self.pos = pos
		self.Aperture = Aperture(self.shape, self.a, self.b, self.c, self.d, self.pos)
開發者ID:luxiaohan,項目名稱:py-orbit-code,代碼行數:9,代碼來源:TeapotApertureNode.py

示例7: __init__

	def __init__(self, xmin, xmax, ymin, ymax, thick, name = "foil no name"):
		"""
		Constructor. Creates the Foil TEAPOT element.
		"""
		DriftTEAPOT.__init__(self,name)
		self.foil = Foil(xmin, xmax, ymin, ymax, thick)
		self.setType("foil teapot")
		self.setLength(0.0)
		# The user choice of scattering routine. Defualt (0) is full scatter
		self.scatterChoice = 0
開發者ID:luxiaohan,項目名稱:py-orbit-code,代碼行數:10,代碼來源:TeapotFoilNode.py

示例8: __init__

	def __init__(self, name = "BPMSignal no name"):
		"""
		Constructor. Creates the StatLats TEAPOT element.
		"""
		DriftTEAPOT.__init__(self,name)
		self.bpm = BPMSignal()
		self.setType("BPMSignal")
		self.lattlength = 0.0
		self.setLength(0.0)
		self.position = 0.0
開發者ID:luxiaohan,項目名稱:py-orbit-code,代碼行數:10,代碼來源:TeapotDiagnosticsNode.py

示例9: __init__

 def __init__(self, bx, by, ax, ay, ex, epx, l, zi, zf, ds, niters,
               resid, xrefi, yrefi, eulerai, eulerbi, eulergi, b, filename):
     """
     Constructor. Creates the FieldTracker TEAPOT element.
     """
     DriftTEAPOT.__init__(self,name)
     self.fieldtracker = FieldTracker(order, bx, by, ax, ay, ex, epx, l, zi, zf, ds, niters,
               resid, xrefi, yrefi, eulerai, eulerbi, eulergi, apflag, b)
     self.setType("fieldtracker teapot")
     self.setLength(l)
開發者ID:luxiaohan,項目名稱:py-orbit-code,代碼行數:10,代碼來源:TeapotFieldTrackerNode.py

示例10: addTeapotCollimatorNode

def addTeapotCollimatorNode(lattice, position, collimator_node):
	"""
	It will put one Teapot collimation node in the lattice 
	"""
	length_tolerance = 0.0001
	lattice.initialize()
	if(position > lattice.getLength() ):
		position = lattice.getLength();
		print "User-specified aperture position is larger than lattice length.  Resetting it to lattice length."
	collimator_node.setPosition(position);
	position_start = position
	position_stop = position + collimator_node.getLength()
	(node_start_ind,node_stop_ind,z,ind) = (-1,-1, 0., 0)
	for node in lattice.getNodes():
		if(position_start >= z and position_start <= z + node.getLength()):
			node_start_ind = ind
		if(position_stop >= z and position_stop <= z + node.getLength()):
			node_stop_ind = ind
		ind += 1
		z += node.getLength()
	#-------now we check that between start and end we have only non-modified drift elements
	#-------if the space charge was added first - that is a problem. The collimation should be added first.
	for node in lattice.getNodes()[node_start_ind:node_stop_ind+1]:
		#print "debug node=",node.getName()," type=",node.getType()," L=",node.getLength()
		if(not isinstance(node,DriftTEAPOT)):
			print "Non-drift node=",node.getName()," type=",node.getType()," L=",node.getLength()
			orbitFinalize("We have non-drift element at the place of the collimator! Stop!")
			#if(node.getNumberOfChildren() != 4):
			#print "Node=",node.getName()," type=",node.getType()," L=",node.getLength()," N children nodes=",node.getNumberOfChildren()
			#orbitFinalize("Drift element was modified with additional functionality (SC or something else)! Add collimation first! Stop!")
	# make array of nodes from collimator in the center and possible two drifts if their length is more than length_tolerance [m]
	nodes_new_arr = [collimator_node,]
	drift_node_start = lattice.getNodes()[node_start_ind]
	drift_node_stop = lattice.getNodes()[node_stop_ind]	
	#------now we will create two drift nodes: before the collimator and after
	#------if the length of one of these additional drifts less than length_tollerance [m] we skip this drift 
	if(position_start > lattice.getNodePositionsDict()[drift_node_start][0] +  length_tolerance):
		drift_node_start_new = DriftTEAPOT(drift_node_start.getName())
		drift_node_start_new.setLength(position_start - lattice.getNodePositionsDict()[drift_node_start][0])
		nodes_new_arr.insert(0,drift_node_start_new)
	if(position_stop < lattice.getNodePositionsDict()[drift_node_stop][1] - length_tolerance):
		drift_node_stop_new = DriftTEAPOT(drift_node_stop.getName())
		drift_node_stop_new.setLength(lattice.getNodePositionsDict()[drift_node_stop][1] - position_stop)
		nodes_new_arr.append(drift_node_stop_new)
	#------ now we will modify the lattice by replacing the found part with the new nodes
	lattice.getNodes()[node_start_ind:node_stop_ind+1] = nodes_new_arr
	# initialize the lattice
	lattice.initialize()
開發者ID:luxiaohan,項目名稱:py-orbit-code,代碼行數:48,代碼來源:collimationLatticeModifications.py

示例11: addTeapotDiagnosticsNode

def addTeapotDiagnosticsNode(lattice, position, diagnostics_node):
	"""
	It will put one Teapot diagnostics node in the lattice 
	"""
	length_tollerance = 0.0001
	lattice.initialize()
	position_start = position
	position_stop = position + diagnostics_node.getLength()
	diagnostics_node.setPosition(position)
	diagnostics_node.setLatticeLength(lattice.getLength())
	(node_start_ind,node_stop_ind,z,ind) = (-1,-1, 0., 0)
	for node in lattice.getNodes():
		if(position_start >= z and position_start <= z + node.getLength()):
			node_start_ind = ind
		if(position_stop >= z and position_stop <= z + node.getLength()):
			node_stop_ind = ind
		ind += 1
		z += node.getLength()
	#-------now we check that between start and end we have only non-modified drift elements
	#-------if the space charge was added first - that is a problem. The collimation should be added first.
	for node in lattice.getNodes()[node_start_ind:node_stop_ind+1]:
		#print "debug node=",node.getName()," type=",node.getType()," L=",node.getLength()
		if(not isinstance(node,DriftTEAPOT)):
			print "Non-drift node=",node.getName()," type=",node.getType()," L=",node.getLength()
			orbitFinalize("We have non-drift element at the place of the diagnostics! Stop!")
			
	# make array of nodes from diagnostics in the center and possible two drifts if their length is more than length_tollerance [m]
	nodes_new_arr = [diagnostics_node,]
	drift_node_start = lattice.getNodes()[node_start_ind]
	drift_node_stop = lattice.getNodes()[node_stop_ind]	
	#------now we will create two drift nodes: before the diagnostics and after
	#------if the length of one of these additional drifts less than length_tollerance [m] we skip this drift 
	if(position_start > lattice.getNodePositionsDict()[drift_node_start][0] +  length_tollerance):
		drift_node_start_new = DriftTEAPOT(drift_node_start.getName())
		drift_node_start_new.setLength(position_start - lattice.getNodePositionsDict()[drift_node_start][0])
		nodes_new_arr.insert(0,drift_node_start_new)
	if(position_stop < lattice.getNodePositionsDict()[drift_node_stop][1] - length_tollerance):
		drift_node_stop_new = DriftTEAPOT(drift_node_stop.getName())
		drift_node_stop_new.setLength(lattice.getNodePositionsDict()[drift_node_stop][1] - position_stop)
		nodes_new_arr.append(drift_node_stop_new)
	#------ now we will modify the lattice by replacing the found part with the new nodes
	lattice.getNodes()[node_start_ind:node_stop_ind+1] = nodes_new_arr
	# initialize the lattice
	lattice.initialize()
開發者ID:luxiaohan,項目名稱:py-orbit-code,代碼行數:44,代碼來源:diagnosticsLatticeModifications.py

示例12: printM

#---PRINT Function for Matrix
def printM(m):
	print "----matrix--- size=",m.size()
	for i in xrange(m.size()[0]):
		for j in xrange(m.size()[1]):
			print ("(%1d,%1d)=% 6.5e "%(i,j,m.get(i,j))),
		print ""	
		

b = Bunch()
Ekin = 1.0 # in GeV
b.getSyncParticle().kinEnergy(Ekin)

#define TEAPOT drift
node0 = DriftTEAPOT("drift")
node0.setLength(1.0)

#define TEAPOT quad
node1 = QuadTEAPOT("quad")
node1.setLength(1.0)
node1.addParam("kq",0.5)
	
matrixGenerator = MatrixGenerator()

#========matrix for drift =====
m = Matrix(6,6)
matrixGenerator.initBunch(b)
node0.trackBunch(b)
matrixGenerator.calculateMatrix(b,m)	
print "drift matrix L=",node0.getLength()
開發者ID:luxiaohan,項目名稱:py-orbit-code,代碼行數:30,代碼來源:teapot_stand_alone_node_test.py


注:本文中的orbit.teapot.DriftTEAPOT類示例由純淨天空整理自Github/MSDocs等開源代碼及文檔管理平台,相關代碼片段篩選自各路編程大神貢獻的開源項目,源碼版權歸原作者所有,傳播和使用請參考對應項目的License;未經允許,請勿轉載。