【发布时间】:2020-11-24 19:28:29
【问题描述】:
我仍在做与我之前尝试模拟粒子扩散的问题相同的项目。我之前的问题与此无关,除了仍在尝试模拟扩散。我正处于尝试在网格内启动不同扩散区域的阶段,因此我有一个功能可以生成列表(坐标)列表,可以在每个移动步骤中对照粒子的坐标来检查以调整概率运动,以及扩散性。
我正在使用 2 个类;一个用于启动扩散网格空间,grid(),另一个用于移动粒子,atom()。 atom() 类不从 grid() 类继承变量。使用initial t_space 在grid() 中创建了一个名为t_space 的坐标区域,我想访问在atom() 中initial t_space 中生成的这个变量t_space。
我的代码很长,所以我已经包含了我希望是相关的部分,以及我目前解决这个问题的尝试。
我希望在 atom() 中从 grid() 调用 t_space 变量的代码是:
atom().tspace = grid().t_space
class grid():
def __init__(self, x, y):
self.grid = np.zeros((x,y))
self.list_of_atoms=[]
self.x = x
self.y = y
def initiate_t_space(self,t_space_x, t_space_y):
self.t_space = []
for i in range(0,self.t_space_x):
for j in range(0,self.t_space_y):
self.t_space.append([i,j])
class atom():
def __init__(self,x,y):
self.position=[x,y]
self.position_tracker=[]
self.dx=0
self.dy=0
# self.tspace = [[11, 42], [11, 43], [11, 44], [11, 45], [11, 46], [11, 47], [11, 48], [11, 49], [11, 50], [11, 51], [11, 52], [11, 53], [11, 54], [11, 55], [11, 56], [11, 57], [11, 58], [12, 38], [12, 39], [12, 40], [12, 41], [12, 42], [12, 43], [12, 44], [12, 45], [12, 46], [12, 47], [12, 48]]
# self.t_space = []
# for i in range(0,100):
# for j in range(0,200):
# self.t_space.append([i,j])
# print(self.t_space)
atom().tspace = grid().t_space
atom() 类中被注释掉的代码是先前尝试在 atom() 中启动 t_space,但是它需要在 grid() 中计算,因为它使用来自 grid() 的变量。
任何帮助将不胜感激。
【问题讨论】:
-
原子真的需要知道它所在的网格吗?
-
我认为是这样,因此它可以确定该位置的扩散率
-
那么你就有了循环依赖……你可以从网格类本身更新存储在网格中的原子信息。
标签: python class class-variables