计算化学公社

 找回密码 Forget password
 注册 Register
Views: 436|回复 Reply: 4
打印 Print 上一主题 Last thread 下一主题 Next thread

[Lammps] 求助:怎样限制一组原子的速度不要过快

[复制链接 Copy URL]

14

帖子

0

威望

183

eV
积分
197

Level 3 能力者

想要使用粒子板作为活塞对气体控压,给粒子板加上了外力,但是控制压力时粒子板频繁震荡,平衡时间太长。想要通过限制速度或加入阻尼的方式让粒子板减小震荡,请问有什么命令可以实现吗?

我想到的较为简单的办法是:不改变力的相关设置,也就是保持恒力,只改变速度设置,当速度的绝对值超过一定值的时候就会被限制不会再增加(可能需要条件语句?),我可以通过调整这个限制来减小平衡时间,或者使其接近准静态过程。

但我不知道相关命令怎样可以实现这个效果,求助各位大佬

21

帖子

1

威望

90

eV
积分
131

Level 2 能力者

2#
发表于 Post on 2025-3-4 14:30:47 | 只看该作者 Only view this author
本帖最后由 TerminSong 于 2025-3-4 14:38 编辑

这个要求倒是不复杂,简单写个fix就搞定了,代码完全按照你的要求写的,比较速度与限制值,把速度重新拉回来,如果力的方向会导致速度超过限制值,就把这一步的力计算结果归0,fix节点是POST_FORCE。
用法:fix fixid groupid amgm/maxvelo n
其中n是速度设定值,把这两个文件丢进lammps/src目录重新编译即可。
文件名中的amgm是我的工作单位,单纯起一个命名空间的作用,防止与其他大佬的模块命名冲突。

lammps开发新手,做来练手的,如有其他需求欢迎at或者私信

============================================================

多嘴一句,这种操作会破坏掉系综并且让系统不再满足哈密顿求解体系,nose-hoover那么麻烦就是为了把控温拉回到哈密顿求解体系下,我猜就是因为这样你才没法轻松找到这么简单就能实现的功能,换言之,如果你产生了这个需求,那存在不小的你想错了的可能性,建议仔细考虑再用。

fix_amgm_maxvelo.cpp

3.62 KB, 下载次数 Times of downloads: 67

fix_amgm_maxvelo.h

1.25 KB, 下载次数 Times of downloads: 3

评分 Rate

参与人数
Participants 1
eV +3 收起 理由
Reason
Graphite + 3 赞!

查看全部评分 View all ratings

14

帖子

0

威望

183

eV
积分
197

Level 3 能力者

3#
 楼主 Author| 发表于 Post on 2025-3-4 15:29:19 | 只看该作者 Only view this author
TerminSong 发表于 2025-3-4 14:30
这个要求倒是不复杂,简单写个fix就搞定了,代码完全按照你的要求写的,比较速度与限制值,把速度重新拉回 ...

感谢大佬!
我的体系就是让甲烷气体在材料构成的纳米狭缝中吸附到壁面上,但是要保持气体的压强,使它在近似恒定的压强下吸附,观察吸附过程。
我想到要用粒子板施加恒力来控压,但由于一开始气体没有事先充入狭缝而是从狭缝端口开始向狭缝内扩散(希望观察流动和吸附),同时粒子墙压缩,所以一开始粒子墙受到的压强会大幅降低,在恒力作用下加速很快,这样就导致了一个大幅震荡,难以平衡。
在大佬还未回复之前,我尝试在恒力中加入速度阻尼,也确实磕磕绊绊的让板的速度降下来了,不过到后面甲烷液化了。。。,按理说甲烷在临界温度以上不应该液化,不确定是力场(cvff)的问题还是体系设置的问题(正在更换力场重新计算),当然也有可能事实就是这样,现在看来更可能和您提到的破坏系综的问题有关系。
我对粒子墙单独设置了NVE系综,限制了粒子墙的受力只能在x方向且调整了粒子墙的力场参数使其尽量少的吸附甲烷但又能挡住甲烷分子不漏出来,其他所有原子在NVT系综。不知这样是否可行,与大佬讨论。

21

帖子

1

威望

90

eV
积分
131

Level 2 能力者

4#
发表于 Post on 2025-3-4 15:49:52 | 只看该作者 Only view this author
非大佬,只是分子动力学和cpp都略懂一点点而已
有没有可能是板子速度太快导致慢下来之前把甲烷压缩到了超临界态而非压回液态?当然也可能是力场无法覆盖你所模拟的场景。
至于你的模拟方法我认为没什么问题,用aveforce和nve系综控制某个物体压缩nvt系综物质的操作比较常见,这种时候一般不需要担心系综求解的问题,我说的系综破坏问题指的是在nh类(npt nvt nph)系综中如果加力会导致求解出问题

14

帖子

0

威望

183

eV
积分
197

Level 3 能力者

5#
 楼主 Author| 发表于 Post on 2025-3-4 17:48:49 | 只看该作者 Only view this author
TerminSong 发表于 2025-3-4 15:49
非大佬,只是分子动力学和cpp都略懂一点点而已
有没有可能是板子速度太快导致慢下来之前把甲烷压 ...

嗯嗯,可能是力场的问题,我仔细查阅了文献,发现描述甲烷大多用联合力场,把甲烷看作一个大原子,把氢原子合并到碳里面,然后考虑整体作用。准备换下力场再试试,再次感谢您,真是帮大忙了!

本版积分规则 Credits rule

手机版 Mobile version|北京科音自然科学研究中心 Beijing Kein Research Center for Natural Sciences|京公网安备 11010502035419号|计算化学公社 — 北京科音旗下高水平计算化学交流论坛 ( 京ICP备14038949号-1 )|网站地图

GMT+8, 2025-8-18 02:35 , Processed in 0.177170 second(s), 24 queries , Gzip On.

快速回复 返回顶部 返回列表 Return to list