使用GROMACS msd模块的几个注意事项

类别:    标签: gmx   阅读次数:   版权: (CC) BY-NC-SA

将gmx的msd模块用于其他程序所给的轨迹并计算扩散系数, 一般而言是可能的, 但有几个地方需要注意:

许楠给出了处理cp2k轨迹的一个例子. 模拟时间步长0.5 fs, 轨迹总长度15.54450 ps, 轨迹连续且没有移除质心运动. 如果直接使用msd默认选项

gmx msd -f traj.gro -n

所得曲线如下

可以看到, 二次项比较明显, 说明轨迹未移除系统质心运动. 此外, 5 ps左右出现阶跃, 让人生疑. 如果不是出现了这个不连续的阶跃, 反倒让人以为计算一切正常, 从而得到的错误的结果.

我们先移除质心运动

gmx msd -f traj.gro -n -rmcomm

结果如下

可以看到, 二次项不再明显了. 但5 ps左右的阶跃仍然存在.

经过几次测试, 并对比其他msd计算程序的结果, 最终才发现, 原来是-trestart选项的默认值过大导致的. 15 ps长度的轨迹, 如果默认间隔时间10 ps, 那么间隔为5 ps处, 只有1个数据可用, 误差太大, 导致曲线不连续. 话虽这样说, 但是还有一个问题没有解释, 就是为什么更长间隔处的数据看起来也比较正常, 没有出现明显阶跃呢? 这个就作为习题吧, 因为我也不知道答案.

我们使用原始轨迹的时间步长作为间隔

gmx msd -f traj.gro -n -rmcomm -trestart 0.0005

结果如下

这下看起来就比较正常了.

至于如何根据msd曲线计算扩散系数, 这里就不说了, 请参考以前的一篇文章MSD算扩散系数的几种方法.

◆本文地址: , 转载请注明◆
◆评论问题: https://jerkwin.herokuapp.com/category/3/博客, 欢迎留言◆


前一篇: 偶遇archive电子书库
后一篇: MD模拟中施加外磁场

访问人次(2015年7月 9日起): | 最后更新: 2024-01-20 10:40:28 UTC | 版权所有 © 2008 - 2024 Jerkwin