对称性及预处理 - COMPASS模块
COMPASS模块主要完成计算任务的初始化工作,包括读入用户定义的分子结构、基组等基本信息,判断分子的对称性及其分子点群,产生对称匹配的轨道等,并将其转换为BDF内部的数据存储起来。Compass模块的主要参数有:
Basis 参数类型:字符串
指定计算所用的基组名称。BDF基组存储在$BDFHOME/basis_library中,当前计算任务中所有原子的基组应被放置在本参数指定的文件中。由于基组通过本参数指定的文件读入,用户可以通过自定义基组(见自定义基组说明)文件为不同原子指定不同的基组。
$Compass Basis cc-pVDZ Geometry H 0.00 0.00 0.707 H 0.00 0.00 -0.707 End Geometry $End
Basis-block 参数类型:字符串
对不同元素指定不同的基组,第一行是默认基组,之后的行对不同元素或原子指定其它基组,
格式为 元素=基组名 或者 元素1,元素2, …,元素n=基组名 。必须以 End Basis
做为结束。
$Compass
Basis-block
3-21g
C,N = 6-31g
Xe = cc-pvdz-pp
End Basis
Geometry
H 0.0 0.0 -1.1
C 0.0 0.0 0.0
N 0.0 0.0 1.0
Xe 3.0 0.0 0.0
End geometry
$End
MPEC+COSX 参数类型:Bool型
指定利用多级展开库伦势(Multipole expansion of Coulomb potential, MPEC)方法计算J矩阵, COSX(Chain-of-sphere exchange)方法计算K矩阵。
RI-J 、 RI-K 、 RI-C 参数类型:字符串
密度拟合近似(Density-fitting approximation)加速算法的辅助基组。
RI-J:库伦拟合基组
RI-K:交换拟合基组
RI-C:相关拟合基组
$Compass
Basis
DEF2-SVP
RI-J
DEF2-SVP
Geometry
H 0.00 0.00 0.707
H 0.00 0.00 -0.707
End Geometry
$End
Geometry 参数类型:字符串数组
指定计算的分子结构,可以是直角坐标模式,也可以是内坐标模式。分子坐标的定义从 Geometry
参数下一行开始,以 End Geometry
前一行结束。
直角坐标
模式
$Compass
Basis
cc-pVDZ
Geometry
H 0.00 0.00 0.707
H 0.00 0.00 -0.707
End Geometry
$End
内坐标
模式
$Compass
Basis
cc-pVDZ
Geometry
O
H 1 0.9
H 1 0.9 2 109.0
End Geometry
$End
Restart 参数类型:Bool型
使用$BDFTASK.optgeom文件里的坐标,而非Geometry关键词下给定的坐标来进行计算,其中$BDFTASK是输入文件名称去掉后缀.inp后剩余的字符串。注意虽然此时计算不会使用Geometry关键词后的坐标数值,但是Geometry关键词后的坐标并不能省略,而且原子的种类、个数和顺序必须正确,只不过坐标数值可以是任意的而已。例如假设输入文件名为1.inp,而1.optgeom文件的内容为
GEOM
O 0. 0. 0.
H 0. 0. 2.
H 0. 2. 0.
则当1.inp的$compass模块为以下形式时,程序可以正常运行:
$compass
...
geometry
O 0. 0. 0.
H 0. 0. 2.1
H 0.1 2.0 0.
end geometry
restart
...
$end
该写法等价于以下输入(即便在以上写法中指定坐标单位为埃也是如此):
$compass
...
geometry
O 0. 0. 0.
H 0. 0. 2.
H 0. 2. 0.
end geometry
unit
bohr
...
$end
但1.inp的$compass模块不能按以下的形式写,因为原子数目和.optgeom文件不符:
$compass
...
geometry
O 0. 0. 0.
H 0. 2.1 0.
end geometry
restart
...
$end
也不能写成以下的形式,因为原子的顺序和.optgeom文件不符:
$compass
...
geometry
H 0. 2.1 0.
O 0. 0. 0.
H 0. 0. 2.1
end geometry
restart
...
$end
restart
主要用于结构优化的断点续算。仍以1.inp为例,假设1.inp是一个结构优化任务的输入文件,但因优化不收敛、其他程序报错或用户中止计算而非正常结束,则结构优化最后一步的结构保存在1.optgeom内,此时在1.inp的$compass模块内添加restart关键字,然后重新运行1.inp,即可起到从之前结构优化的最后一帧开始继续进行结构优化的作用,而无需手动将1.optgeom的内容拷贝至1.inp内。
Group 参数类型:字符串
指定分子的对称点群。BDF会自动判断分子的对称性,HF/DFT/TDDFT都支持高阶分子点群。一些电子相关计算,如MCSCF,MRCI等只支持D2h及其子群。因此,本参数可用来强制BDF使用阿贝尔群计算。
#苯分子最高对称性是D6h,不指定分子点群,BDF可以判断出苯分子的对称性,并按D6h群计算 $COMPASS Title C6H6 Molecule test run, cc-pVDZ Basis cc-pVDZ Geometry C 0.00000000000000 1.39499100000000 0.00000000000000 C -1.20809764405066 0.69749550000000 0.00000000000000 C 0.00000000000000 -1.39499100000000 0.00000000000000 C -1.20809764405066 -0.69749550000000 0.00000000000000 C 1.20809764405066 -0.69749550000000 0.00000000000000 C 1.20809764405066 0.69749550000000 0.00000000000000 H 0.00000000000000 2.49460100000000 0.00000000000000 H -2.16038783830606 1.24730050000000 0.00000000000000 H 0.00000000000000 -2.49460100000000 0.00000000000000 H -2.16038783830607 -1.24730050000000 0.00000000000000 H 2.16038783830607 -1.24730050000000 0.00000000000000 H 2.16038783830606 1.24730050000000 0.00000000000000 End geometry Check $END # D6h的子群有D3h、C6v、D3d、D2h、C2v、C1等。下面的例子指定用D2h群计算苯分子。 $COMPASS Title C6H6 Molecule test run, cc-pVDZ Basis cc-pVDZ Geometry ... End geometry Check Group D(2h) $END
Nosymm 参数类型:Bool型
默认值:false
强制BDF在计算时忽略分子对称性。
Attention
与指定C1群不同,一旦使用了这个参数,分子坐标不会旋转。默认情况下,分子坐标会被旋转到标准取向(Standard orientation)
Norotate 参数类型:Bool型
强制不将分子坐标旋转到标准取向。与Nosymm不同,Norotate不会忽略分子的对称性,但是当分子具有对称轴或者镜面时,对称轴和镜面的位置必须和分子旋转到标准取向时对称轴和镜面的位置一致。例如计算某个处于yz平面上,且关于xz平面对称的水分子,默认情况下BDF会将其旋转到标准取向,导致该分子处于xz平面。此时用Norotate可以强制BDF在该水分子处于yz平面的情况下进行计算,且仍然可以利用水分子的C(2v)对称性,因为不管水分子是处于xz平面还是yz平面,水分子的对称轴都是位于z轴,且两个镜面都是位于xz面和yz面。但如果该水分子处于xy面,则指定Norotate将会报错,因为此时水分子的对称轴并非位于z轴。
Unit 参数类型:字符串
默认值:Angstrom
可选值:Bohr, Angstrom
Bohr表示坐标输入的长度单位为原子单位制,Angstrom表示长度单位为埃。
Skeleton 参数类型:Bool型
指定在BDF计算中对称性的处理方式。BDF有两种分子点群对称性处理方式:一种是先构造对称匹配的轨道,原子轨道积分计算过程中会对称化积分,并存储基于对称匹配轨道的积分,该方法只支持非积分直接的波函数理论计算,如SCF,MCSCF,MRCI,CCSD等;另一种做法是不产生对称匹配的积分,而是只计算存储对称独立的原子轨道积分,在做Hartree-Fock、Kohn-Sham DFT等计算时,直接产生对称匹配的算符如J、K矩阵。后一种做法称为Skeleton方法,即只计算“骨架”原子轨道积分。Skeleton方法对各种非阿贝尔点群提供支持。
BDF最初默认使用第一种做法,如今默认使用第二种做法,但是无法用于各种后-HF波函理论方法,此时需要用 Saorb 关键词切换到第一种做法。
Saorb 参数类型:Bool型
指定在BDF计算中对称性的处理方式为传统做法。只有做各种后-HF波函理论计算时才需要指定该关键词。参见 Skeleton 关键词。
Extcharge 参数类型:Bool型
无需输入值
指定计算需要外加点电荷,外加点电荷放置于名为$BDFTASK.extcharge的文件中。该文件内容如下:
第一行是标题行,可以为空行。
第二行输入一个整数N,定义需要多少个附加电荷。
第三到末尾,总共N行,定义附加电荷的坐标与电量,格式如下:
Atom Charge x y z
Thresh 参数类型:字符串
默认值:Medium
可选值:Coarse, Medium, Strict
指定判断分子对称性的精度。BDF的一个特色是对分子点群的支持。compass模块可以自动识别分子所属的对称群,并按照对称群将分子严格对称化。由于分子建模精度,分子可能不严格属于某个对称点群,本参数可以控制判断分子对称的精度。
$COMPASS Basis cc-pVDZ Geometry C 0.00000000000000 1.39499100000000 0.00000000000000 C -1.20809764405066 0.69749550000000 0.00000000000000 C 0.00000000000000 -1.39499100000000 0.00000000000000 ... End geometry Thresh Medium $END
Uncontract 参数类型:Bool型
强制使用非收缩的原高斯基函数计算,无论输入基组是否是收缩基组。通常用于测试。
Primitive 参数类型:Bool型
指定只输入特定格式的原高斯基函数。通常用于测试。
Check 参数类型:Bool型
按照特定格式打印最重要结果。通常用于测试。