如何解决如何从粒子坐标列表中产生区域中的粒子浓度
我正在运行蒙特卡洛模拟,用于粒子的扩散。它为每个粒子输出一个列表,其中包含与粒子所在的坐标相对应的列表。该列表是粒子位置的跟踪器(position_tracker),每个粒子都有一个单独的列表。即。
position_tracker for粒子0 = [(20,24),(19,(18,23),(17,22),21),21)]
粒子1的position_tracker = [(21,25),(21,25)]
我试图找出随时间变化的坐标(gr.tspace
)区域中有多少粒子,然后绘制一个图形,其中该区域中的粒子数随时间变化。
我遇到的问题是2倍。 1.粒子位置仅在位置更改时才更新,因此包含坐标的每个列表的长度都不同。 2.这意味着我不知道每个粒子何时运动。我认为最好的猜测就足够了。
这是我目前的尝试:
粒子位置列表存储在gr.list_of_atoms[x].position_tracker[y]
x索引粒子,y索引坐标
下面的代码是在蒙特卡洛模拟中进行的,其中10个运动包含100个粒子,因此for循环范围为99和9。
count_track = np.zeros((100,10))
for x in range (99):
for x in range (9):
if gr.list_of_atoms[x].position_tracker[y] in gr.tspace:
count_track[x,y] = 1
print('inside')
y += 1
else:
print('outside')
y += 1
我尝试创建列表长度的列表,并将其用作for循环的范围:
lngth =[]
for x in range (99) :
lngth.append(len(gr.list_of_atoms[x].position_tracker))
我无法使它正常工作。
我很努力,希望得到任何帮助
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。