计算化学公社

标题: 在静态选区下怎么让质心随帧数变化 [打印本页]

作者
Author:
rdcfm1223    时间: 2023-9-26 22:11
标题: 在静态选区下怎么让质心随帧数变化
本帖最后由 rdcfm1223 于 2023-9-26 22:23 编辑

做了一个液滴进入液池的模拟。
因为伴随着蒸发效果,所以液滴和液池会蒸发。同时池子和液滴都是水分子,所以我不能够通过元素来进行选择。
我是通过第一帧还未开始蒸发时的初始结构来选择液滴的。set drop [atomselect top "water and z>300" frame 1]
然后通过measure center 来计算质心。此时,其质心保留在 150.04214477539062 150.03463745117188 407.1288146972656
但是问题是,我应该怎么来计算这个sel在其他帧数的质心呢。
看了一下论坛上其他的有关“VMD 质心”的帖子,找到了两个办法:
1、$drop frame 47; $drop update
2、molinfo top set frame $targetframe
接下来就开始出现了始料未及的情况。
方法一更新后,我通过[$drop get index]导出了其内原子序号。发现和原来完全不同,如图二,即选择的对象发生了变化。这是我不希望的。
方法二能够改变当前帧数,可以看到图形窗口的变化,在计算 measure surface的时候确实是产生了变化。但是,通过measure计算的质心并没有改变。
我自己的初步想法是要么能够将我之前定义的index.ndx文件导入vmd,这样可以直接在vmd中通过index进行选取;
为此我用了一个笨方法,在set drop [atomselect top "water and z>300" frame 1]之后,我导出了drop包含的原子序号,然后写了一个脚本,通过atomselect top "index ****"来设置新的sel。
但是此时,额,质心仍然是150.04214477539062 150.03463745117188 407.1288146972656。

所以到底应该怎么得到固定序号的一部分原子在不同帧的质心呢
或者有没有那一种思想可以通过命令来找到不同帧的液滴呢



作者
Author:
rdcfm1223    时间: 2023-9-26 22:27
感觉逻辑好像没有啥问题啊,是vmd自己的问题吗?重新打开并载入脚本又好像正常了。为啥呀明明刚才拖进度条,molinfo,update都试了不行
作者
Author:
sobereva    时间: 2023-9-27 04:18
诸如运行atomselect top "index 1",然后当前进度条在第几帧,atomselect0 get x返回的就是第几帧的index 1原子的x坐标
不能update,要不然会根据选择语句重新判断当前帧里对应区域的原子
作者
Author:
rdcfm1223    时间: 2023-9-28 16:17
本帖最后由 rdcfm1223 于 2023-9-28 16:21 编辑
sobereva 发表于 2023-9-27 04:18
诸如运行atomselect top "index 1",然后当前进度条在第几帧,atomselect0 get x返回的就是第几帧的index 1 ...

谢谢老师,试了一下通过index可以来完成结果啦
另外,老师我想问一下。在我的液滴和液池分离的初始结构下,我不能单纯的通过water来设置整体水的温度,这样好像会报错。
我通过引入index文件来分别确定液滴和液池的温度。这样对整体的结果会不会产生影响呢

作者
Author:
sobereva    时间: 2023-9-28 16:51
rdcfm1223 发表于 2023-9-28 16:17
谢谢老师,试了一下通过index可以来完成结果啦
另外,老师我想问一下。在我的液滴和液池分 ...

说清楚报什么错
用控温时,每个原子都必须处于一个控温组里




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