0
私は2つの異なる種の粒子衝突をモデリングしています。私はクラスを使用して、各スペーや粒子の位置と速度を保持する配列のクラスを定義しています。クラスpythonで定義された配列の要素を入れ替えます。
衝突iが
クラスは次のように別のファイルに定義されている種Bの粒子の速度で種Aの粒子の速度を交換する必要が生じる。
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.]