24小时热门版块排行榜    

查看: 3599  |  回复: 17
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

清泥-3

金虫 (小有名气)

[求助] Kinetic Monte carlo动力学蒙特卡罗模拟化学反应。。已有3人参与

各位虫友们,有谁对做过动力学蒙特卡罗模拟化学反应? 求指导呀,最近老师让我研究这个,真心看不懂?有哪位大神能够指导下,感激不尽。。。做模拟的时候初始模型是随意给定的还是?如果某个事件能够发生,比如反应A能生成B, 在模拟的时候是不是只在某个格点上发生一次这样的事情,然后进入到下一个循环,还是所有的满足的格子上面的A都能生成B。?
回复此楼
刚刚开始接触,以后还要继续努力学习。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wolffporter

新虫 (初入文坛)

【答案】应助回帖

我博士课题期间自学并用matlab写了个MC的代码,不过是用于高分子聚合反应的,参考了杨玉良与张红东写的 “高分子科学中的 Monte Carlo 方法”。化学反应的MC模拟大体来说就是用到两组随机数:r1与r2。

r1是一个1×1的数组,也就是一个数,用于产生每一步反应的时间;
r2是一个N×1的数组,用于选择反应类型,N等于反应物种的数目,也就是说每一个反应物种会分配得到一个随机数值。

设体系有 M 种反应,各反应的反应频率为 ai (i=1,2,...,M)。那么总的反应频率就是 SIGMA(ai)。如果一些反应物种所分配到的 r2 值的范围在(a1,a2]/SIGMA(ai) ,那么这些反应物种选择进行第一种反应;以此类推, r2 值的范围在(a2,a3]/SIGMA(ai) 的那些反应物种,选择进行第二种反应........
反应类型的排序不影响结果,也就是说随你喜欢把哪种反应放第几个。

每当遍历了所有类型的反应,反应时间增加 tao,tao 值由 r1 计算产生 tao=ln(1/r1)/SIGMA(ai)。当时间达到你要的反应时间,终止程序。
11楼2016-03-18 14:51:35
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 18 个回答

清泥-3

金虫 (小有名气)

怎么都没有人搭理?
刚刚开始接触,以后还要继续努力学习。
2楼2015-04-27 09:55:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

kjsun

木虫 (正式写手)

【答案】应助回帖

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
感谢参与,应助指数 +1
清泥-3: 金币+30, ★★★很有帮助 2015-05-04 11:13:10
模拟的时候初始模型是随意给定的还是?如果某个事件能够发生,比如反应A能生成B, 在模拟的时候是不是只在某个格点上发生一次这样的事情,然后进入到下一个循环,还是所有的满足的格子上面的A都能生成B。?

答:初始模型是在满足一些条件的情况下,随便定的。
   一般是:某个格子上的A生成B,然后进入下一循环。




特别提醒:我没做过KMC模拟反应。
我做的是模拟脱附过程,
所以仅供参考。
3楼2015-04-27 10:27:22
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

清泥-3

金虫 (小有名气)

引用回帖:
3楼: Originally posted by kjsun at 2015-04-27 10:27:22
模拟的时候初始模型是随意给定的还是?如果某个事件能够发生,比如反应A能生成B, 在模拟的时候是不是只在某个格点上发生一次这样的事情,然后进入到下一个循环,还是所有的满足的格子上面的A都能生成B。?

答:初 ...

脱附过程,是用什么算法,BKL,还是第一反应法,还是别的,这些算法的使用是不是看自己的选择,还是说根据自己要模拟什么来定?
刚刚开始接触,以后还要继续努力学习。
4楼2015-04-27 16:14:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
信息提示
请填处理意见