24小时热门版块排行榜    

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

neweroica

木虫 (著名写手)

[交流] 【求助】如何固定某几个原子不动? 已有3人参与

刚接触LAMMPS,有一个问题想请教大家:

我想在整个MD模拟过程中,固定某几个原子始终不动,请问该如何实现? 具体用什么命令和关键词?  谢谢!!!
回复此楼
Simpler, stronger, more tolerant
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

jiangtao9571

新虫 (正式写手)


ghcacj(金币+1):谢谢 2010-06-30 12:53:12
fixe rigid  自身包含nve 系综  不能再用NVT
21楼2010-06-30 12:44:01
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 21 个回答

老虎大王

木虫 (著名写手)

★ ★ ★ ★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
lei0736(金币+5,VIP+0):谢谢 12-15 09:19
这个有多种方法可以实现。
首先你把这几个原子放在一个group里面(比如group1),把其它原子放在另外的group(比如group2)里面。然后,你至少可以选择如下几种方法:
1. 运动方程不对这几个原子积分, 只对group2积分(但我不能确定这个时候group1里面的原子对其它原子的力的作用是否还存在(你可以作一个测试,对于一个构型手工计算一下这几个原子旁边的某一原子的势能,和程序输出的该原子的势能比较一下——用computer pe/atom命令)
2. 运动方程对所有原子积分,但是对group1里面的原子,每一步都标定它的速度,让它们的速度(或温度)为零。
3. 运动方程对所有原子积分,令group1里面的原子的初速度为零,然后用 fix setforce命令,把它们的受力搞成零。

[ Last edited by 老虎大王 on 2009-12-15 at 09:03 ]
2楼2009-12-15 09:01:58
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

老虎大王

木虫 (著名写手)

★ ★ ★
小木虫(金币+0.5):给个红包,谢谢回帖交流
lei0736(金币+2,VIP+0):谢谢 12-15 09:19
当然,如果这些都不大好使或者太麻烦的话,我推荐你用XMD。XMD里专门有一个命令叫Fix,确保这些原子的位置不被更新,但它们与其它原子的相互作用是存在的。
3楼2009-12-15 09:12:48
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

neweroica

木虫 (著名写手)

引用回帖:
Originally posted by 老虎大王 at 2009-12-15 09:01:
这个有多种方法可以实现。
首先你把这几个原子放在一个group里面(比如group1),把其它原子放在另外的group(比如group2)里面。然后,你至少可以选择如下几种方法:
1. 运动方程不对这几个原子积分, 只对group ...

非常感谢老虎大王!!!

1. setforce好像不管用。在run之后,原子位置还是随着timestep发生变化。

2. run            100000 every 1 set group s vx 0 vy 0 vz 0管用。 但我还有个问题:

因为我将每个分子都是为一个刚体,但同时又想对系统施加NVT,所以我用了两个fix来实现:
fix 1 all nvt 300.0 300.0 100.0
fix 2 all rigid group 2 mol1 mol2

但是运行后却出现警告:
WARNING: One or more atoms are time integrated more than once

请问这个问题该怎么解决?
Simpler, stronger, more tolerant
4楼2009-12-15 19:31:25
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
普通表情 高级回复 (可上传附件)
信息提示
请填处理意见