24小时热门版块排行榜    

查看: 6215  |  回复: 27
本帖产生 1 个 模拟EPI ,点击这里进行查看
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖
★ ★ ★ ★ ★ ★ ★ ★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
ghcacj(金币+10, 模拟EPI+1): 谢谢 2011-02-24 13:33:37
你好。昨晚我用你的输入文件作了测试,好像确实有问题。我另换了Johnson势函数,也改过几次控温参数,均发现有问题,有时候是温度,有时候是压力。但这样的问题对于晶体的模拟是不该出现的,我一时也看不出是程序有Bug还是输入有问题。

你用的Sutton-Chen势太长了,运行很慢,我没有时间继续测试下去,我建议在找到问题症结之前,你先把Gulp程序中的mxmdtemp参数增大,在initial.f90中找到
rmdmaxtemp = 100.0_dp,
把100改为1000,这样容错性就好一些。注意改后要重新编译生成新的可执行文件。
但如果这样还是有问题,那就真的是不好办了。另外,请你打开mdprop.f90这个文件,找到大约127行处,有如下代码:
  if (tempratio.gt.rmdmaxtemp) then
    call outerror('temperature has exceeded maximum allowed set by mdmaxtemp',0_i4)
    call gulpfinish
  endif

你还可以在call gulpfinish 这一句之前(即call outerror这一句之后),添加如下代码:
     write(ioout,'(''  ** Time : '',f18.5,'' ps :'')') nsteps*tstep(ncf)
     write(ioout,*) 'temperature, targettemperature, tempratio:'
     write(ioout,*) temperature, targettemperature, tempratio

改后要重新编译。这个是在出错的时候输出错在什么地方。这一句对改错是没什么用的,只是弄明白错的程度有多大,如果输出的tempratio不是特别大(比如你前面设的rmdmaxtemp是1000,这里 输出的tempratio是1020)你就可以再加大rmdmaxtemp,比如设成1200之类,如果tempratio大得很,比如2000,3000之类,你就没有必要再搞了,肯定问题很大。

再一个你的输入文件太麻烦了。对FCC金属,可以这样写:
nosy cart md conp
cell
4.09  4.09  4.09  90.000000  90.000000  90.000000   
frac
Ag 0.0  0.0  0.0
Ag 0.5  0.0  0.5
Ag 0.5  0.5  0.0
Ag 0.0  0.5  0.5
supercell  7 7 7
libr  suttonchen
下面就是pressure=0这些,是你的MD控制参数。
这样你换其它FCC体系也容易,只要改晶格参数、元素名就可以了。suttonchen势是在Gulp的势函数库当中的。用的时候把Libraries中的suttonchen.lib拷到当前运行目录下。用7*7*7的晶格也太大了,大概256或500个,对于晶格优化也就差不多了,864也可以。时间步数大概0.001ps就够了。你对金属Ag,应该在熔点以下运行,温度不要太高。

当然输入文件的写入是小事,关键还是温度控不住的情况比较烦人。而且一般是突然发生的错误。实在不行你可以给程序作者发Email,说说这个问题,这个作者Julian Gale是个很好、很有耐心的人。要不就换DLPOLY做MD吧,DLPOLY计算MD专业一点。呵呵呵。
18楼2011-02-23 09:18:46
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

智能机器人

Robot (super robot)

我们都爱小木虫

找到一些相关的精华帖子,希望有用哦~

科研从小木虫开始,人人为我,我为人人
相关版块跳转 我要订阅楼主 lchunmei001 的主题更新
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见