计算化学公社

标题: gromacs中的velacc没有类似于msd中的-trestart选项吗 [打印本页]

作者
Author:
tomato    时间: 2021-10-10 16:39
标题: gromacs中的velacc没有类似于msd中的-trestart选项吗
gromacs的velacc模块可以计算速度自相关(vacf),而msd模块可以计算均方位移(msd)。而msd和velacc均涉及到t时刻的性质与0时刻的性质的运算,感觉二者的算法应该比较类似。但是msd模块中有-trestart选项可以指定时间起点之间的间隔,而velacc中没有类似于-trestart选项来指定时间起点(有一个-dt选项,其说明为Only use frame when t MOD dt = first time (ps),感觉不太像是实现和-trestart相同的功能)。那么velacc是如何来确定时间起点的间隔呢?

附图来源于sob老师在论坛某个话题下发的msd计算原理介绍


作者
Author:
sobereva    时间: 2021-10-11 04:22
应当是没有设这个的选项。直接读源代码看看
作者
Author:
tomato    时间: 2021-10-11 16:58
本帖最后由 tomato 于 2021-10-11 17:00 编辑
sobereva 发表于 2021-10-11 04:22
应当是没有设这个的选项。直接读源代码看看

谢谢sob老师,我按照上面写的msd计算的原理计算了一下velocity autocorrelation function。其中时间起点之间的距离选取了模拟的时间步长(试图充分利用模拟结果的数据),然后和velacc的计算结果作了对比,如下图所示,每个算例都是前半部分和velacc计算结果几乎完全重合,但是靠后的一部分就出现了分离。

我尝试去读velacc的源代码,但是看不明白它里面计算velocity autocorrelation function的具体算法是什么,是不是也是和msd类似的算法呢?我看不出来。附件里面就是velacc的源代码,不知道能否麻烦sob老师帮我看一下?
作者
Author:
Daniel_Arndt    时间: 2021-11-14 10:28
gromacs的dos相应代码可能有一些问题,这篇文献 https://pubs.acs.org/doi/10.1021/acs.jctc.1c00156 提及了。你可以看Supporting Information里面的代码。至于velacc有没有类似的问题,我就不清楚了,我也不是做这些的。




欢迎光临 计算化学公社 (http://bbs.keinsci.com/) Powered by Discuz! X3.3