计算化学公社

标题: 计算MSD时周期性边界条件如何考虑? [打印本页]

作者
Author:
牛文文    时间: 2024-1-15 10:12
标题: 计算MSD时周期性边界条件如何考虑?
各位老师好,我使用CP2K跑了一段AIMD轨迹后,想统计一些涉及到成键断键的粒子的MSD,此时无法使用GROMACS来选择我想要的离子,所以我想自己使用Python脚本进行分析,但是目前遇到一个问题是对于存在周期性边界条件时,是如何计算粒子跨边界时的MSD的?

作者
Author:
pal    时间: 2024-1-15 15:36
x1-x2,然后加或减x方向的周期性长度,取最小的就可以了吧
作者
Author:
丁越    时间: 2024-1-16 08:57
gmx make_ndx建立索引文件,然后计算gmx msd时-n选择该索引文件不就行了
作者
Author:
牛文文    时间: 2024-1-16 09:52
丁越 发表于 2024-1-16 08:57
gmx make_ndx建立索引文件,然后计算gmx msd时-n选择该索引文件不就行了

我是要做涉及到成断键的粒子,所以每一帧粒子的index可能有变化
作者
Author:
牛文文    时间: 2024-1-21 17:56
pal 发表于 2024-1-15 15:36
x1-x2,然后加或减x方向的周期性长度,取最小的就可以了吧

老师您好,我按照以下这个思路调整,对于MSD的值小于(1/2d)^2时,MSD的计算还是正常的,但是当MSD>(1/2d)^2时,MSD的值就趋于平缓了,我感觉原因是因为调整周期性的缘故,粒子被局限在部分区域了。所以您知道当扩散距离更远时应该怎么调整吗

作者
Author:
pal    时间: 2024-1-22 09:06
牛文文 发表于 2024-1-21 17:56
老师您好,我按照以下这个思路调整,对于MSD的值小于(1/2d)^2时,MSD的计算还是正常的,但是当MSD>(1/2 ...

想到的一个方法就是在调整周期性的时候加一个前后帧的距离比较,保证距离的变化小于一定的值
作者
Author:
牛文文    时间: 2024-1-22 09:09
pal 发表于 2024-1-22 09:06
想到的一个方法就是在调整周期性的时候加一个前后帧的距离比较,保证距离的变化小于一定的值

嗯嗯,谢谢老师
作者
Author:
zaq1    时间: 2025-5-28 16:20
你好,请问你这个问题解决了吗,我现在也是用cp2k跑的AIMD模拟,想用python统计MSD,这个周期性边界条件部分的代码应该怎么写呢
作者
Author:
牛文文    时间: 2025-6-26 09:53
zaq1 发表于 2025-5-28 16:20
你好,请问你这个问题解决了吗,我现在也是用cp2k跑的AIMD模拟,想用python统计MSD,这个周期性边界条件部 ...

https://github.com/tamaswells/VA ... /XDATCAR_toolkit.py
根据这个链接里定义的unswrapPBC(self,prev_atomic_cartesian)函数自己改编的
作者
Author:
zaq1    时间: 2025-7-7 16:00
牛文文 发表于 2025-6-26 09:53
https://github.com/tamaswells/VASP_script/blob/master/XDATCAR_tookit/XDATCAR_toolkit.py
根据这个 ...

好的,谢谢你,我试一下




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