计算化学公社

标题: 高小四,Gaussian调用CFour、MRCC的接口 [打印本页]

作者
Author:
beefly    时间: 2020-2-23 16:28
标题: 高小四,Gaussian调用CFour、MRCC的接口
高小四,英文名G2C4,是Gaussian通过external关键词调用CFour的接口程序,进而可以在Gaussian中实现高级别post-HF方法的能量、梯度、频率计算,同时也避免了CFour结构优化必须用Z矩阵坐标、结构升级异常等问题。由于MRCC程序与CFour是无缝对接的,因此也可以通过CFour实现MRCC的各种更高理论级别的计算。

主页
https://github.com/zorkzou/G2C4

下面是给程序做的宣(广)传(告)片

我是熊(凤山、乌仁)吉,平日里大家都叫我学术界的绅♂士,那丝毫不掺假。
2020年春节(读“姐”)前后,疫情大爆发。北京有个教授叫陈三炮,他让我用CFour帮他算二百多个分子,就像噶韭菜,发完一茬,又发来一茬,还特意给分子拍了个片子。那还是人吗?
我突然感觉到自己力不从心。我说,这绝对不可能,门都没有!
他一上火,老肺病就犯了,跪在炕上喘,输液、打针都不好使,隔离半个月才出来。
后来我想,我没有理由不帮。于是我做了一个违背祖宗的决定,把自己关在羊圈里,大冬天的往怀里塞冰块,往身上浇冷水,七天七夜,才写完了程序。
他说这个程序值得提倡推广,非要我做个宣传。我能承受得了吗?
我这人就这个性格,别人不帮忙,我帮;别人帮不了,我更要帮。耶!


作者
Author:
zsu007    时间: 2020-2-23 16:42
楼主威武!
作者
Author:
exity    时间: 2020-2-24 09:01
好歹上个Quick start tutorials啊!
作者
Author:
beefly    时间: 2020-2-24 16:16
本帖最后由 beefly 于 2020-2-25 10:57 编辑
exity 发表于 2020-2-24 09:01
好歹上个Quick start tutorials啊!

1. 编译。

F90 -O3 g2c4.f90 -o g2c4.exe
根据所用的编译器,把F90改为gfortran,ifort,或者pgf90。

然后把g2c4.exe,以及scripts中的3个文件cfour.templet-*全部放入同一个目录下。例如:/home/Chemsoft/G2C4

2. 把scripts中run-cfour.sh放入Gaussian当前计算的目录下,修改run-cfour.sh。

第4行是MRCC可执行程序的路径,如果不需要MRCC的功能,不用写

6-13行是关于CFour的设置,比较重要的有:
第7行是CFour 2.x版可执行程序的路径。如果编译用了动态链接库(如mkl),还要把环境变量加上
第8行是CFour存储计算临时文件的位置
第10行是每次计算都把临时文件夹删除,以防CFour出现莫名其妙的错误。但是如果做restart计算,要把这行注释掉
第13行是CFour多核并行计算的核心数,对串行编译的CFour无效

15-28行是关于G2C4的设置,比较重要的有:
第16行g2c4dir指定第一步的程序路径
第19行指定CFour输入文件模板文件,见下一步

其余参数的一般不需要改。

3. 编辑CFour输入文件模板文件

作为示例,程序给了三个模板,分别是CFour的HF、CCSD计算和MRCC的CCSDT计算。用户也可以定义自己的计算类型,包括加上收敛参数、自定义基组等。

以cfour.templet-hf为例,模板文件有三个输入块,分别对应单点、解析梯度、解析频率计算,每个输入块内的结构都是一样的。

每个数据块内,首先是file_block区,这不是必须的。因为run-cfour.sh里没有定义CFour的基组文件GENBAS和赝势文件ECPDATA,就需要在这里定义。如果是restart计算,还可以定义其它的文件。

接下来calc_block区定义CFour的计算设置,也就是在CFour输入文件坐标之后的部分。以下四个关键词是必须出现的:
UNITS=1
COORDINATES=1
CHARGE={C}
MULT={M}
还可以定义REFERENCE={R},表示只考虑RHF和UHF两种REFERENCE,G2C4会根据自旋多重度自动设定;倘若用ROHF(或其它参考波函)就直接写REFERENCE=ROHF,不过这些参考波函支持的解析导数较少,需查看CFour手册。

解析梯度部分要有DERIV_LEVEL=1,解析频率部分要有VIB=ANALYTIC。如果某些方法没有解析梯度或解析频率,要删除相应的输入块,然后在Gaussian里指定数值梯度或数值频率(例如EOM在少数理论级别下能算激发态梯度,大部分理论级别下连梯度都没有)。不要直接用CFour算数值梯度和数值频率,否则很多数据找不到。

4. 把test中的Gaussian输入文件复制到run-cfour.sh同一目录下,把输入文件中的'G2C4/run-cfour.sh'改为'./run-cfour.sh',然后可以做测试计算。





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