24小时热门版块排行榜    

查看: 7878  |  回复: 73
本帖产生 1 个 模拟EPI ,点击这里进行查看

yahoohoo

铁杆木虫 (著名写手)

[交流] 【在线答疑】经典粒子体系的Monte Carlo 模拟之基础篇 已有29人参与

应版主lei0736之盛情相邀,特开此贴,虽名为分享,实为讨论,希望与初学者以及从事MC研究的同行一起交流。第一篇关于粒子体系的MC模拟基础,欲将涉及以下几个概念与问题:

概念:
正则系综、相空间、概率密度、细致平衡(Detailed Balance)、Metropolis重要性抽样

问题:
(1) 为什么用MC?
(2) MC能做什么?不能做什么?
(3) 怎么做MC?

讨论中打算在适当之处添加一些伪代码(c++)以供理解。

欢迎大家多提宝贵意见。

[ Last edited by lei0736 on 2009-12-21 at 18:04 ]
回复此楼

» 收录本帖的淘帖专辑推荐

仿真建模与计算 第一性原理 多孔材料 分子模拟入门学习资料心得
动力学或热力学计算 网页

» 本帖已获得的红花(最新10朵)

» 猜你喜欢

» 本主题相关价值贴推荐,对您同样有帮助:

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
回帖支持 ( 显示支持度最高的前 50 名 )

yahoohoo

铁杆木虫 (著名写手)

★ ★ ★ ★ ★
lei0736(金币+5,VIP+0):谢谢 12-22 09:58
引用回帖:
Originally posted by qzhaosdu at 2009-12-21 21:13:
请问用MC做表面活性剂自组装和高分子稀溶液自组装的可靠性?
看过很多文章,貌似用MC做同样的体系和用SCFT,DPD做出来的结论大不相同。谢谢!

不知你所说的可靠性是什么?如果采用的模型合理、算法以及程序没有问题,那得到的结果就应该是可靠的。

至于跟其他方法比较的结论大不相同,我没有看过很多这方面的文章,不过需要注意的是 SCFT一般都是平均场处理,因此涨落(fluctuation)是被忽略的,而在相分离过程中这是不对的,Marcus Mueller就是做SCFT和MC对比的,我没有看到你所谓的大不相同的结论。而DPD虽然是一种很流行的研究自组装的方法,但是它所用的相互作用参数过于简单,是否丢掉了部分物理内涵也不清楚。譬如说,DPD就不能模拟高分子融体的缠结问题。

[ Last edited by yahoohoo on 2009-12-21 at 22:50 ]
5楼2009-12-21 22:48:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

lei0736

荣誉版主 (职业作家)

优秀版主


小木虫(金币+0.5):给个红包,谢谢回帖交流
在MD模拟里有平衡和非平衡的MD
那么有没有平衡MC和非平衡MC之分?
他们之间有哪些区别与联系? 是否非平衡MC不需要满足细致平衡条件?
如果有区别 他们各自应用的领域 特点 又是什么?
6楼2009-12-22 10:01:06
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yahoohoo

铁杆木虫 (著名写手)

★ ★ ★
lei0736(金币+3,VIP+0):谢谢 12-22 21:44
引用回帖:
Originally posted by lei0736 at 2009-12-22 10:01:
在MD模拟里有平衡和非平衡的MD
那么有没有平衡MC和非平衡MC之分?
他们之间有哪些区别与联系? 是否非平衡MC不需要满足细致平衡条件?
如果有区别 他们各自应用的领域 特点 又是什么?

没听说过非平衡MC,所以我不确定有没有。不过有所谓的kinetic MC,有人用来模拟硬球体系的结晶成核速率。至于是否需要满足细致平衡条件,我想应该还是要满足的。
7楼2009-12-22 20:52:24
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

coy123

金虫 (正式写手)


lei0736(金币+1):欢迎参与讨论 2010-01-30 17:01
听说过好多MC的种类。格点模型的,非格点模型的。已经搂住说的kinetic  MC,但不知道 KMC是否都是格点模型的
8楼2009-12-23 04:30:11
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

coy123

金虫 (正式写手)


小木虫(金币+0.5):给个红包,谢谢回帖交流
引用回帖:
Originally posted by yahoohoo at 2009-12-21 16:53:
应版主lei0736之盛情相邀,特开此贴,虽名为分享,实为讨论,希望与初学者以及从事MC研究的同行一起交流。第一篇关于粒子体系的MC模拟基础,欲将涉及以下几个概念与问题:

概念:
正则系综、相空间、概率密度、 ...

楼主,写伪码的时候 ,如果设计mc的算法,能否提示是用哪种算法?
9楼2009-12-23 04:32:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yahoohoo

铁杆木虫 (著名写手)

★ ★
lei0736(金币+2,VIP+0):谢谢 12-23 17:51
引用回帖:
Originally posted by coy123 at 2009-12-23 04:30:
听说过好多MC的种类。格点模型的,非格点模型的。已经搂住说的kinetic  MC,但不知道 KMC是否都是格点模型的

可以是lattice MC, 也可以是off-lattice MC
10楼2009-12-23 16:50:03
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

hunanxiang

金虫 (正式写手)

★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
lei0736(金币+3,VIP+0):谢谢 1-3 09:17
最重要的是设定收敛条件,根据规模的大小选择算法。现在模拟的规模越来越大,精度越来越高,需要并行设计如mpi,openmpi。
另外,针对化学反应体系,reaction-diffusion model越来越多,这样的书籍也越来越多,如果需要我可以提供几本
20楼2010-01-01 13:54:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通回帖

lei0736

荣誉版主 (职业作家)

优秀版主


小木虫(金币+0.5):给个红包,谢谢回帖交流
祝贺开贴
顺便问下细致平衡条件的重要性如何
以及如何在模拟中注意哪些事项以保证细致平衡条件
2楼2009-12-21 18:55:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

qzhaosdu

金虫 (著名写手)

★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
lei0736(金币+1):欢迎参与讨论 2010-01-30 17:00
请问用MC做表面活性剂自组装和高分子稀溶液自组装的可靠性?
看过很多文章,貌似用MC做同样的体系和用SCFT,DPD做出来的结论大不相同。谢谢!
Anewday,anewhour,anewminute,anewpeople.
3楼2009-12-21 21:13:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yahoohoo

铁杆木虫 (著名写手)

★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
lei0736(金币+10,VIP+0):呵呵 值得推荐 12-22 09:57
zeoliters(金币+5,VIP+0):谢谢! 12-25 16:25
引用回帖:
Originally posted by lei0736 at 2009-12-21 18:55:
祝贺开贴
顺便问下细致平衡条件的重要性如何
以及如何在模拟中注意哪些事项以保证细致平衡条件

Detailed balance 用公式表示为

其中,表示微观态或微观构象的概率(或几率)密度分布,在NVT系综中,即Boltzmann分布。表示从构象到构象所设计进行的尝试运动的几率,而则是接受从构象到构象的尝试运动的几率,因此表示从构象到构象的转移几率。用简单的语言描述,Detailed balance 是指从构象到构象的流量(flow)等于从构象到构象的流量,这也就是所谓的微观可逆性。

Detailed balance 的重要性在于 (1) 保证在有限的MC步数内达到所需的平衡概率分布[c.f. M.E.J. Newman & G.T. Barkema, Monte Carlo Methods in Statistical Physics, Oxford],这一点有严格的数学证明,我们只需要知道这个结论就可以了; (2) 达到平衡后平衡就不再被破坏,这意味着根据MC算法产生的构象将满足平衡概率分布

满足Detailed balance 公式的解有很多,使用最为广泛的当属Metropolis 算法:


这里,是已知的,对于NVT系综,
。而()取决于我们设计的Monte Carlo运动(move)是如何由构象()到构象()的。例如对于简单的粒子体系,我们现在设计随机移动一个粒子的位置,伪代码为

int ichosen = int(Ntot * mt19937.getReal3()); // Ntot: 粒子的数目; mt19937.getReal3()返回(0, 1)之间的随机数
double stepsize = 0.5 * sigma_LJ; //假设LJ 粒子体系,  sigma_LJ为LJ直径. 在实际模拟中一般需要调节stepsize的大小以获得一定的尝试运动成功率, 例如30%.
for (int j = 0; j < 3; ++j)
  xn[ichosen][j] = xo[ichosen][j] + stepsize * (mt19937.getReal3()-0.5); //(2.0*mt19937.getReal3()-1.0)返回(-0.5,0.5)的随机值.

这段代码的for循环实现的是 以随机选取的粒子的原有位置xo[ichosen]为中心 所形成的边长为 stepsize的正方体内随机产生一个新的位置xn[ichosen],那么,,因为stepsize * (mt19937.getReal3()-0.5) 保证了 由旧位置到新位置的尝试运动几率 等于 由新位置到旧位置的尝试运动几率,所以这里 。有了这样设计的尝试运动再加上 利用 Metropolis 算法 来判断是否接受这样的尝试运动, 达到平衡后的构象分布就已经满足我们想要抽样的统计概率 分布了。

简单一句话, 通过Detailed balance设计MC尝试运动,保证我们能达到平衡而且平衡后的构象满足我们想要的概率分布。

仍然以NVT系综为例,任意可测量量 的统计定义为

需要注意的是: 我们已经知道  达到平衡后的构象分布就已经满足我们想要抽样的统计概率 分布了,这就表明在MC中,


因为MC所产生的平衡构象已经满足平衡分布了。

[ Last edited by yahoohoo on 2009-12-22 at 04:21 ]
4楼2009-12-21 22:28:15
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 yahoohoo 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见