24小时热门版块排行榜    

CyRhmU.jpeg
查看: 667  |  回复: 9

nightwalker

金虫 (著名写手)

[交流] 【求助】关于MC模拟中蛇行算法的能量计算



各位用过Monte Carlo方法的虫友:
我最近在用该方法加入蛇行算法来计算相分离一类的工作,结果遇到一个程序中的错误。怎么都调试不过去。

我这个程序里面用到了蛇行算法,还用到了用于能量判断的Metropolics规则。处理的是亲水加疏水的三嵌段共聚物在溶液中的体系

结果发现:

不用能量判断的时候,蛇行算法没问题,程序可以运行且无错误。当然,这种情况下相当于无热体系。

然后,再加入能量判断但是取消蛇行的时候,系统可以分相。结果正确。

但是如果假如能量判断而且也有蛇行的时候后,就不再分相了。结果当然错误。检查发现这种处理方法下,能量也有波动,但是就是不分相。

百思不得其解,特来求助。

说明一下,我的能量判断方法也是通过计算相互接触对数的方法。

调试多日,无果,抓狂,跪求高人指点。
回复此楼
奇文共欣赏,疑义相与析。
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)


lei0736(金币+1):谢谢 2010-08-26 12:42:46
nightwalker(金币+1): 2010-08-28 08:37:54
你这个跟我的那个 嵌段共聚物的程序差不多吧?
好好学习,天天向上。
2楼2010-08-26 02:21:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

zyj8119

木虫 (著名写手)

★ ★
lei0736(金币+2):谢谢 2010-08-26 12:42:51
nightwalker(金币+1): 2010-08-28 08:38:02
好好学习,天天向上。
3楼2010-08-26 02:21:50
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yahoohoo

铁杆木虫 (著名写手)

★ ★
nightwalker(金币+1): 2010-08-28 08:38:06
lei0736(金币+2):谢谢 2010-08-29 14:54:53
引用回帖:
Originally posted by nightwalker at 2010-08-24 10:42:54:


各位用过Monte Carlo方法的虫友:
我最近在用该方法加入蛇行算法来计算相分离一类的工作,结果遇到一个程序中的错误。怎么都调试不过去。

我这个程序里面用到了蛇行算法,还用到了用于能量判断的Metrop ...

你所谓的蛇行是 REPTATION (剪断一端的单体或Bead,接到同一条链的另一端)?

如果是,那这种算法并不适用于嵌段共聚物,因为链的结构会被改变;如果不是,请先说明你的具体算法是怎样执行的。
4楼2010-08-27 22:25:02
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nightwalker

金虫 (著名写手)

如楼上所说   确实是 reptation的方式

举例说明就是   加入原来的  5个链节  和一个空格 0 的顺序是

5  4  3  2  1   0

蛇行结束 之后  其顺序 就变成了

0  5  4  3  2  1


在此我请教楼上一句   所谓的改变链结构是什么意思

能否详细说明一下   

感谢帮助
奇文共欣赏,疑义相与析。
5楼2010-08-28 08:41:10
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nightwalker

金虫 (著名写手)

sorry   刚才没仔细看   跟3楼 所说的 reptation  方式不一样

我采取的蛇行方式 是 头或尾 向前走一步  

后面的链节 依次跟进  没有改变链结构

所以我才认为  找不到错误  但是有确定结果是错误的
奇文共欣赏,疑义相与析。
6楼2010-08-28 08:43:54
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nightwalker

金虫 (著名写手)

感谢 1楼 2楼 的交流程序  

我这就下来看看 学习一下   呵呵
奇文共欣赏,疑义相与析。
7楼2010-08-28 08:45:55
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yahoohoo

铁杆木虫 (著名写手)

★ ★ ★
nightwalker(金币+1):谢谢参与
lei0736(金币+2):谢谢 2010-08-29 14:55:15
nightwalker(金币+1): 2010-08-31 11:04:33
引用回帖:
Originally posted by nightwalker at 2010-08-28 08:43:54:
sorry   刚才没仔细看   跟3楼 所说的 reptation  方式不一样

我采取的蛇行方式 是 头或尾 向前走一步  

后面的链节 依次跟进  没有改变链结构

所以我才认为  找不到错误  但是有确定结果是错误的

可以先设计个实验测试你的这个算法是否有错。譬如,如果该尝试MC运动被接受了,你可以计算新的能量$E_n = E_o + \delta E$,这里的$\delta E$就是用来判断MC运动是否被接受的能量变化。另外,再重新算体系的总能量$E_tot$,如果两者一样那这个算法才可能是正确的。
8楼2010-08-28 17:25:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

yahoohoo

铁杆木虫 (著名写手)

★ ★ ★
ghcacj(金币+3):谢谢 2010-08-31 17:45:21
nightwalker(金币+1): 2010-09-02 07:56:34
引用回帖:
Originally posted by nightwalker at 2010-08-24 10:42:54:


各位用过Monte Carlo方法的虫友:
我最近在用该方法加入蛇行算法来计算相分离一类的工作,结果遇到一个程序中的错误。怎么都调试不过去。

我这个程序里面用到了蛇行算法,还用到了用于能量判断的Metrop ...

一个问题:格子MC所考虑的体系不可能太大,而且MC运动的效率不会高。为何不考虑 用DPD呢?既可以处理连续的大体系,观察长时间的动力学过程,而且溶剂存在下的流体力学相互作用也可以考虑进来,更切合实际 。
9楼2010-08-31 17:27:43
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

nightwalker

金虫 (著名写手)

目前我只能先用MC方法了,DPD还没学会  呵呵
奇文共欣赏,疑义相与析。
10楼2010-09-02 07:58:57
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
相关版块跳转 我要订阅楼主 nightwalker 的主题更新
普通表情 高级回复(可上传附件)
信息提示
请填处理意见