计算化学公社

标题: 请问cp2k能够在跑MD时给分子施加一个速度吗? [打印本页]

作者
Author:
@Bruce    时间: 2020-7-11 23:22
标题: 请问cp2k能够在跑MD时给分子施加一个速度吗?
您好,请问在用CP2K进行AIMD时,我可以给分子施加一个定向的速度,让该分子沿着某个方向移动吗?
谢谢!

作者
Author:
jianying8996    时间: 2020-7-12 13:35
可以,有速度设置
作者
Author:
@Bruce    时间: 2020-7-12 13:46
jianying8996 发表于 2020-7-12 13:35
可以,有速度设置

好的,谢谢
作者
Author:
weichengdo    时间: 2020-7-14 17:02
请问,关于后处理的这个.xyz,wfn.ener,这些如何来分析,或者说怎样得到其MSD,RDF这些的数据
作者
Author:
raolixiang    时间: 2020-7-14 17:22
vmd就可以
作者
Author:
tuzhidingdong    时间: 2020-10-9 23:00
weichengdo 发表于 2020-7-14 17:02
请问,关于后处理的这个.xyz,wfn.ener,这些如何来分析,或者说怎样得到其MSD,RDF这些的数据

我写的一个简单的Python脚本永远从ener文件中提取能量。


  1.         from ase.io import read, write
  2.         import os
  3.         import MDAnalysis
  4.         import MDAnalysis.analysis.rdf
  5.         import MDAnalysis.analysis.rms
  6.         import matplotlib.pyplot as plt
  7.         import pandas as pd
  8.         import re


  9.         os.chdir(‘Your file directory’)

  10.         font1 = {'family' : 'Times New Roman',
  11.         'weight' : 'normal','size':'24'
  12.         }



  13.         
  14.         df = pd.read_csv('your file name.ener',sep='\s+',skipinitialspace=True,engine='python',)


  15.         a1=df['Step']
  16.         a2=df['Nr.']
  17.         a3=df['Time[fs]']
  18.         a4=df['Kin.[a.u.]']
  19.         a5=df['Temp[K]']
  20.         a6=df['Pot.[a.u.]']

  21.         fig = plt.figure(figsize=(24,16),dpi=300)
  22.         plt.subplot(2,3,1)
  23.         plt.scatter(a1, a2, alpha=0.85, label='Kin',linewidth=2)
  24.         plt.xlabel(r"Time (fs)",fontsize=24,family='Times New Roman')
  25.         plt.ylabel(r"Energy (a.u).",fontsize=24,family='Times New Roman')
  26.         plt.legend(edgecolor='none', prop=font1,)
  27.         plt.tick_params(labelsize=16)

  28.         plt.subplot(2,3,2)
  29.         plt.scatter(a1, a4, alpha=0.85, label='Pot',linewidth=2,c='orange')
  30.         plt.xlabel(r"Time (fs)",fontsize=24,family='Times New Roman')
  31.         plt.ylabel(r"Energy (a.u).",fontsize=24,family='Times New Roman')
  32.         plt.legend(edgecolor='none', prop=font1,)
  33.         plt.tick_params(labelsize=16)


  34.         plt.subplot(2,3,3)
  35.         plt.scatter(a1, a5, alpha=0.85, label='Cons Qty',linewidth=2,c='grey')
  36.         plt.xlabel(r"Time (fs)",fontsize=24,family='Times New Roman')
  37.         plt.ylabel(r"Energy (a.u).",fontsize=24,family='Times New Roman')
  38.         plt.legend(edgecolor='none', prop=font1,)
  39.         plt.tick_params(labelsize=16)

  40.         plt.subplot(2,3,4)
  41.         plt.scatter(a1, a3, alpha=0.85, label='Temp',linewidth=2,c='forestgreen')
  42.         plt.xlabel(r"Time (fs)",fontsize=24,family='Times New Roman')
  43.         plt.ylabel(r"Temp (K)",fontsize=24,family='Times New Roman')
  44.         plt.legend(edgecolor='none', prop=font1,)
  45.         plt.tick_params(labelsize=16)

  46.         plt.subplot(2,3,5)
  47.         plt.scatter(a1, a6, alpha=0.85, label='UsedTime',linewidth=2,c='purple')
  48.         plt.xlabel(r"Time (fs)",fontsize=24,family='Times New Roman')
  49.         plt.ylabel(r"UsedTime (s)",fontsize=24,family='Times New Roman')
  50.         plt.legend(edgecolor='none', prop=font1,)
  51.         plt.tick_params(labelsize=16)
  52.         

  53.         a8=[]
  54.         for i, element in enumerate(a6):
  55.             nv=a6[:i]
  56.             su = sum(nv)
  57.             a8.append(su/60)
  58.         
  59.         plt.subplot(2,3,6)
  60.         plt.scatter(a1, a8, alpha=0.85, label='Accumtime',linewidth=2,c='cadetblue')
  61.         # plt.plot(a1, a7, alpha=0.85, label='Energy',linewidth=2)
  62.         plt.xlabel(r"Time (fs)",fontsize=24,family='Times New Roman')
  63.         plt.ylabel(r"Accumtime (min)",fontsize=24,family='Times New Roman')
  64.         plt.legend(edgecolor='none', prop=font1,)
  65.         plt.tick_params(labelsize=16)



  66.         dm = pd.DataFrame({'Time (fs)':a1,'Kin':a2,'Temp':a3,'Pot':a4,'Cons Qty':a5,'UsedTime':a6})
  67.         dm.to_excel("Energychek.xlsx")




  68.         plt.subplots_adjust(wspace =0.3,hspace =0.3 )
  69.         plt.savefig('Energychek.png', transparent=True,format='png')#指定分辨率,边界紧,背景透明
  70.         plt.show()
  71.         print ('congratulate!!!')
复制代码

作者
Author:
dongdong    时间: 2020-10-18 20:54
您好,在哪个session可以给特定分子设置速度啊? 我看在SUBSYS里面有几个关于速度的设置,不知道是不是在这里设置。
作者
Author:
jidian050604    时间: 2022-1-27 15:37
dongdong 发表于 2020-10-18 20:54
您好,在哪个session可以给特定分子设置速度啊? 我看在SUBSYS里面有几个关于速度的设置,不知道是不是在这 ...

您好,请教下,cp2k给分子添加速度,使用SUBSYS 下的VELOCITY只能添加初始速度,请问您是如何解决的,困扰很长时间了,感谢
作者
Author:
丁越    时间: 2022-1-27 16:52
本帖最后由 丁越 于 2022-11-29 19:15 编辑
jidian050604 发表于 2022-1-27 15:37
您好,请教下,cp2k给分子添加速度,使用SUBSYS 下的VELOCITY只能添加初始速度,请问您是如何解决的,困 ...

你可以写成如下这样,输入文件就不会太冗长了。
&VELOCITY #You can set initial atomic velocities in this section
  @INCLUDE ./vel.xyz
  &END VELOCITY
vel.xyz文件中格式如下,不含有元素名:
-0.0001904719    -0.0001899788   -0.0000550986
0.0002580315     0.0000387927    -0.0004177493
0.0000209981     -0.0001094941   -0.0002439860
0.0000799201     -0.0000993306   -0.0000616618

作者
Author:
jidian050604    时间: 2022-1-27 18:57
丁越 发表于 2022-1-27 16:52
你可以写成如下这样,输入文件就不会太冗长了。
&VELOCITY #You can set initial atomic velocities in ...

非常感谢您的指导!
作者
Author:
annaqz    时间: 2022-11-29 18:51
丁越 发表于 2022-1-27 16:52
你可以写成如下这样,输入文件就不会太冗长了。
&VELOCITY #You can set initial atomic velocities in ...

麻烦问一下,我想给其中一个原子设定,x,y方向自由,在z方向以0.001Å/fs的速度移动,需要怎么写关键词呢,我看velocity这有两个关键词,一个是DEFAULT_KEYWORD,另一个就是PINT_UNIT。
作者
Author:
丁越    时间: 2022-11-29 19:19
annaqz 发表于 2022-11-29 18:51
麻烦问一下,我想给其中一个原子设定,x,y方向自由,在z方向以0.001Å/fs的速度移动,需要怎么写关键 ...

(, 下载次数 Times of downloads: 12)
这是sob老师前几天群里答疑时发的

作者
Author:
annaqz    时间: 2022-11-29 20:26
丁越 发表于 2022-11-29 19:19
这是sob老师前几天群里答疑时发的

好的,非常感谢。但是这个是给所有原子一个速度吧,要是给指定原子一个速度,需要怎么设置呢?
作者
Author:
丁越    时间: 2022-11-29 23:13
annaqz 发表于 2022-11-29 20:26
好的,非常感谢。但是这个是给所有原子一个速度吧,要是给指定原子一个速度,需要怎么设置呢?

就给一个原子设置初始速度,其他的为零
作者
Author:
chands    时间: 2022-11-29 23:32
丁越 发表于 2022-11-29 23:13
就给一个原子设置初始速度,其他的为零

我怕这个会破坏速度的分布,等到平衡又是另一番情况。
作者
Author:
丁越    时间: 2022-11-30 08:43
chands 发表于 2022-11-29 23:32
我怕这个会破坏速度的分布,等到平衡又是另一番情况。

程序默认情况下是用MD部分设定的温度来初始化随机速度,但他说的只给一个原子设置初始速度,如果这个原子给定一个初始速度,其他的设零,然后在热浴下缓慢上升到给定温度,慢慢等他们平衡,但这么做也没啥意义吧。

假如是想通过给定一个原子较大的初速度,从而增加与目标分子发生碰撞的概率而发生化学反应的话,但这种做法随机性很大,不如直接用动力学增强采样,MetaD,US等等
作者
Author:
chands    时间: 2022-11-30 08:45
丁越 发表于 2022-11-30 08:43
程序默认情况下是用MD部分设定的温度来初始化随机速度,但他说的只给一个原子设置初始速度,如果这个原子 ...

我的想法是其他原子直接copy平衡好的速度,就一个原子设置初速度,如果原子足够多,不至于偏离平衡太远。
作者
Author:
丁越    时间: 2022-11-30 08:55
chands 发表于 2022-11-30 08:45
我的想法是其他原子直接copy平衡好的速度,就一个原子设置初速度,如果原子足够多,不至于偏离平衡太远。

如果速度没设好的话这种做法很容易让该原子跑飞,然后模拟就崩了呀。我感觉这么调节也没啥意义吧。
作者
Author:
chands    时间: 2022-11-30 09:05
丁越 发表于 2022-11-30 08:55
如果速度没设好的话这种做法很容易让该原子跑飞,然后模拟就崩了呀。我感觉这么调节也没啥意义吧。

这个当然要小心,模拟崩了本来就是喜大普奔……。应该只对合适的体系设置单个原子(分子)的初速度,如吸附。
作者
Author:
annaqz    时间: 2022-11-30 10:22
丁越 发表于 2022-11-29 23:13
就给一个原子设置初始速度,其他的为零

好的,我明白了,非常感谢
作者
Author:
annaqz    时间: 2022-11-30 10:22
chands 发表于 2022-11-29 23:32
我怕这个会破坏速度的分布,等到平衡又是另一番情况。

我设置一下,和不设置的做个对比吧。感谢
作者
Author:
sunjk    时间: 2023-8-29 17:31
本帖最后由 sunjk 于 2023-8-29 17:41 编辑

请问在velocity这里只设置部分原子的初速度,其它原子用随机速度而不指定应该怎么设置?




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