Multiwfn现已可以调用cubegen使静电势分析耗时有飞跃式的下降!
时间:2019-05-07 16:10 来源:互联网 作者:阿刁 点击:次
Multiwfn现已可以调用cubegen使静电势分析耗时有飞跃式的下降! 文/Sobereva @北京科音 First release: 2018-Aug-18 Last update: 2018-Aug-30
静电势是极为重要的实空间函数,Multiwfn ()中支持众多静电势相关分析,例如《静电势与平均局部离子化能综述合集》()这里提到的相关博文。考虑到Gaussian里的cubegen工具计算静电势速度比Multiwfn快,为了降低Multiwfn中使用较普遍的“绘制静电势平面图”和“分子表面静电势分析”功能的耗时,在之前的Multiwfn手册4.12节中明确说过怎么借用cubegen工具来显著节约耗时,但是大部分国内用户似乎不怎么看手册,而且手动调用cubegen对一些不懂什么是命令行界面的初学者来说“有难度”。 为了用户便利地显著降低静电势分析耗时,在2018-Aug-18于Multiwfn主页更新的Multiwfn 3.6(dev)版中,settings.ini文件里新加入了一个参数cubegenpath,如果这个参数被设为了本机的实际cubegen路径(Windows下的格式比如"D:\study\G16W\cubegen.exe",Linux下的格式比如"/sob/g09/cubegen"),而且你的输入文件是fch或fchk,当Multiwfn做以下分析时,将直接自动调用cubegen代替Multiwfn内部代码计算静电势,使得总耗时有巨大下降,特别是对于大体系。 经测试G09和G16的cubegen都可以直接调用,而且计算结果和基于Multiwfn内部代码算的静电势完全相同。G09自带的cubegen有bug,并行模式运行时结果往往诡异,因此对G09的cubegen,Multiwfn在调用时采用串行方式计算,只有用G16的cubegen时才用并行方式计算(并行核数和settings.ini里的nthreads相同)。Multiwfn通过判断cubegenpath里有无g16或G16字样来判断是G09还是G16的cubegen。 如果你不是Gaussian用户,但又想通过如上方式节约静电势计算时间,那么可以先用Multiwfn把其它量化程序产生的.molden文件、GAMESS-US或firefly输出文件(.gms)这些含有基函数信息的文件用Multiwfn转化为.fch格式,再用此fch文件作为输入文件即可。转换方式见《详谈Multiwfn支持的输入文件类型、产生方法以及相互转换》()。 顺带一提,cubegen支持的各种实空间函数中,只有静电势计算速度快于Multiwfn,其它函数(如电子密度、电子密度拉普拉斯函数、分子轨道波函数等)的计算速度都远慢于Multiwfn,而且cubegen对于静电势以外的函数在计算时没法并行,故Multiwfn计算其它函数的时候不会考虑利用cubegen。 由于目前Multiwfn可以直接调用cubegen了,因此之前手册4.12.7节介绍的用户手动在命令行下调用cubegen降低静电势耗时的做法已被废除,不再被支持,手册这一节已被删去。 cubegenpath设置示例
Multiwfn在分子表面静电势分析时自动调用cubegen时的截图
注意事项2:如果你通过Multiwfn里的某些功能对波函数进行了修改,比如通过主功能6里的子功能26对轨道占据数进行了修改,之后通过调用cubegen算的静电势将还是对应最初波函数的,因为.fch文件的内容没有被修改。如果你想基于修改过的波函数借用cubegen计算静电势,则应当在修改波函数后先用主功能100的子功能2把当前波函数导出为.fch文件,此文件中的SCF密度矩阵将对应于当前波函数,因此若再将导出的这个.fch文件作为输入文件借用cubegen计算静电势,对应的就是修改后的波函数的情况。
PS1:Multiwfn以后的版本中预计大幅改进计算静电势的内部代码,届时不借用cubegen,输入文件包含基函数信息时,速度也会比现在快得多。 |

