使用Multiwfn非常便利地创建CP2K程序的输入文件
Using Multiwfn to very conveniently create input file of CP2K
First release: 2021-Feb-22 Last update: 2025-Mar-31
如果Multiwfn的这个功能对你的研究产生了实际帮助,请在写文章时顺带提及输入文件是借助Multiwfn产生的(比如写the CP2K input files were generated with help of Multiwfn program),并按程序启动时显示的要求恰当引用Multiwfn。
Multiwfn产生CP2K输入文件的流程是:1 启动Multiwfn,载入一个Multiwfn可以识别的至少含有结构信息的文件2 进入主功能100的子功能2,选择产生CP2K输入文件(即选项25)。也可以直接在Multiwfn主菜单里输入cp2k进入此功能3 输入要产生的CP2K输入文件的路径4 通过各种选项设置如何进行计算5 选择0,得到CP2K输入文件
下面第2节先说载入到Multiwfn的输入文件的要求。第3节给出一些例子演示产生CP2K输入文件的过程。Multiwfn的这个功能始终不断打磨并且迎合CP2K最新版本的改变,本文内容对应Multiwfn官网上最新版本的Multiwfn(不是今天刚下载的就不要觉得是最新的),一定不要用老版本!Multiwfn产生CP2K输入文件的功能在未来还会不断扩展,尽量做到更强大更完美,并且尽量迎合未来版本CP2K发生的各种变化,届时本文也会相应地修改。
如果载入到Multiwfn的文件不包含晶胞信息,那么Multiwfn会默认将此体系视为孤立体系来设置CP2K里的计算参数,CP2K输入文件里的晶胞信息是在分子周围做一定距离的延展来得到的。
Multiwfn产生的CP2K输入文件里面有很多注释,即#后面的内容,这有助于对CP2K还不是特别熟的人了解选项的含义、明白怎么设置。输入文件里有些选项的值是根据我的使用经验和习惯设的,也有一些设置虽然是默认的,却也出现在了输入文件里,这个考虑是便于大家之后自己手动修改(要不然想改一个默认设置的话还得照着手册写一堆字段实在太费事了)。
也可以用Multiwfn载入CP2K的.inp输入文件或者CP2K计算过程中产生的.restart文件,在主功能0里可以看其中的结构是什么样。还可以载入它们后,进入主功能100的子功能2,选择导出gjf文件,这样得到的gjf文件里会有Tv描述的晶胞信息,可以放到GaussView里进行观看和编辑修改。还可以用主功能100的子功能2里的一堆选项转换成其它一大堆常见格式、一大堆计算程序的输入文件(包括Quantum ESPRESSO、VASP的POSCAR),贼灵活。
这一节演示对SiC的3*3*3超胞用PBE/DZVP-MOLOPT-SR-GTH做晶胞参数不变的结构优化,并且开OT。
接着输入-10 //返回到之前创建CP2K输入文件的界面4 //开启OT0 //产生输入文件
实际上,还有一种等价的创建SiC 3*3*3超胞输入文件的做法。进入Multiwfn的CP2K输入文件创建界面后,输入4 //开启OT-1 //选择任务3 //结构优化(不变胞)-9 //其它设置3 //设置三个方向晶胞重复次数3,3,30 //返回0 //产生输入文件
在得到的输入文件中可以看到坐标部分只记录了原胞,但有两处MULTIPLE_UNIT_CELL 3 3 3,体现出是对3*3*3超胞进行计算。
这一节创建的输入文件对应于在PBEsol/DZVP-MOLOPT-SR-GTH级别下对Cu晶体做原子坐标和晶胞的优化。由于是导体,所以用了smearing。由于用的是原胞算的,所以此例设了k点。
之后就可以直接跑了。
顺带一提,在CP2K输入文件生成界面里选择优化任务后,可以通过选项9设置对哪些原子坐标进行冻结,可以通过诸如1,5,9-12,14-18形式方便地输入。这种选择语句还可以在GaussView里方便地生成,即把某些原子选中成黄色后,在Tools - Atom selection界面里就可以直接拷出来粘贴到Multiwfn窗口里。另外,Multiwfn让你输入被冻结的原子序号时若输入optH还可以直接实现冻结重原子而只优化氢原子的目的。
注:实际上 GFN1-xTB模拟纯水效果很差,密度明显偏高。此例只不过是个例子而已。
值得一提的是,在CP2K输入文件创建界面里选择动力学任务后,会看到还有几个相关选项:选项12:设置压浴选项-5:设置动力学轨迹格式。不用控压时默认是xyz,用控压时默认是尺寸明显更小而且记录盒子信息的二进制格式dcd。也可以用pdb格式,记录盒子信息,文件尺寸很大选项-6:设置每多少步把坐标写入一次轨迹文件
此例对HCN->NCH氢转移用dimer方法优化过渡态,之后再做个振动分析考察虚频情况。此例只是做个演示,对这种分子体系找过渡态的问题CP2K远远不如Gaussian,又不好用效率又极低。
做涉及固体表面的经典力场的分子动力学模拟,需要有固体部分的原子电荷,REPEAT电荷对于这个目的是不错的选择,对于拟合固体表面的原子电荷比RESP更理想。此例创建一个CP2K算氮化硼板的REPEAT电荷计算的输入文件。
为了让结果更好,手动打开.inp文件,把ELEMENT N那行下面的基组改为TZV2P-MOLOPT-GTH。这个基组对B没有定义,所以对B还是用原先默认的DZVP-MOLOPT-SR-GTH。
Multiwfn创建CP2K输入文件的功能使得的CP2K程序使用变得相当简单,大大降低了使用门槛,不用再照着手册和例子一个输入文件写半天(而且还很容易写错、写得不合理),而只需要在Multiwfn里敲几下键盘就可以产生出一个基本能用的输入文件,而且借助此功能还可以通过GaussView方便地为CP2K计算来建模。这个功能也很有助于初学者学习CP2K的输入文件的编写。
Multiwfn创建CP2K输入文件的界面在未来还会加入更丰富的选项、让CP2K的更多的功能用起来变得更简单。在发表文章时提及输入文件是借助Multiwfn创建的并恰当引用Multiwfn程序原文,是对Multiwfn这个功能继续开发最好的鼓励与支持。