这里会显示出您选择的修订版和当前版本之间的差别。
两侧同时换到之前的修订记录前一修订版后一修订版 | 前一修订版 | ||
adf:diffussionofthanol [2019/01/27 13:46] – [前言] liu.jun | adf:diffussionofthanol [2021/10/26 15:04] (当前版本) – liu.jun | ||
---|---|---|---|
行 2: | 行 2: | ||
=====前言===== | =====前言===== | ||
- | 分子动力学计算扩散系数,结果与分子动力学该次模拟分子运动轨迹相关。以甲醇、乙醇、1-丙醇为例,计算扩散系数。298K标准大气压下,三者扩散系数实验结果分别为:1.54x$10^{-9}m^2/ | + | 分子动力学计算扩散系数,结果与分子动力学该次模拟分子运动轨迹相关。扩散系数计算所依据的理论,参考:Journal of Chemical Information and Modeling 2011 51 (8), |
+ | 版本:2019.1*及其之前的版本。 | ||
+ | |||
+ | =====参数设置===== | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 下面这个参数没有特别的作用,只是为了减少无用的临时文件输出。 | ||
+ | |||
+ | {{ : | ||
+ | |||
+ | 与一般的分子动力学模拟过程唯一不同的,是需要在模型创建完毕,参数设置完毕之后,在*.run文件中,手动加入一个参数。在*.run文件中找到参数iout3,在它的下面插入一行(1 itrout),这一段看起来是这样的: | ||
+ | <code bash> | ||
+ | 1 iout3 | ||
+ | 1 itrout | ||
+ | 0 ivels 0: Use velocities from vels restart-file; | ||
+ | </ | ||
+ | 其他地方不变。修改完毕,保存*.run文件,然后运行该任务即可。 | ||
+ | |||
+ | =====结果分析===== | ||
+ | |||
+ | 分子动力学模拟结束后,生成了*.rxkf文件。计算扩散系数,需要在命令行里面进行。Windows如何进入命令行,参考:[[adf: | ||
+ | |||
+ | 进入命令行后,进入该任务的工作目录,下面将通过分析*.rxkf文件得到扩散系数。 | ||
+ | |||
+ | ====第一步:预处理*.rxkf文件==== | ||
+ | |||
+ | 执行命令(确保AMS的环境变量是生效的,例如运行which adf将会现实adf命令所在路径,如果环境变量不正确,将会显示which: | ||
+ | |||
+ | <code bash> | ||
+ | startpython $ADFHOME/ | ||
+ | </ | ||
+ | 用户可以直接拷贝粘贴运行这个命令。将会生成*_travis.xyz文件 | ||
+ | |||
+ | ====第二步:分析*_travis.xyz得到扩散系数==== | ||
+ | 运行命令: | ||
+ | <code bash> | ||
+ | travis.exe -p *_travis.xyz | ||
+ | </ | ||
+ | 之后将会进入对话模式,用户简单输入辅助信息,程序根据用户提供的信息,分析扩散系数。选项非常多,但实际上大多数默认回车即可,用户只需要更改几个选项: | ||
+ | |||
+ | Use the advanced mode until the analysis selection menu (y/n)? [no] 输入y回车 | ||
+ | |||
+ | 持续回车,直到程序询问: | ||
+ | <code bash> | ||
+ | Is the simulation cell non-orthorhombic (cell angles other than 90 deg) (y/n)? [no] | ||
+ | |||
+ | Are the 3 cell vectors of the same size (yes/no)? [yes] | ||
+ | </ | ||
+ | 用户如实输入即可。如果是立方盒子,这里两个选项默认回车即可。并在Enter length of cell vector in pm: | ||
+ | |||
+ | 其他选项默认回车即可,直到: | ||
+ | |||
+ | Which functions to compute (comma separated)? | ||
+ | |||
+ | 此处输入msd回车。该选项表示将计算均方位移和扩散系数。 | ||
+ | |||
+ | 默认回车直到: | ||
+ | |||
+ | Enter the length of one trajectory time step in fs: [0.5]输入每一帧的时间长度,例如默认每time step 0.25 fs,每50步保存一次,那么此处填写12.5回车即可。 | ||
+ | |||
+ | Which molecule should be observed (C3H8O=1, H2O=2)? | ||
+ | |||
+ | Enter the resolution (=depth) for this MSD (in time steps): | ||
+ | |||
+ | 默认回车。 | ||
+ | |||
+ | In which time step to start processing the trajectory? [1]这里设置从MD多少步以后才开始分析扩撒系数,前面的步数作废。例如设置为2000,那么前2000步的MD的数据不予采用。 | ||
+ | |||
+ | 默认回车即可。 | ||
+ | |||
+ | 最后一屏,将会得到扩散系数,例如: | ||
+ | <code bash> | ||
+ | Performing linear regression on interval 3.75 - 7.50 ps... | ||
+ | MSD(t) = -37694.713067 + 22113.443851 * t | ||
+ | R = 0.997388 | ||
+ | Diffusion coefficient D = 3685.573975 pm^2/ | ||
+ | (assuming <x^2> = 6 * D * t) | ||
+ | </ | ||
+ | |||
+ | =====说明===== | ||
+ | - λ的值对结果影响很大,所以对同一类的体系,对比结果,需要总的MD步数相同,λ也相同,这样结果才具有可比性 | ||
+ | - 扩散系数本身由MD过程决定,而MD过程本身的可靠性、统计随机性,都会对结果有影响,所以应该多个样本求平均值,得到统计平均的结果更可靠。 | ||