计算化学公社

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

[GROMACS] 求助:如何计算纳米孔内水分子速度的空间分布

[复制链接 Copy URL]

6

帖子

0

威望

180

eV
积分
186

Level 3 能力者

在电渗流相关文献中会见到如附件所示的纳米孔道内水分子速度的空间分布曲线,这篇文献和我使用的MD软件均为GROMACS。
请问这样的数据需要如何计算得到?
我的系统是一个3nm长的纳米孔,分隔两个水箱。

6万

帖子

99

威望

5万

eV
积分
120086

管理员

公社社长

2#
发表于 Post on 2022-2-18 08:08:00 | 只看该作者 Only view this author
自己写脚本分析
设置nstvout让trr里记录速度信息,利用gmx traj可以从中提取特定原子的速度。利用脚本循环各帧、循环各层提取速度并统计速度。
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办极高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入北京科音微信公众号获取北京科音培训的最新消息,并避免错过网上有价值的计算化学文章!
欢迎加入人气极高、专业性特别强的理论与计算化学综合交流群思想家公社QQ群(群号见此链接),合计达一万多人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大、极为流行的量子化学波函数分析程序)
Google Scholar:https://scholar.google.com/citations?user=tiKE0qkAAAAJ
ResearchGate:https://www.researchgate.net/profile/Tian_Lu

6

帖子

0

威望

180

eV
积分
186

Level 3 能力者

3#
 楼主 Author| 发表于 Post on 2022-2-18 08:43:01 | 只看该作者 Only view this author
sobereva 发表于 2022-2-18 08:08
自己写脚本分析
设置nstvout让trr里记录速度信息,利用gmx traj可以从中提取特定原子的速度。利用脚本循环 ...

好的,明白了。谢谢sob老师!

6

帖子

0

威望

180

eV
积分
186

Level 3 能力者

4#
 楼主 Author| 发表于 Post on 2022-5-1 15:22:39 | 只看该作者 Only view this author
sobereva 发表于 2022-2-18 08:08
自己写脚本分析
设置nstvout让trr里记录速度信息,利用gmx traj可以从中提取特定原子的速度。利用脚本循环 ...

sob老师好。我在用Gromacs做电渗流模拟的时候发现一个现象:如果我在.mdp中设置“constraints=none”的话就不会出现电渗流,如果设置“constraints=all-bonds”就会出现,请问应该如何理解?我读了您之前写的《解析gromacs的restraint、constraint和freeze》(http://sobereva.com/10),但还是不太理解。

6万

帖子

99

威望

5万

eV
积分
120086

管理员

公社社长

5#
发表于 Post on 2022-5-1 16:19:10 | 只看该作者 Only view this author
Heinrich 发表于 2022-5-1 15:22
sob老师好。我在用Gromacs做电渗流模拟的时候发现一个现象:如果我在.mdp中设置“constraints=none”的话 ...

没特殊理由绝对不要用all-bonds,论坛里我说过很多次。
北京科音自然科学研究中心http://www.keinsci.com)致力于计算化学的发展和传播,长期开办极高质量的各种计算化学类培训:初级量子化学培训班中级量子化学培训班高级量子化学培训班量子化学波函数分析与Multiwfn程序培训班分子动力学与GROMACS培训班CP2K第一性原理计算培训班,内容介绍以及往届资料购买请点击相应链接查看。这些培训是计算化学从零快速入门以及进一步全面系统性提升研究水平的高速路!培训各种常见问题见《北京科音办的培训班FAQ》
欢迎加入北京科音微信公众号获取北京科音培训的最新消息,并避免错过网上有价值的计算化学文章!
欢迎加入人气极高、专业性特别强的理论与计算化学综合交流群思想家公社QQ群(群号见此链接),合计达一万多人。北京科音培训班的学员在群中可申请VIP头衔,提问将得到群主Sobereva的最优先解答。
思想家公社的门口Blog:http://sobereva.com(发布大量原创计算化学相关博文)
Multiwfn主页:http://sobereva.com/multiwfn(十分强大、极为流行的量子化学波函数分析程序)
Google Scholar:https://scholar.google.com/citations?user=tiKE0qkAAAAJ
ResearchGate:https://www.researchgate.net/profile/Tian_Lu

1

帖子

0

威望

11

eV
积分
12

Level 1 能力者

6#
发表于 Post on 2024-1-22 15:11:45 | 只看该作者 Only view this author
Heinrich 发表于 2022-2-18 08:43
好的,明白了。谢谢sob老师!

可以请教一下脚本怎么写吗?

6

帖子

0

威望

180

eV
积分
186

Level 3 能力者

7#
 楼主 Author| 发表于 Post on 2024-2-4 16:58:55 | 只看该作者 Only view this author
秃头研究生 发表于 2024-1-22 15:11
可以请教一下脚本怎么写吗?

我用的工具是matlab。目前有两种计算方法,一种是用gmx traj从.trr中导出水分子的坐标和速度,用matlab一行一行读取输出的数据;然后将y坐标切成很多个slides,根据水分子的坐标把这些分子放进不同的slides里,然后分别计算每个slide中水分子的平均速度。第二个方法是只导出水分子的坐标,然后通过计算两帧之间的分子位移确定速度,其他部分和第一种方法相同。

36

帖子

0

威望

488

eV
积分
524

Level 4 (黑子)

8#
发表于 Post on 2024-7-25 21:51:26 | 只看该作者 Only view this author
Heinrich 发表于 2024-2-4 16:58
我用的工具是matlab。目前有两种计算方法,一种是用gmx traj从.trr中导出水分子的坐标和速度,用matlab一 ...

老师可以求教一下你的统计代码嘛

6

帖子

0

威望

180

eV
积分
186

Level 3 能力者

9#
 楼主 Author| 发表于 Post on 2024-9-3 13:32:01 | 只看该作者 Only view this author
abing 发表于 2024-7-25 21:51
老师可以求教一下你的统计代码嘛

这个是我研究室的同事写的,仅供参考。当时我们刚做这个没有经验,用matlab写的。现在建议用Python写,效率高一点。
  1. %% from trajectory file to plot the z-velocity profile in y-direction
  2. % Che Wei Ou in Daiguji & Hsu lab, The University of Tokyo
  3. % gromacs traj output the y-coordinate and z-velocity
  4. % 20230123 Fix the bug so now can set the range over 4~8 in y direction
  5. %% Reset
  6. clear variables
  7. clc
  8. format longG
  9. v_file = 'veloc-h2o-md2-10ns-20ns.xvg';
  10. c_file = 'coordinate-h2o-md2-10ns-20ns.xvg';
  11. %% Open file
  12. fid_c = fopen(c_file); fid_v = fopen(v_file);
  13. pat = ['#','@']; TF_v = 1;TF_c =1;
  14. %% Skip headline until the first useful data is read
  15. while TF_v == 1
  16.     tline_v = fgetl(fid_v);
  17.     TF_v = (contains(tline_v,pat(1))+contains(tline_v,pat(2)));
  18. end
  19. while TF_c == 1
  20.     tline_c = fgetl(fid_c);
  21.     TF_c = (contains(tline_c,pat(1))+contains(tline_c,pat(2)));
  22. end

  23. %% Accumulate the average velocity in each section
  24. edges = 3.5:0.04:8.5; % y-direction
  25. j= 1;
  26. tic
  27. while ischar(tline_c)
  28.     temp_c = str2num(tline_c);
  29.     temp_v = str2num(tline_v);
  30.     disp(num2str(temp_c(1)))
  31.     temp_c(1) = [];temp_v(1) = []; % delete the frame number
  32.     [~, ~, bins] = histcounts(temp_c, edges);
  33.     valididx = reshape(find(bins), [], 1);
  34.     B = accumarray( reshape(bins(valididx), [], 1), valididx, [], @(V){V.'});
  35.     for i= 1:length(edges)-1
  36.         if i <= length(B)
  37.     %         sum_veloc(j,i)=sum(temp_v(B{i}));
  38.             distr_veloc(j,i)=mean(temp_v(B{i}));
  39.         end
  40.     end
  41. %     number_ions(j,:)= bins;
  42.     clear temp_c temp_v bins valididx B
  43.     tline_v = fgetl(fid_v);
  44.     tline_c = fgetl(fid_c);
  45.     j = j+1;
  46.    
  47. end
  48. toc
  49. fclose(fid_v); fclose(fid_c);% close file
  50. distr_veloc(find(isnan(distr_veloc)==1)) = 0;
  51. %% plot
  52. DL = length(abs(mean(distr_veloc)))+1;
  53. plot((edges(1:DL-1)+edges(2:DL))/2,abs(mean(distr_veloc))*1000,'o--')
  54. xlabel('y [nm]')
  55. ylabel('Absolute Velocity [m/s]') % 10^-9 10^-12
  56. title('Average Velocity Profile')
  57. save('velocity.mat',"distr_veloc","edges")
  58. %  for i = 1:length(edges)-1
  59. %      each_slice_ions(i) = sum(sum(number_ions == i));
  60. %  end
  61. %  hold on
  62. %  plot((edges(1:end-1)+edges(2:end))/2,sum(sum_veloc)./each_slice_ions,'r')
复制代码

36

帖子

0

威望

488

eV
积分
524

Level 4 (黑子)

10#
发表于 Post on 2024-9-4 10:40:23 | 只看该作者 Only view this author
Heinrich 发表于 2024-9-3 13:32
这个是我研究室的同事写的,仅供参考。当时我们刚做这个没有经验,用matlab写的。现在建议用Python写,效 ...

非常谢谢老师!!!

4

帖子

0

威望

145

eV
积分
149

Level 2 能力者

11#
发表于 Post on 2024-12-26 15:45:16 | 只看该作者 Only view this author
请问,在孔隙中通过施加力的方式真的可以得到这样的水分子速度分布吗?为什么在不加力的时候速度会无限接近0m/s?我在计算时发现即使没有施加力水分子依然存在一定速度。

202412261542465029..png (77.89 KB, 下载次数 Times of downloads: 18)

202412261542465029..png

6

帖子

0

威望

180

eV
积分
186

Level 3 能力者

12#
 楼主 Author| 发表于 Post on 2025-3-7 16:19:04 | 只看该作者 Only view this author
13734436496 发表于 2024-12-26 15:45
请问,在孔隙中通过施加力的方式真的可以得到这样的水分子速度分布吗?为什么在不加力的时候速度会无限接近 ...

你好。我们的工作能做出来这样的分布。没有施加力出现速度的情况要看具体的模拟系统,比如孔内是否有电荷、是否有跨膜电位差之类的。

4

帖子

0

威望

145

eV
积分
149

Level 2 能力者

13#
发表于 Post on 2025-5-20 16:29:46 | 只看该作者 Only view this author
Heinrich 发表于 2025-3-7 16:19
你好。我们的工作能做出来这样的分布。没有施加力出现速度的情况要看具体的模拟系统,比如孔内是否有电荷 ...

好的,非常感谢您的回复

本版积分规则 Credits rule

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

GMT+8, 2025-8-13 15:12 , Processed in 0.235077 second(s), 29 queries , Gzip On.

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