Я моделирую столкновение частиц двух разных видов. Я использую класс для определения каждого вида и класса для массивов, которые занимают позиции частиц и скорость.Переменные элементы в массиве, определенные в классе python
Когда происходит столкновение я должен поменять местами скорости частицы звонкой А со скоростью частицы звонкой B.
классы определены в отдельном файле, как:
class Particle(object):
def __init__(self,num):
self.x=numpy.zeros((num,1)) #Position
self.v=numpy.zeros((num,3)) #Velocity
class Species(object):
def __init__(self):
self.mass=[]
self.spwt=[]
self.np=[]
self.np_alloc=[]
self.part=[]
Виды являются создан в основном файле:
#variables to hold species
A = struct.Species()
B = struct.Species()
#set species data
A.mass = 1
A.np = 0
A.spwt=spwt
A.np_alloc = num
A.part = struct.Particle(A.np_alloc)
B.mass = 1
B.np = 0
B.spwt=spwt
B.np_alloc = int(cloud_den/spwt/cloud_len)
B.part = struct.Particle(B.np_alloc)
И когда я пытаюсь поменять скорости частиц
print A.part.v[p1]
print B.part.v[p2]
A.part.v[p1],B.part.v[p2]=B.part.v[p2],A.part.v[p1]
print A.part.v[p1]
print B.part.v[p2]
Выход:
[ 1000. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]
[ 0. 0. 0.]