CP2K教程系列之第一性原理分子动力学(Pymatflow篇)


CP2K教程系列之第一性原理分子动力学(Pymatflow篇)

本系列CP2K教程是《CP2K菜根谭》的升级版,在旧版基础上添加了如何结合Pymatflow工具简化计算流程的内容。话不多说,本文将为您带来CP2K系列教程中的第一性原理分子动力学(AIMD)部分。

简介

CP2K支持第一性原理分子动力学(AIMD)以及混合量子经典分子动力学(QM/MM)。除了波恩-奥本海默分子动力学以及艾伦菲斯特分子动力学以外,CP2K还实现了一种类似于传统的Car-Parrinello分子动力学的第二代Car-Parrinello分子动力学,引起了许多学者的关注。

下面的内容,我们将对一个基本的AIMD计算进行示例分析,以让大家熟悉如何使用CP2K进行AIMD模拟。

使用CP2K进行分子动力学模拟的输入文件与进行几何结构优化的输入文件类似,同样都有三个大的一级输入模块GLOBAL、FORCE_EVAL与MOTION来组成。当然关于AIMD的参数设置主要位于MOTION模块中,而GLOBAL中通常只需要将GLOBAL/RUN_TYPE设置为MD即可。所以我们就MOTION中的设置进行分析。

下面是一个用于分子动力学模拟的MOTION模块的样例:

<code>&MOTION
  &MD
      ENSEMBLE NVE
      STEPS 1000

      TEMPERATURE 300
      TEMP_TOL 0.0
      TIMESTEP 0.5
  &END MD
  &PRINT
  &END PRINT
&END MOTION/<code>

这里子模块我们列出了MD和PRINT,分别对分子动力学模拟参数以及输出进行控制。而对于MD模块实际上还含有许多子模块,在进行相应的模拟时可能需要涉及到,这里我们暂不涉及。

首先我们注意到ENSEMBLE参数,它被用于设定分子动力学模拟体系的系综,可以使NVE、NVT、ISOKIN、MSST、LANGEVIN等。注意这里我们使用的是简单的NVE系综,如果使用NVT系综,就还需要设定体系使用的THERMOSTAT来通过外部热库来恒定体系温度。

STEPS参数设定了分子动力学运行的离子步数。TEMPERATURE是体系的温度。TEMP_TOL为系统允许的温度偏差,当温度偏差目标温度达到此值时会进行速度的rescaling,此参数已经过时,CP2K官方建议采用CSVR类型的THERMOSTAT来作为替代。TIMESTEP参数用于设定分子动力学离子步的时间间隔,默认值为0.5 fs。

到此,一个简单的NVE系综的第一性原理分子动力学就可以通过CP2K运行起来了,至于其它类型的系综以及对应THERMOSTAT的设置,我们在后面的文章中进行介绍。

使用Pymatflow高效完成任务

为了完成上述计算任务,只需使用Pymatflow一条命令即可:

<code>~$ matflow cp2k -r 10 --cutoff 300 --kpoints-scheme NONE -d nacl-aimd --md-steps 100/<code>

上述命令会在当前路径创建nacl-aimd目录,然后在其下自动生成输入文件并进行作业任务的提交。默认使用PBS作业调度器。

你也可以通过--server指定其它服务器类型,比如吕梁天河二号超算系统请使用--server llhpc参数。如果你只是想在本地单节点运行,请使用以下参数组合: --runopt genrun、--auto 0。

其中需要注意的是参数--md-steps 100指定了需要运行的分子动力学离子步数量。

更多参数注解请使用命令查看:

<code>~$ matflow cp2k -h/<code>

简单后处理:

<code>~$ postflow cp2k -r 10 -d nacl-aimd/<code>
CP2K教程系列之第一性原理分子动力学(Pymatflow篇)

CP2K教程系列之第一性原理分子动力学(Pymatflow篇)

往期文章


Pymatflow是一个用于第一性原理模拟的工作流自动化管理软件,目前支持的计算程序有VASP、Qutum ESPRESSO、Abinit、SIESTA、CP2K。

项目文档地址:

http://pymatflow.readthedocs.org/

中文手册:

https://pymatflow.readthedocs.io/en/latest/manual_cn.html

此公众号为Pymatflow开发者所运营,欢迎关注以获取更多关于Pymatflow和第一性原理计算的精彩内容。


分享到:


相關文章: