cy-Yin / gas-module-diffusion-simulation

随机漫步 分子碰撞分布模拟

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

说明

本文件对随机行走与扩散进行模拟

模拟思路:

首先对单分子进行不同情况的随机漫步

其中

  • 在随机漫步类(RandomWalk())的定义中通过 distance = 1 限制一个分子的步长一定,通过 direction = choice([1, -1]) 和 a = randint(1,3) 表示方向随机
  • 在随机漫步类(RandomWalk())的定义中通过 distance = choice([0, 1, 2, 3, 4]) 使步长随机取0-4中的某个值
  • 随机间隔在单分子模拟内不好表示,请参阅多分子模拟部分

然后是对多分子进行模拟

主要**为构建一个5000次的循环,一次循环代表一个分子的随机漫步过程,取漫步后的最终位置,即得到5000个分子在某个时刻的分布状态

其中

  • 碰撞间隔一定:设置为在总时间内每个分子完成50000次碰撞
  • 碰撞间隔随机:设置为总时间内每个分子完成的碰撞次数在500次到50000次取一个随机的值作为碰撞次数

以下是各个文件的内容

  • ONE_rw_1.py —— 模拟一个分子步长一定,方向随机情况下的随机漫步
  • ONE_rw_2.py —— 模拟一个分子步长随机,方向随机情况下的随机漫步
  • rw_1.py —— 模拟大量分子(统计意义上)的随机漫步,假设步长固定,方向随机
  • rw_2.py —— 模拟大量分子(统计意义上)的随机漫步,假设步长随机,方向随机
  • rw_3.py —— 模拟大量分子(统计意义上)的随机漫步,假设步长随机,方向随机,碰撞间隔随机

结果:

单分子随机漫步

  • ONE_rw_1.png —— 模拟一个分子步长一定,方向随机情况下的随机漫步
  • ONE_rw_2.png —— 模拟一个分子步长随机,方向随机情况下的随机漫步

多分子随机漫步

  • rw_1.png —— 模拟大量分子(统计意义上)的随机漫步,假设步长固定,方向随机
  • rw_2.png —— 模拟大量分子(统计意义上)的随机漫步,假设步长随机,方向随机
  • rw_3.png —— 模拟大量分子(统计意义上)的随机漫步,假设步长随机,方向随机,碰撞间隔随机

多分子统计分布

  • rw_1_distribution.png —— rw_1情况的距离分布
  • rw_1_distribution.png —— rw_2情况的距离分布
  • rw_1_distribution.png —— rw_3情况的距离分布

About

随机漫步 分子碰撞分布模拟


Languages

Language:Python 100.0%