模块功能

BDF各模块的调用关系参见 BDF模块及计算流程图

分子自动分片,FLMO和iOI计算 - AUTOFRAG模块

autofrag的主要功能是对大分子进行自动分片,并自动产生FLMO计算的输入。autofrag还是iOI-SCF的计算引擎,用于调度SCF的其他模块完成iOI计算。autofrag模块主要计算流程为:

  • 根据分子坐标自动产生原子的键连信息;

  • 切断某些键,产生合适的分子片段;

  • 对分子片段增加缓冲原子;

  • 在断键处添加连接H原子或者投影杂化轨道PHO (Projected Hybrid Orbital);

  • 生成子体系分子片段的输入文件,利用并行化的模式计算分子片段;

  • 组织子体系分子片段计算结果,运行整体分子计算。

autofrag 必须放在 compass 之前。autofrag会处理 compass 模块中的分子结构,进行分子键判断,分片等。autofrag后的输入还被作为产生分子片段及整体计算输入的模版。利用autofrag做完整的例子见 iOI-SCF计算示例

Method 参数类型:字符串

  • 默认值:FLMO

  • 可选值:FLMO、iOI

设定计算方法。 FLMO - 计算分片定域化分子轨道;iOI - iOI-SCF计算,用分子片合成分子的方法计算大分子体系。iOI目前仅支持限制性自洽场计算。

nprocs 参数类型:整数

  • 默认值:1

  • 可选值:小于等于分子片数的正整数

设定iOI计算最大可用进程数。由于分子片计算是独立的,可并行计算,此处nprocs指的即是最多允许多少个分子片同时计算。注意当nprocs不等于1时,环境变量OMP_NUM_THREADS指定的是iOI计算的总OpenMP线程数,而不是每个进程的可用OpenMP线程数。例如当环境变量OMP_NUM_THREADS=16,且nprocs为2时,代表iOI计算中同时最多有2个子体系在并行计算,每个子体系使用8个OpenMP线程。

radcent 参数类型: 浮点

  • 默认值:3.0

  • 可选值:非负浮点数

设定初始分子片(即尚未添加缓冲区的分子片)的大小(单位:埃),增加radcent会增加每个分子片的尺寸,且减少分子片的数目。

radbuff 参数类型: 浮点

  • 默认值:2.0

  • 可选值:非负浮点数

设定分子片缓冲区半径(单位:埃)。与radcent不同,增加radbuff不改变分子片数目,但会增加每个分子片的尺寸。对于iOI计算,radbuff定义的是第0次宏迭代时分子片缓冲区的大小,缓冲区将在宏迭代过程中增大。

iOIThresh 参数类型: 浮点

  • 默认值:0.1

  • 可选值:正浮点数

设定iOI-SCF分子片段计算的收敛阈值。减小iOIThresh会增加iOI计算的宏迭代次数,但改进了整体分子计算的初始轨道,所以会加快整体分子的SCF收敛。

NoPHO 参数类型: Bool

设置不利用 PHO (Project Hybrid orbital) ,而是利用连接氢 (H) 原子来饱和分子分片时的断键处。使用该关键词时,子体系计算的计算量比默认的 PHO 方法稍小,但子体系轨道的精度低,可能导致整体分子的SCF迭代次数增加,乃至使总计算时间增加。

charge 参数类型: 整数数组

  • 默认值:无

设定给定原子的电荷数,用以协助指定分子片段的电荷。当程序难以自动确定某分子片段电子数时,用户可以通过指定电荷来确定分子片段总的电子数。格式如下:

charge
10 +2 25 -1 78 -1

这里,指定第10个原子的电荷数为+2,第25个原子的电荷数为-1,第78个原子的电荷数为-1。原子所属的分子片段电荷数将会依照用户给出的原子电荷数来进行确定。

spinocc 参数类型: 整数数组

  • 默认值:无

设定给定原子的形式自旋,用以协助计算到合适的自旋态。输入格式和 charge 关键词相同。

spinocc
13 +1 17 -1

这里,指定第13个原子有1个未成对的alpha电子,第17个原子有1个未成对的beta电子。注意,所有的开壳层原子都应该被指定。例如一个体系有两个Cu(II)中心,则两个Cu的形式自旋可以都不指定(此时总体系收敛到哪个自旋态是不确定的),也可以都指定,但是不能只指定其中一个的形式自旋而不指定另外一个的形式自旋;但是如果两个Cu原子之中有一个是Cu(I),则Cu(I)的形式自旋可以不指定,因为其为闭壳层原子。如果体系有离域的自旋,则应该画出让该自旋局域在某个原子上的共振式,再按该共振式指定形式自旋。例如乙烯自由基阳离子的两个碳原子均带有形式正电荷+0.5和形式自旋+0.5,但是指定形式自旋时应该将其中任意一个碳的形式自旋指定为+1,另一个碳的形式自旋指定为0(因为此时该碳原子是闭壳层原子,相应的形式自旋也可以不用指定),而不能把两个碳原子的形式自旋都指定为+0.5。

maxiter 参数类型: 整数

  • 默认值:50

指定iOI-SCF最大的宏迭代次数。

Dryrun 参数类型: Bool

  • 默认值:False

设定只产生FLMO或iOI-SCF输入文件,而不执行计算。

对称性及预处理 - 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-JRI-KRI-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在计算时忽略分子对称性。

注意

与指定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 参数类型:字符串

有效输入值为: point

指定计算需要外加点电荷,外加点电荷放置于名为$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

ExpBas 参数类型:整数

  • 可选值:0、1、2、3、4、5

在输出文件中以其它量子化学程序的格式打印基组和赝势。

  • 0:默认格式

  • 1:Molpro

  • 2:Molcas

  • 3:Gaussian

  • 4:ORCA

  • 5:CFour

Uncontract 参数类型:Bool型

强制使用非收缩的原高斯基函数计算,无论输入基组是否是收缩基组。通常用于测试。

Primitive 参数类型:Bool型

指定只输入特定格式的原高斯基函数。通常用于测试。

Check 参数类型:Bool型

按照特定格式打印最重要结果。通常用于测试。

AtomMass 输入块

指定原子的同位素质量. 输入模式如下

$compass
    ...
    Gemo
        O   -1.81084784   -0.11050725    0.00000000
        H   -2.16957593    0.77995003    0.00000000
        K    0.87665046    0.00547937    0.00000000
    End Geom
    AtomMass
        2          # 指定 2 个原子的质量, 未指定的原子采用其最丰同位素质量
        2   2.0    # 指定第 2 个原子, H, 的质量数为 2.0
        1  18.0    # 指定第 1 个原子, O, 的质量数为 18.0
$end

单、双电子积分计算 - XUANYUAN模块

XUANYUAN模块主要计算单、双电子积分和其他必要的积分并存储到文件中。

Direct 参数类型:Bool型

指定使用积分直接的SCF(Direct)计算。如今是默认选项,不需要用户设置。

积分直接的SCF不存储双电子积分,按照Schwartz不等式,结合积分对Fock矩阵的贡献,对积分进行预筛选。当基函数数目大于300左右,可以有效地利用双电子积分重复计算来避免IO操作,且支持OpenMP的多核并行计算。 BDF中大多数需要计算Fock-Like矩阵(J与K矩阵)的模块,如SCF,TDDFT等都已经实现了积分直接计算。

备注

积分直接的SCF计算需要同时在compass模块中加上 Skeleton 关键词,如今也是默认的。 关闭积分直接的SCF计算可以在compass模块中加上 Saorb 关键词。

Maxmem 参数类型:字符串

指定非积分直接的SCF双电子积分计算缓存大小。大的缓存可以减少积分排序的次数。输入格式为数字+MW或数字+GW,1 Word=2 Byte, 因此512MW就等于1024MB。

$xuanyuan
Maxmem
  512MW
$end

RSOMEGA / RS 参数类型:浮点型

指定Range-Separated泛函如CAM-B3LYP等的 \(\omega\) (某些文献称 \(\mu\) )系数。 RSRSOMEGA 的同义词。如果DFT使用了Range-Speration泛函,必须加入此参数。建议值如下:

表 12 标准范围分离泛函中的 \(\omega\)

标准范围分离泛函

\(\omega\)

CAM-B3LYP

0.33

LC-BLYP

0.33

wB97

0.40

wB97X

0.30

$xuanyuan
RSOMEGA
  0.33
$end

$scf
  dft
    cam-b3lyp
$end

Heff 参数类型:整型

  • 默认值:0

  • 可选值:0、1、2、3/4、5、21、22、23

指定标量相对论哈密顿,包括:

  • 0:非相对论,包括使用ECP的情况

  • 1:sf-ZORA(不建议普通用户使用)

  • 2:sf-IORA(不建议普通用户使用)

  • 3、4:sf-X2C(二者计算流程不同,一般用3即可)

  • 5:sf-X2C + so-DKH3(无自旋部分,需结合 Hsoc 使用,精度有待进一步测试) [12]

  • 21:sf-X2C(同3、4,但支持解析导数和部分单电子性质) [27]

  • 22:sf-X2C-aXR(使用原子X矩阵近似的sf-X2C,支持解析导数和部分单电子性质) [27]

  • 23:sf-X2C-aU(使用原子酉变换近似的sf-X2C,支持解析导数和部分单电子性质) [27]

$xuanyuan
Heff
  3
$end

Hsoc 参数类型:整型

  • 可选值:0、1、2、3、4、5

指定自旋轨道(SO)积分的类型,包括:

  • 0:so-1e,仅计算单电子SO积分。

  • 1:so-1e + SOMF,通过有效Fock算符计算双电子SO积分。对于全电子计算,这是最准确的方法

  • 2:so-1e + SOMF-1c,使用单中心近似的SOMF。对于全电子计算,这是推荐选项,尤其是计算大分子

  • 3:so-1e + SOMF-1c / no soo,关闭2中的自旋-其它轨道(SOO)贡献

  • 4:so-1e + SOMF-1c / no soo + WSO_XC,采用DFT计算SOO贡献

  • 5:so-1e + somf-1c / no soo + WSO_XC-2x,根据Neese的建议,把DFT部分乘以-2来模拟SOO贡献

  • 以上参数加上10,将使用BP近似下的算符

  • 对于ECP基组(包括标量ECP基组、SOECP基组、全电子非相对论基组的混合),唯一接受的值是10,并且是默认选择。 也就是使用BP so-1e,其中对SOECP原子计算SOECP积分,标量ECP原子和全电子非相对论原子用有效核电荷, 但是后者支持的元素和基组类型有限(见soint_util/zefflib.F90)。

$xuanyuan
Hsoc
  1
$end

Nuclear 参数类型:整数

  • 默认值:0

  • 可选值:0、1

指定原子核电荷分布模型。0为点电荷模型;1为高斯电荷模型。 对于110号(Ds)之前的元素,均方根(RMS)核半径取自Visscher和Dyall汇总的数据 [81] ; 从Ds元素开始,RMS核半径通过核素质量A估算(单位:费米):

\[\left<r^2\right> \approx 0.57 + 0.836 \, A^{1/3}\]

其中的核素质量A与核电荷数Z近似满足以下关系 [82, 83]

\[A \approx 0.004467 \, Z^2 + 2.163 \, Z - 1.168\]

NuclearRadii 输入块

指定原子核半径. 该输入块仅在已启用有限核模型的情况下生效, 未指定的原子核半径将采用默认值. 输入模式参考 Compass 模块中的 AtomMass 输入块

Hartree-Fock及Kohn-Sham自洽场计算 - SCF模块

SCF模块是BDF的核心计算模块之一,进行Hartree-Fock和DFT计算。

计算方法关键词

RHF / UHF / ROHF 参数类型:Βοοl型

如果做Hartree-Fock计算,这三个参数必须3选1,用于控制Hartree-Fock计算的类型。

  • RHF Restricted Hartree-Fock

  • UHF Unrestricted Hartree-Fock

  • ROHF Restricted Open-shell Hartree-Fock

RKS / UKS / ROKS 参数类型:Βοοl型

如果做DFT计算,这三个参数必须3选1,用于控制DFT计算的类型。

  • RKS Restricted Kohn-Sham

  • UKS Unrestricted Kohn-Sham

  • ROKS Restricted Open-shell Kohn-Sham

波函数与占据数关键词

Charge 参数类型:整数

  • 默认值:0

指定分子体系的净电荷数。

Spinmulti 参数类型:整数

  • 默认值:对偶数电子体系为1,对奇数电子体系为2

指定分子体系的自旋多重度。自旋多重度定义为2S+1(其中S是自旋角动量),可以由 | 自旋向上的单电子数 - 自旋向下的单电子数 | + 1 计算得到,因此当体系的所有单电子的自旋都彼此平行时,自旋多重度等于体系内的单电子数加1。

Occupy 参数类型:整数数组

指定每个不可约表示分子轨道中双电子占据的轨道数目,用于RHF/RKS计算。

Alpha 参数类型:整数数组

见下述Beta条目。

Beta 参数类型:整数数组

Alpha和Beta两个关键词必须联用,用于UHF/UKS计算,分别指定alpha或beta轨道每种不可约表示占据轨道数目。

Guess 参数类型:字符串

  • 默认值:atom

  • 可选值:atom、Hcore、Huckel、Readmo

指定初猜的类型。一般情况下atom较Hcore、Huckel好,因此正常情况下无需选择Hcore或Huckel。若选择Readmo,则程序会依次检查下述文件是否存在:

  1. $BDF_TMPDIR/$BDFTASK.inporb

  2. $BDF_TMPDIR/inporb

  3. $BDF_WORKDIR/$BDFTASK.scforb

其中$BDF_TMPDIR为当前BDF计算的临时目录,$BDF_WORKDIR为当前BDF计算的工作目录,$BDFTASK为当前BDF任务的输入文件名去掉后缀.inp后剩余的字符串。程序会读取以上列表中第一个存在的文件里的轨道信息,如读取失败,或读取到的轨道信息与当前计算不兼容(例如基函数数目不同),则程序会自动改为atom猜测。读取到的轨道会先进行Lowdin正交归一化,然后才用于SCF迭代。

提示

读取的轨道文件必须和当前计算在以下方面相符:

  1. 原子的数目和种类必须相同;

  2. 原子的排列顺序必须相同;

  3. 使用的点群必须相同;

  4. 使用的基组必须相同;

  5. 要么两个计算均为RHF、RKS、ROHF或ROKS,要么两个计算均为UHF或UKS。

除此之外的大多数方面不要求相同,例如原子坐标、电荷、自旋多重度、泛函等等均可以不同。其中如果(1)、(2)、(3)、(5)均满足,只有(4)不满足,可以用 expandmo 模块将轨道文件所用的基组投影到当前计算所用基组上,再读取轨道作为初猜(参见 expandmo )。

例如,假如某输入文件mol-B3LYP-Energy.inp在B3LYP/def2-TZVP水平下计算了某分子在某个结构下的单点能,现改用M06-2X/def2-TZVP计算同一个分子在另一个结构下的单点能(输入文件名为mol-M062X-Energy.inp),则为节约计算时间,可以利用此前B3LYP/def2-TZVP水平下的收敛的SCF波函数:

cp mol-B3LYP-Energy.scforb mol-M062X-Energy.scforb

并在mol-M062X-Energy.inp的$scf块里添加

guess
 readmo

此时运行mol-M062X-Energy.inp,即可读取B3LYP单点计算的波函数作为初猜(尽管B3LYP单点计算所用的分子结构和当前计算不同,泛函也不相同)。

SadGuessAverageOutPartiallyFilledShell/SadAvgPart 参数类型:Boolean

指定在做 Superposition of Atomic Density 初猜时所进行的原子计算中使用对非满占据的支壳层进行平均化占据的电子排布方案. 该选项为默认值且在未启用 SecScf 时为唯一选项

SadGuessAverageOutValenceShell/SadAvgVal 参数类型:Boolean

指定在做 Superposition of Atomic Density 初猜时进行的原子计算需使用对整个价层进行平均化的电子占据模式. 该选项只能在启用 SecScf 后使用

SadGuessAverageOutPartiallyFilledShellFor/SadAvgPartFor 参数类型:整型

指定在做 Superposition of Atomic Density 初猜时进行的对原子序数为特定值原子计算需使用对非满占据的支壳层进行平均化占据的电子排布方案. 如需指定多种元素则需使用该输入数次

SadGuessAverageOutValenceShellFor/SadAvgValFor 参数类型:整型

指定在做 Superposition of Atomic Density 初猜时进行的对原子序数为特定值原子计算需使用对整个价层进行平均化的电子占据模式. 如需指定多种元素则需使用该输入数次

Mixorb 参数类型:整数/浮点数组

将初猜轨道按一定比例进行混合。Mixorb后的第一行是一个整数(以下记为N),表示需要混合的轨道对的数目;第2行到第N+1行每行为5个数,给出需要混合的轨道对的信息。其中每一行的第一个数表示混合的是alpha还是beta轨道(1为alpha,2为beta;对于RHF/RKS/ROHF/ROKS计算,该数必须为1);第二个数表示待混合轨道的不可约表示编号(对于不考虑点群对称性的计算,该数必须为1);第三、第四个数表示待混合轨道在所指定不可约表示下的序号;第五个数(以下记为 \(\theta\) ,单位:度)表示将这两个轨道按以下公式进行混合:

  • 新的第一个轨道 = \(\cos\theta\times\) 原来的第一个轨道 + \(\sin\theta\times\) 原来的第二个轨道

  • 新的第二个轨道 = \(\sin\theta\times\) 原来的第一个轨道 - \(\cos\theta\times\) 原来的第二个轨道

一般使用较多的是 \(\theta=45\)\(\theta=90\) 的情况,由以上公式可以看出, \(\theta=45\) 相当于把两个轨道按等比例混合,得到一个同相位组合轨道和一个反相位组合轨道; \(\theta=90\) 相当于把两个轨道交换。以下算例将第3个不可约表示的第10个beta轨道和第11个beta轨道进行等比例混合(例如为了进行自旋对称性破缺的计算):

$scf
UHF
guess
 readmo
mixorb
 1
 2,3,10,11,45
$end

以下算例将第5个不可约表示的第7个轨道和第8个轨道交换,同时还将第6个不可约表示的第3个轨道和第4个轨道交换:

$scf
ROHF
guess
 readmo
mixorb
 2
 1,5,7,8,90
 1,6,3,4,90
$end

注意一般只有在Guess设定为Readmo时,才能使用Mixorb,否则用户撰写输入文件时尚不清楚初猜轨道的成分,因此无法知道应当混合哪些轨道。

DFT交换相关泛函关键词

DFT 参数类型:字符串

指定DFT计算的交换相关泛函。参见BDF支持的交换相关泛函列表。

D3 参数类型:Bool型

指定对DFT计算加入Grimme的D3色散矫正。

FACEX 参数类型:浮点型

指定泛函的HF交换项比例。注意目前只有SVWN、SVWN5、PBE、PBE0、PW91、BP86、BLYP、B3LYP、GB3LYP、B3PW91、BHHLYP、SF5050、B2PLYP泛函允许用户自定义FACEX。例如以下输入将PBE的HF交换项比例由默认的0%改为37.5%,得到PBE38泛函:

$scf
...
DFT
 PBE
facex
 0.375
$end

FACCO 参数类型:浮点型

指定泛函的MP2相关项比例。注意目前只有B2PLYP泛函允许用户自定义FACCO。例如以下输入通过改变B2PLYP的FACEX和FACCO,同时自定义MP2模块里的spin component scaling参数FSS和FOS(参见 mp2 ),自定义了DSD-BLYP泛函:

$scf
...
dft
 B2PLYP
facex
 0.75
facco
 0.47
$end

$mp2
fss
 0.60
fos
 0.46
$end

RSOMEGA / RS 参数类型:浮点型

指定Range-Separated泛函如CAM-B3LYP等的 \(\omega\) (某些文献称 \(\mu\) )系数。 RSRSOMEGA 的同义词。本关键词在 scf 模块中仅用于调试,建议在 xuanyuan 模块中设置。

DFT数值积分格点控制参数关键词

NPTRAD 参数类型:整型

指定数值积分的径向格点数。本参数一般用于调试程序,正常计算不需要指定该参数。

NPTANG 参数类型:整型

指定数值积分的角向格点数。本参数一般用于调试程序,正常计算不需要指定该参数。

Grid 参数类型:字符串

  • 默认值:Medium

  • 可选值:Ultra Coarse、Coarse、Medium、Fine、Ultra Fine

指定DFT计算的格点类型。

Gridtol 参数类型:浮点型

  • 默认值:1.0E-6(对于meta-GGA为1.0E-8)

指定产生DFT自适应格点的截断阈值。该值越低,格点数越多,因此数值积分精度越高,但计算量也越大。

Gridtype 参数类型:整型

  • 默认值:0

  • 可选值:0、1、2、3

指定DFT计算的径向与角向布点方法。

Partitiontype 参数类型:整型

  • 默认值:1

  • 可选值:0、1

指定DFT格点分割类型。0为Becke分割;1为Stratmann-Scuseria-Frisch分割。一般用户无需改变该参数。

Numinttype 参数类型:整型

  • 默认值:0

指定数值积分计算方法。本参数一般用于调试程序,正常计算不需要指定该参数。

NosymGrid 参数类型:Bool型

指定数值积分不使用分子对称性,仅用于程序调试。

DirectGrid / NoDirectGrid 参数类型:Bool型

指定数值积分采用直接积分的模式,不保存基组值等信息。对于DirectSCF必须使用DirectGrid。只有非DirectSCF情况下才有必要使用NoDirectGrid。本参数一般用于调试程序,正常计算不需要指定该参数。

NoGridSwitch 参数类型:Bool型

指定数值积分过程不变换格点。为了降低计算量,BDF默认使用ultra coarse类型格点迭代几次DFT,到了一定的阈值,再使用用户设置的积分格点。NoGridSwitch参数强制不变换积分格点。

ThreshRho & ThreshBSS 参数类型:浮点型

控制积分格点的预筛选精度,仅用于程序调试。

SCF加速算法

MPEC+COSX 参数类型:Bool型

指定利用多级展开库伦势(Multipole expansion of Coulomb potential, MPEC)方法计算J矩阵, COSX(Chain-of-sphere exchange)方法计算K矩阵。 在 Scf 模块中保留该关键词只是为了向下兼容,建议在 Compass 模块中设定该关键词。

Coulpot 参数类型:整型

  • 默认值:0

  • 可选值:0、1、2

控制MPEC计算产生库伦势Vc与原子核吸引势Vn矩阵的方法。0为利用解析积分计算Vc与Vn;1为利用多级展开计算Vc,利用解析积分计算Vn;2为利用多级展开计算Vc,数值积分计算Vn。

Coulpotlmax 参数类型:整型

  • 默认值:8

定义 MPEC 方法多级展开最高的角动量L值。

Coulpottol 参数类型:整型

  • 默认值:8, 含义为 1.0E-8

定义多级展开的精度阈值,越大越精确。

MPEC 参数类型:Bool型

指定用MPEC方法计算J矩阵。

COSX 参数类型:Bool型

指定用COSX方法计算K矩阵。

SCF收敛控制关键词

Maxiter 参数类型:整型

  • 默认值:100

定义SCF计算的最大迭代次数。

Vshift 参数类型:浮点型

  • 默认值:0

  • 可选值:非负实数

  • 建议范围(当取值不为0时):0.2~1.0

指定分子轨道能级移动值。人为地将虚轨道能量加上用户指定数值,以加大HOMO-LUMO能隙,加速收敛。Vshift值越大,收敛过程越不容易出现振荡,但Vshift值太大会导致收敛变慢。一般只有在分子的HOMO-LUMO能隙较小(如小于2 eV),且SCF迭代时能量非单调降低时,才需要设置Vshift。

Damp 参数类型:浮点型

  • 默认值:0

  • 可选值:大于等于0、小于1的实数

  • 建议范围(当取值不为0时):0.5~0.99

指定本次SCF迭代与上次迭代的密度矩阵以一定比例混合(P(i):=(1-C)*P(i)+C*P(i-1)),从而加速SCF收敛。Damp值越大,收敛过程越不容易出现振荡,但Damp值太大会导致收敛变慢。一般只有在SCF迭代能量非单调降低的时候,才需要设置Damp。

ThrEne 参数类型:浮点型

  • 默认值:1.d-8

指定SCF收敛的能量阈值(单位:Hartree)。

ThrDen 参数类型:浮点型

  • 默认值:5.d-6

指定SCF收敛的均方根密度矩阵元阈值。

ThreshConv 参数类型:浮点型

同时指定SCF收敛的能量和密度矩阵阈值。例:

$scf
...
ThreshConv
 1.d-6 1.d-4
$end

等价于

$scf
...
ThrEne
 1.d-6
ThrDen
 1.d-4
$end

提示

当且仅当以下任何一条满足时,程序认为SCF收敛:(1)能量变化小于ThrEne,且RMS密度矩阵元变化小于ThrDen;(2)能量变化小于ThrEne的0.1倍,且RMS密度矩阵元变化小于ThrDen的1.5倍;(3)最大密度矩阵元变化小于ThrDen。

NoXiis/NoDiis 参数类型:Bool型

指定不使用 DIIS 家族的收敛加速算法加速 SCF 收敛。一般只有在SCF能量以较大幅度(> 1.0E-5)振荡不收敛,且 Damp 和 VShift 效果不明显时,才需要指定 NoXiis。

Diis 参数类型: boolean

指定使用 DIIS 家族中的传统 DIIS 算法. 该项为默认值

Lciis 参数类型: boolean

指定使用 DIIS 家族中的 LCIIS 算法

Ediis 参数类型: boolean

指定使用 DIIS 家族中的 EDIIS 算法. 用户应首先考虑使用 EDIIS + DIIS 而非纯 EDIIS

Adiis 参数类型: boolean

指定使用 DIIS 家族中的 ADIIS 算法. 用户应首先考虑使用 ADIIS + DIIS 而非纯 ADIIS

EdiisPlusDiis 参数类型: boolean

指定使用 DIIS 家族中的 EDIIS + DIIS 算法

AdiisPlusDiis 参数类型: boolean

指定使用 DIIS 家族中的 ADIIS + DIIS 算法

MaxXiis/MaxDiis 参数类型:整型

  • 默认值:8

指定 DIIS 家族方法的最大子空间维数。

MinXiis/MinDiis 参数类型:整型

  • 默认值:2

指定 DIIS 家族方法的最小子空间维数。

XiisMode/DiisMode 参数类型: 整型

当 DIIS 类方法所用的存储策略. 具体的来说, 指的是在当子空间维度达到最大值时的做法

  • 默认值: 0

  • 可选值: 0 (删除最旧的数条记录直至空间维度为最小值), 1 (删除最旧的一条记录), 3 (删除对应迭代均方误差最大的那条记录), 4 (删除对应迭代误差矩阵元绝对值最大的那条记录)

备注

  • 选项 3 和 4 只在启用了 NLopt 后可用

  • 选项 3 和 4 的收敛效果随通常较选项 0 更好, 但偶尔可能引起稳定振荡不收敛问题. 该问题可尝试调节能级移动来解决

DoNotOrthogonalizeDiisErrorMatrix 参数类型: Boolean

指定传统 DIIS 算法使用非正交化的误差矩阵. 该选项默认启用

OrthogonalizeDiisErrorMatrix 参数类型: Boolean

指定传统 DIIS 算法使用正交化的误差矩阵, 仅在启用了 NLopt 后可用. 该选项默认不启用且在出现基组线性相关时将被自动关闭

SMH 参数类型:Bool型

指定使用Semiempirical Model Hamiltonian(SMH)方法加速SCF收敛。该方法对于一般的有机体系,可节省约10~15 %的SCF迭代步数,对于具有显著电荷转移、自旋极化的体系,加速收敛效果更为显著。此外该方法还可增加收敛到稳定波函数的概率。对于满足以下情况之一的计算,不支持使用SMH:(1)ROHF/ROKS计算;(2)用户指定了Smeartemp时;(3)基组存在线性相关时。除这些情况外,SMH一律默认开启。

NoSMH 参数类型:Bool型

指定不使用SMH方法加速SCF收敛。

Smeartemp 参数类型:浮点型

  • 默认值:0

  • 可选值:非负实数(单位:Kelvin)

指定体系的电子温度,也即通过费米展宽(Fermi Smearing)方法改变前线轨道的占据数。注意BDF如果使用Fermi Smearing方法,最终的能量包含了电子熵能(the electronic entropy)的贡献,名为-TS_ele,从E_tot中间减掉这一项(注意这一项是负的,也就是说需要加上这一项的绝对值)可以得到电子能量。Smeartemp不可与Vshift或SMH同时使用,也不可在FLMO或iOI计算中使用。

该关键词主要有以下几类应用场景:

  • 用于研究温度对电子结构的影响,以及由此导致的对能量、各种性质的影响。例如将Smeartemp设为1000进行结构优化,可以得到1000 K下分子的平衡结构,理论上会和0 K下的平衡结构有少许区别。注意大部分实验(如X射线单晶衍射、微波光谱等)测得的结构是热平均结构而不是平衡结构,而热平均结构对温度的敏感性远较平衡结构更高,所以用户不应盲目利用Smeartemp关键词试图重现实验上观察到的分子结构随温度的变化情况,除非已知所用实验手段测得的是平衡结构。

  • 对于HOMO-LUMO能隙非常小或者前线轨道能级简并的体系,该方法能改善DFT的收敛性,但会轻微改变收敛的结果,为了得到和0 K下相同的SCF结果,需要在Fermi Smearing计算收敛或几乎收敛后,读取波函数作为初猜,继续做一个不使用Fermi Smearing的计算。一般为了达到明显改进收敛的效果,需要设定较高的电子温度,如对纯泛函设定为5000 K左右,对杂化泛函设定为10000 K左右,对HF设定为20000 K左右。

  • 对于HF或DFT破坏分子空间对称性的情况,Smeartemp有助于得到符合空间对称性的轨道。例如环丁二烯的Kohn-Sham波函数仅有 \(D_{2h}\) 对称性,但在适当的电子温度下计算,可以得到符合 \(D_{4h}\) 对称性的轨道。

Fock矩阵对角化控制关键词

Sylv 参数类型:Bool型

控制在SCF迭代中利用求解Sylvester方程的方法进行块对角化,代替全对角化,以节省计算时间。例如:

$scf
...
sylv
$end

对于特别大的体系(例如原子数大于1000、基函数数目大于10000)的计算,Fock矩阵对角化占总计算的时间常常不可忽略,此时以上写法通常可以降低计算量,因为用较快的块对角化代替了全对角化,并且可以充分利用Fock矩阵的稀疏性加速计算。但需要注意的是,此时SCF收敛得到的轨道不是正则轨道(特别地,当初猜为FLMO、iOI等计算得到的局域轨道时,收敛的轨道也是局域轨道),不过收敛的占据轨道张成的空间和正则占据轨道张成的空间相同,能量、密度矩阵等也和传统全对角化计算的结果一致。如需要得到正则轨道,应当另写一个不带sylv关键词的BDF输入文件,读取当前计算的收敛轨道作为初猜,进行全对角化计算。

Iviop 参数类型:整型

  • 默认值:无

  • 可选值:1~3

  • 建议值:1

控制在SCF迭代中使用iVI方法,需要与Blkiop=7联用。

Blkiop 参数类型:整型

  • 默认值:当指定Sylv时,默认值为3,否则无默认值

  • 可选值:1~8,分别代表SAI、DDS、DNR、DGN、FNR、FGN、iVI、CHC

  • 建议值:3

指定块对角化的方法,通常用于iVI或FLMO计算。如不指定该关键词,默认进行全对角化。

打印与分子轨道输出控制参数

Print 参数类型:整型

  • 默认值:0

  • 可选值:0、1

仅用于程序调试,控制SCF的打印级别。

IprtMo 参数类型:整型

  • 默认值:0

  • 可选值:0、1、2

控制是否打印分子轨道系数。若设为0,不打印分子轨道;若设为1(默认),打印前线轨道(每个不可约表示的HOMO-5到LUMO+5)的占据数、能量、系数;若设为2,打印所有轨道的占据数、能量、系数。

Noscforb 参数类型:Bool型

强制不将分子轨道存入.scforb文件。

Pyscforb 参数类型:Bool型

控制将SCF收敛轨道存储为Pyscf轨道格式。

Molden 参数类型:Bool型

控制将分子轨道输出为Molden格式,以做后续的波函数分析。

相对论单电子性质计算

相对论单电子性质计算支持sf-X2C哈密顿及其局域变体( xuanyuan 模块中 Heff 设置为 21,22,或23)。

Reled 参数类型:整型

对于原子序数大于等于此值的元素计算 有效接触密度 。无默认值。 必须结合 xuanyuan 模块中的有限核模型 nuclear = 1 一起使用。

Relefg 参数类型:整型

对于原子序数大于等于此值的元素计算 电场梯度 (EFG)张量。 对于有核四极矩(NQM)实验值或可靠理论值的同位素,还计算 核四极耦合常数 (NQCC)。 程序中已经内置了 Pyykkö 汇总的常见同位素NQM数据 [84] (Bi-209的NQM值最近已更正 [85] )。 其它同位素可以参考Stone汇总的NQM数据 [86]

无默认值。必须结合 xuanyuan 模块中的有限核模型 nuclear = 1 一起使用。

基组线性相关检查关键词

Checklin 参数类型:Bool型

强制SCF进行基组线性相关检查。BDF默认对DirectSCF进行基组线性相关检查,以提高使用弥散基函数时的SCF收敛性。

Tollin 参数类型:浮点型

  • 默认值:1.0E-7

控制基组线性相关检查的阈值。

mom方法控制关键词

mom是一种ΔSCF方法,可以通过强制SCF每次迭代的占据轨道与初始占据轨道最大重叠来使SCF收敛到激发态。mom方法通常比基态收敛困难。

Iaufbau 参数类型:整型

  • 默认值:当用户设定了Occupy、Alpha或Beta时为0,否则为1

  • 可选值:0、1、2、3

定义用什么方法指定轨道占据数。0表示轨道占据数始终与初猜一致;1表示按照Aufbau规则指定轨道占据数;2表示按照mom方法指定轨道占据数,即令占据数尽可能和初始猜测轨道保持一致,结合前述Mixorb关键词可以实现用DeltaSCF方法计算激发态;3用于程序调试,正式计算一般无需使用。

IfPair & hpalpha & hpbeta 参数类型:整型

Ifpair参数指定电子如何激发,确定mom方法的电子占初态,必须与hpalpha和hpbeta参数联用。电子激发通过相对于基态通过指定从占据轨道到虚轨道的激发确定。

#一个分子,其分子轨道分属4个不可约表示。下面的输入激发不可约表示1的alpha轨道5、6上的电子
#到alpha轨道7、8,不可约表示3的alpha轨道3上的电子到alpha轨道4,不可约表示1的beta轨道7上
#的电子到beta轨道8.
$scf
Ifpair
Hpalpha
2
5 0 3 0
8 0 4 0
6 0 0 0
9 0 0 0
Hbeta
1
7 0 0 0
8 0 0 0
...
$end

Pinalpha & Pinbeta 参数类型:整型

指定固定的分子轨道。

EnableSecondOrderScf & EnableApproxSecondOrderScf 参数类型: Bool 型

分别用于启用二阶及近似的二阶 SCF 并使用默认设置. 严格的二次收敛很昂贵, 仅应在无法通过其它收敛算法得到稳定解时使用.

提示

  • 二阶 (及近似的二阶) SCF 目前不支持 iOI 等算法

  • 二阶 (及近似的二阶) SCF 目前不支持限制性开壳层计算

  • 二阶 (及近似的二阶) SCF 目前不支持相对论计算

DisableSecondOrderScf & DisableApproxSecondOrderScf 参数类型: Bool 型

分别用于禁用二阶及近似的二阶 SCF

SecondOrderConfig & ApproxSecondOrderConfig 输入块

分别用于指定二阶及近似二阶 SCF 所用的高级设置. 一般用户仅需指定 EnableSecondOrderScf 关键词, 无需指定该项.

$Scf
    ...
    SecondOrderConfig
        Enable
        EnableExpression
            AfterIteration 10
        LevelShiftGradientThreshold
            1e-3
        ConvergeGradientThreshold
            1e-6
        ConvergeRotationThreshold
            1e-9
        MaxIterationCycle
            16
        InitialTrustRadius
            0.4
        MaxTrustRadius
            5
        MaxConjugateGradientIterationCycle
            16
        MaxDavidsonIterationCycle
            16
        CorrectionType
            Olsen
        LinearSolverTolerance
            1e-4
        AllowConverge
        ScfConvergeGradientThreshold
            1e-7
    EndSecondOrderConfig
    ...
$End
  • Enable: 指定启用二阶 SCF 并将启用表达式将为默认设置

  • Disable: 指定禁用二阶 SCF

  • EnableExpression: 指定启用表达式 (指定启用表达式将隐式设定 Enable 关键词)

    • AfterIteration + 整型数: 指定在一定标准 SCF 迭代后启用

    • AfterDeltaEnergyLessThan + 浮点数: 指定在执行标准SCF迭代至能量误差低于一定值后启用

    • AfterDeltaRmsDensityLessThan + 浮点数: 指定在执行标准SCF迭代至密度矩阵之误差低于一定值后启用

    • 自定义逻辑表达式. 注, 我们提供自定义表达式的目的是为方便开发人员调试程序及为高级用户提供更灵活的选项, 如果您对其感觉不适请考虑使用上文所述的默认选项或预设选项. 自定义表达式可用关键词为 Iteration, DeltaEnergy, 及 DeltaRmsDensity. 可用算符有 &, |, !, >, <, =, 及 []. 算符均不可串联, 并在作用至变量后必须以逻辑求值算符 [] 括起. 表达式不区分大小写, 忽略全部空格字符, 这意味着 “DeltaRmsDensity” 与 “Delta RMS Density” 等价. 例:

    [ [ Iteration > 10 ] & [ [ DeltaEnergy < 1e-3 ] | [![ DeltaRmsDensity > 2.5e-3 ]] ] ]

  • LevelShiftGradientThreshold, 浮点型: 指定在能量-轨道梯度低于一定值后解除可信半径, 改用 Newton-Raphson 法计算旋转矢量

  • ConvergeGradientThreshold, 浮点型: 指定在能量-轨道梯度值模低于一定值后停止二次 SCF 微迭代

  • ConvergeRotationThreshold, 浮点型: 指定在旋转矢量之模长低于一定值后停止二次 SCF 微迭代

  • MaxIterationCycle, 整型: 指定最大二阶 SCF 微迭代次数直到做一次标准 SCF 更新

  • InitialTrustRadius, 浮点型: 指定用 Levenberg-Marquardt 法求旋转矢量时所用的初始可信半径

  • MaxTrustRadius, 浮点型: 指定用 Levenberg-Marquardt 法求旋转矢量时所用的最大可信半径

  • MaxConjugateGradientIterationCycle, 整型: 指定用共轭梯度法求解 Newton-Raphson 方程时所用的最大迭代次数. 最终矢量将被用作旋转矢量即使未收敛

  • MaxDavidsonIterationCycle, 整型: 指定用 Davidson 对角化求解 Levenberg-Marquardt 方程时所用的最大迭代次数. 最终矢量将被用作旋转矢量即使未收敛

  • CorrectionType, 字符串: 指定 Davidson 对角化所用的矫正方法, 可选项为 DavidsonDPR (也作 DPR), JacobiDavidson, 及 Olsen

  • LinearSolverTolerance, 浮点型: 指定 Davidson 对角化所用线性方程求解器所用收敛阈值

  • ExcludeNonOccupiesFromRotation: 指定将在构造原理下本该为占据轨道但用户明确指定为非占据轨道的轨道从轨道旋转对中排除, 以防止塌陷至构造原理所表示的态. 该选项只在做 ΔSCF 计算时生效

  • IncludeNonOccupiesInRotation: 指定将所有轨道都包含至旋转对中. 该选项只在做 ΔSCF 时生效

  • AllowConverge: 允许 SCF 于二次收敛迭代过程中宣布 SCF 已收敛

  • ForbidConverge: 禁止 SCF 于二次收敛迭代过程中宣布 SCF 已收敛

  • ScfConvergeGradientThreshold, 浮点型: 指定在能量-轨道梯度之模低于一定值后认为 SCF 已收敛. 仅在已设 AllowConverge 时生效

  • QuasiNewtonAlgorithm, 字符串: 指定所用伪牛顿算法, 可选项有 BFGS (默认), SR1, 及 DFP. 仅在使用近似的二阶 SCF 时生效

备注

相比 BDF 的其它输入块, SecondOrderConfig 输入块中的浮点型参数只能用 e 或 E 来标记科学计数法, 不能使用 d 及 D. 使用不受支持的输入格式将引起意想不到的后果

含时密度泛函 - TDDFT模块

TDDFT模块基于线性响应理论,通过求解Casida方程计算分子激发态。TDDFT模块支持TDDFT(包括TDHF)、TDA(包括CIS)等方法,可以处理基态是闭壳层或者是开壳层的分子体系。其中基态是开壳层的体系不仅可以用传统的U-TDDFT方法处理,还可以用自旋匹配的SA-TDDFT(又称X-TDDFT)来处理,该方法是BDF的特色。除此之外,BDF还支持自旋翻转(SF-)TDDFT方法,包括自旋向上翻转TDDFT和自旋向下翻转TDDFT,可以用来计算和基态自旋多重度不同的激发态。

常用关键词

Imethod 参数类型:整型

  • 默认值:当参考态为RHF/RKS时为1,否则为2

  • 可选值:1、2

指定基于哪种基态计算方法进行TDDFT计算。1为R-TDDFT, 基态为RHF/RKS参考态;2为U-TDDFT,基态为UHF/UKS参考态。其中自旋匹配X-TDDFT需要从ROKS/ROHF出发,采用U-TDDFT,利用imethod=2,itest=1,icorrect=1计算(见下)。该参数用户一般无需手动指定,程序会自动选取合理的默认值。注意对于U-TDDFT和X-TDDFT,程序只支持在阿贝尔点群下进行计算。

Isf 参数类型:整型

  • 默认值:0

  • 可选值:0、1、-1

控制是否进行spin-flip的TDDFT计算。0为no spin-flip(或称spin-conserving,计算磁量子数Ms与基态相同的激发态);1为spin flip up(计算Ms比基态大1的激发态);-1为spin flip down(计算Ms比基态小1的激发态)。一个特例是当imethod=1且isf=1时,程序计算的是三重态的Ms=0分量而非Ms=1分量,因此此时不能称该计算为spin-flip TDDFT计算,而仍应称之为spin-conserving R-TDDFT计算。注意当isf不等于0且imethod=2时,itda必须设为1。

Itda 参数类型:整型

  • 默认值:0

  • 可选值:0、1

控制是否使用Tamm-Dancoff approximation(TDA)。0为不使用TDA的TDDFT计算;1为TDA计算。

Ialda 参数类型:整型

  • 默认值:0

  • 可选值:0、1、2、3、4

指定TDDFT交换相关核。0为full non-collinear kernel;1为non-collinear ALDA kernel;2为no-collinear ALDA0 kernel;3为full non-collinear kernel,产生自旋平均密度;4为full collinear kernel。

对于isf=0的计算,ialda关键词不起作用。对于isf不等于0且参考态不是RHF/RKS的单点计算,ialda建议设为2,因为它的数值稳定性较默认的0更好。对于isf不等于0的TDDFT结构优化、TDDFT数值频率和NAC-TDDFT计算,ialda必须设为4(注意:这会引入近似,导致计算结果和ialda不等于4时的结果不可比,且精度较ialda不等于4时低。也就是说,isf不等于0时的TDDFT结构优化、TDDFT数值频率的计算结果是不能与TDDFT单点能结果互相比较的)。

Itest & icorrect 参数类型:整型

  • 默认值:0

  • 可选值:0、1

当Itest、icorrect参数均设置为1,imethod为2,且参考态为ROKS/ROHF时,程序做X-TDDFT计算。

iact & elw & eup 参数类型:整型,浮点型,浮点型

Iact=1,通过定义激发能量下限与上限,指定TDDFT求解某个能量窗口的激发态。Elw为浮点数,能量下限,单位eV;Eup为浮点数,能量上限,单位eV。

Idiag 参数类型:整型

  • 默认值:1

  • 可选值:1、2、3

指定TDDFT的对角化方法。1为基于Davidson方法的迭代对角化;2为完全对角化;3为iVI 对角化(不支持非阿贝尔点群)。

对于下述情况之一,建议用idiag=3:

  • X射线吸收/发射光谱等涉及很高的激发态的计算(详见iwindow关键词的相关说明);

  • 计算某个能量或波长范围内的所有激发态,并且要求既不多算该范围外的激发态,又不少算该范围内的激发态(详见iwindow关键词的相关说明)。

对于下述情况,建议用idiag=2:

  • 分子很小,且需要的激发态数目非常多,接近或等于分子占据轨道数和虚轨道数的乘积。

对于其余情况,建议用默认的idiag=1。

Aokxc 参数类型:Bool型

指定基于AO计算交换相关Kernel对TDDFT的Casida矩阵的贡献。对于AO-TDDFT计算,默认开启aokxc,因此此时无需指定aokxc。

Iguess 参数类型:整型

  • 可选值:10*x+y,其中x∈{0,1,2},y∈{0,1}

  • 默认值:对于使用阿贝尔点群的AO-TDDFT计算为20,其余情况下为0

控制TDDFT初始猜测波函数。X=0: 对角元猜测;X=1: 从文件读入初始波函数;X=2: 紧束缚近似猜测;Y=0: 不存储Davidson/iVI迭代中间过程向量;Y=1: 存储Davidson/iVI迭代中间过程向量。

Itrans 参数类型:整型

  • 可选值:0、1

  • 默认值:0

控制是否将自旋轨道基的激发态矢量转到自旋张量基。仅当参考态为ROKS,且后续不需要用 $resp 模块进行TDDFT梯度、激发态偶极矩等计算,也不需要计算NTO时,itrans才可设为1;其中,当参考态为ROKS且后续需要进行TDDFT-SOC计算时,itrans必须设为1。

Grimmestd 参数类型:Bool型

指定使用Grimme的sTDA或sTDDFT方法,其中当itda=0时,指定 grimmestd 表示使用sTDDFT方法;当itda=1时,指定 grimmestd 表示使用sTDA方法。sTDDFT和sTDA是近似求解TDDFT问题的方法,较MPEC+COSX快约10~100倍左右,但引入的误差也较大,对激发能引入的误差约为0.2 eV量级(相比之下MPEC+COSX引入的误差一般在0.01 eV以内),对于个别过渡金属体系可能达到1 eV量级。推荐用于100原子以上有机体系的pi-pi*激发态的计算,且常规TDDFT计算耗时或内存消耗过多的情况。目前程序支持计算sTDA、sTDDFT级别下的激发能、振子强度、NTO、SOC矩阵元等,支持所有纯泛函、杂化泛函(包括HF)以及wB97、wB97X、LC-BLYP、CAM-B3LYP几种范围分离泛函的sTDA、sTDDFT计算,但不支持计算sTDA、sTDDFT级别下的激发态梯度、激发态偶极矩和非绝热耦合矩阵元,也不支持配合isf=-1使用。

Grid 参数类型:字符串

  • 默认值:Medium

  • 可选值:Ultra Coarse、Coarse、Medium、Fine、Ultra Fine

指定DFT计算的格点类型。

Gridtol 参数类型:浮点型

  • 默认值:1.0E-4(对于meta-GGA为1.0E-6)

指定产生DFT自适应格点的截断阈值。该值越低,格点数越多,因此数值积分精度越高,但计算量也越大。

MPEC+COSX 参数类型:Bool型

指定利用多级展开库伦势(Multipole expansion of Coulomb potential, MPEC)方法计算J矩阵, COSX(Chain-of-sphere exchange)方法计算K矩阵。 在 tddft 模块中保留该关键词只是为了向下兼容,建议在 Compass 模块中设定该关键词。

Frzcore 参数类型:整型数组

指定每个不可约表示冻结多少个占据轨道(注意程序总是冻结该不可约表示下能量最低的占据轨道)。如不指定该关键词,则默认不冻结占据轨道(注意这和其他一些程序,如ORCA,是不同的)。例如以下写法表示冻结第一个不可约表示下的能量最低的20个占据轨道,以及第二个不可约表示下的能量最低的10个占据轨道:

$tddft
...
frzcore
 20 10
$end

Frzvirt 参数类型:整型数组

指定每个不可约表示冻结多少个虚轨道(注意程序总是冻结该不可约表示下能量最高的虚轨道)。如不指定该关键词,则默认不冻结虚轨道。

备注

冻结轨道的关键词主要在大体系计算中希望节省内存时有用,例如计算UV-Vis光谱可以考虑冻结所有原子的内层轨道,即不允许内层电子激发到虚轨道,引入的误差通常小于0.01 eV。冻结轨道对缩短计算时间也有一定帮助,但作用相对较小。此外注意,程序支持在冻结轨道的情况下计算激发能、振子强度、NTO、SOC矩阵元等,但不支持冻结轨道的情况下计算激发态梯度、激发态偶极矩和非绝热耦合矩阵元。

ECD 参数类型:Bool型

指定计算电子圆二色性谱。程序除每个激发态的跃迁电偶极矩以及振子强度以外,还输出每个激发态的跃迁磁偶极矩,以及长度表象、速度表象下的转子强度。

收敛控制关键词

Crit_e 参数类型:浮点型

  • 默认值:1e-7

指定TDDFT计算能量的收敛阈值(单位:Hartree)。

Crit_vec 参数类型:浮点型

  • 默认值:1e-5

指定TDDFT计算波函数的收敛阈值。

激发态数目控制关键词

Iroot 参数类型:整型

  • 默认值:10

  • 可选值:非零整数

当iroot>0时,表示每个不可约表示下计算iroot个根。当iroot<0时,表示所有不可约表示下总共计算|iroot|个根,由程序自动判断每个不可约表示下应该计算多少个根。注意对于简并的不可约表示,同一个态的不同简并分量按一个态处理,例如当分子存在二维表示,且iroot=3时,该不可约表示下会计算得到3个能量彼此不同的态。同义词:iexit。

Nroot 参数类型:整型数组

对每个不可约表示指定不同数目的根。如Nroot为5 1 3,表示计算5个属于第1个不可约表示的激发态,1个属于第2个不可约表示的激发态,和3个属于第3个不可约表示的激发态。如果同时指定iroot和nroot,nroot会被忽略。

Iwindow 参数类型:浮点数组

指定计算哪个能量/波长范围内的激发态。众所周知,当用户计算光谱时,一般关心的是计算某个能量/波长范围内的光谱,而不是计算前N个激发态。然而很多量化程序仅支持指定激发态的数目,因此用户不得不反复试错,逐渐加大激发态数目,直至激发态涵盖用户感兴趣的范围,这显然是极其费时费力的。而BDF则支持直接指定激发能/激发波长的范围,使用户无需浪费机时和精力调整激发态的数目反复重算。

Iwindow的下一行应当包含两个浮点数,表示能量/波长范围,此外后面还可以加一个单位(au/eV/nm/cm-1),当没有给定单位时,默认单位为eV。Iwindow一般建议结合iVI方法使用(idiag=3),此时程序可以确保计算出该能量/波长范围内的所有激发态,没有任何遗漏,同时又尽量不浪费时间在计算该范围以外的激发态上面,也即如果一个激发态尚未完全收敛,程序即已确定该激发态不属于用户指定的能量/波长范围,则程序不再继续收敛该态。例如以下输入表示计算激发能在1~5 eV之间的所有激发态:

$tddft
...
idiag
 3
iwindow
 1 5 eV
$end

当使用Davidson方法(idiag=1)时,iwindow关键词仍然可以使用:(注意以下算例没有写idiag关键字,这是因为Davidson方法是TDDFT模块默认的对角化方法)

$tddft
...
iwindow
 1 5 eV
$end

此时输入的1(eV)将被忽略,也即程序计算5 eV以下的所有激发态,而不管这些激发态是否高于1 eV。不仅如此,程序既不能严格保证计算出来的所有激发态都在1~5 eV内,也不能严格保证所有在1~5 eV内的激发态都会被计算出来,但这也意味着程序不需要花费额外的计算资源来保证没有遗漏任何0~5 eV以内的激发态,因此此时计算速度往往比同样iwindow的iVI计算要快。然而当能量区间的下限非常高时(比如在计算X射线吸收谱时),例如以下输入:

$tddft
...
iwindow
 300 305 eV
$end

则Davidson方法在计算0~300 eV的激发态上浪费的计算资源,将远大于其节省的计算资源,乃至导致Davidson方法对于该类情况完全无法使用。此时用户必须选择iVI方法。

提示

Iwindow不支持和idiag=2同时使用。

当指定iwindow时,iroot、nroot对程序计算的激发态数目没有影响。但对于既指定了iwindow又使用了iVI的计算,iroot、nroot对程序的内存分配仍然有一定影响;该情况下虽然程序一般会自动设定合理的iroot、nroot值,但极少数情况下程序设定值可能会不足,导致程序报错”too small iroot/nroot, require xxx, but only yyy provided”。此时代表程序在计算前低估了最终计算出的激发态数目,因此在计算前预先分配的内存不足。这种情况下用户应当用iroot或nroot将当前不可约表示下的激发态数目设为大于等于xxx的正整数,重新进行计算。

Maxld 参数类型:整型

iVI的展开空间的最大维度。一般情况下程序会自动选定合理的默认值,一般足够计算使用,但有极小概率会不足。若遇到程序报错”too small ld xxx, require yyy”,应将maxld设为大于等于yyy的正整数,重新进行计算。

波函数存储关键词

Istore 参数类型:整型

指定将波函数存储于编号为istore的文件中,以备其他计算使用。

激发组态打印输出控制

Nprt 参数类型:整型

指定在计算结束后只打印前nprt个激发态的信息。当用户不指定nprt或nprt大于等于用户计算的激发态总数时,程序打印所有激发态的信息。

Cthrd 参数类型:浮点型

指定打印绝对值大于cthrd的轨道激发信息。

TD-DFT/SOC和性质计算控制参数

Nfiles 参数类型:整型

读入nfiles个TDDFT先前计算的波函数,以进行SOC计算。

Isoc 参数类型:整型

  • 默认值:1

  • 可选值:1、2、3

指定TDDFT-SOC计算方法。1为仅闭壳层体系计算;2为一般的SOC计算;3为仅打印各个标量态之间的SOC耦合矩阵元,不对角化SOC Hamiltonian。

Ifgs 参数类型:整型

  • 默认值:0

  • 可选值:0、1

指定TDDFT-SOC计算是否包含基态。0为TDDFT-SOC计算不包含基态,此时无法得到基态和考虑了SOC的激发态(即旋量态)之间的跃迁偶极矩,因此无法绘制包含SOC校正的光谱,同时也无法计算基态的SOC校正,但仍可得到包含SOC校正的激发能;1为TDDFT-SOC计算包含基态,此时可以得到包含SOC校正的光谱,且可以计算基态的SOC校正,但此时纳入TDDFT-SOC处理的标量激发态的数目不宜过多(一般以10~100个左右为宜),否则会低估基态能量,从而高估激发能。

Imatsoc 参数类型:整型数组

指定需要计算的SOC矩阵元。

...
#SCF calculation for the singlet ground state S0.
$scf
spin
0
...
$end

#First TDDFT, singlets S1-S10.
$tddft
imethod
 1
isf
 0
iroot
 10
....
$end

#Second TDDFT, triplets T1-T10
$tddft
imethod
 1
isf
 1
iroot
 10
$end

$tddft
....
#如果imatsoc<0,所有的SOC矩阵元都会打印;
#如果imatsoc=0,不打印任何SOC矩阵元;
#如果imatsoc>0,打印imatsoc个矩阵元
imatsoc
 7              #表示计算7个SOC矩阵元(注:程序最多允许计算4000个SOC矩阵元),后面的7行指定要计算哪7个SOC矩阵元
0 0 0 2 1 1     #字符串“0 0 0”代表基态
0 0 0 2 1 2     #3个数字“i m n”代表第“i”次TDDFT计算,第“m”个不可约表示的第“n”个态
1 1 1 2 1 1     #计算矩阵<S1|HSOC|T1>
1 1 1 2 1 2
1 1 2 2 1 1
1 1 2 2 1 2
2 1 1 2 1 1
2 1 1 2 1 2
$end

Imatrsf 参数类型:整型

  • 默认值:0

  • 可选值:0、-1

指定在TDDFT-SOC计算里,计算标量态之间的跃迁偶极矩,imatrsf=-1可以打印所有标量态间的跃迁偶极矩。

Imatrso 参数类型:整型数组

指定打印考虑SOC之后的旋量态之间的跃迁偶极矩(以及对应的振子强度,和根据费米黄金规则计算得到的辐射跃迁速率常数)。

$TDDFT
...
Imatrso
#指定需要打印5组旋量态之间的跃迁偶极矩(注:程序最多允许计算4000个跃迁偶极矩),后面5行指定打印哪些旋量态之间的跃迁偶极矩
#如果这里指定-1,则后面无需写任何信息,程序逐对打印旋量态之间的跃迁偶极矩
#如果这里指定-2,则后面无需写任何信息,程序逐对打印所有基态旋量态和所有激发态旋量态之间的跃迁偶极矩,
#但不打印基态旋量态和基态旋量态之间,以及激发态旋量态和激发态旋量态之间的跃迁偶极矩。
5
1 1
1 2
1 3
2 3
2 4
$END

激发态性质分析

Ntoanalyze 参数类型:整型数组

自然跃迁轨道(Natrual transtion orbital - NTO)分析,指定对TDDFT计算的某些态做NTO分析。该功能仅支持阿贝尔点群。

$TDDFT
istore
1           #存储TDDFT波函数,以备后续使用。注:此处只能输入1,而不能输入其他数字,即便这不是该输入文件的第一个TDDFT计算也是如此
$End

$TDDFT
Ntoanalyze
2           #指定对两个态做NTO分析
1 3         #指定对第1和第3个激发态做NTO分析
$End

计算将NTO输出为Molden格式的文件。文件名为 bdftask.tdno_irepm_staten.molden,其中m,n的含义为第m个不可约表示的第n个根。

TRDDens 参数类型:Bool 输入激发态越迁密度到Cube文件。默认文件名为 bdftask.trd_irepm_staten.cube。其中m,n的含义为第m个不可约表示的第n个根。

DensCube 参数类型:Bool 输入基态和激发态密度到Cube文件。如果体系的基态时单重态态,计算将输出基态及激发态的密度到名为 bdftask.rho_irepn_singlet.cube 的文件。n表示第n个不可约表示。每个cube文件中有n个根的电子密度。如果基态是单重态,文件 rho_irep1_singlet 中有n+1个密度,前n个是第一个不可约表示(通常是恒等表示)的前n个激发态密度,第n+1个是体系基态的密度。

Cubexyz 参数类型:浮点数组 输入为3个浮点数,分别指定cube文件x、y、z方向格点的步长。

$TDDFT
istore
1           #存储TDDFT波函数,以备后续使用。注:此处只能输入1,而不能输入其他数字,即便这不是该输入文件的第一个TDDFT计算也是如此
$End

$TDDFT
TRDDens
Cubexyz
 0.2 0.2 0.2
$End

内存控制参数

Memjkop 参数类型:整型

控制积分直接的TDDFT计算J,K算符时的内存大小,输入类型为整数,单位为MW,即兆字符,每格字符长度为8个字节。如果分配的内存不存储所有的J、K算符,TDDFT将按照指定内存计算一次能存储的J,K算符数目,通过多次积分计算完成每次迭代对角化的所有J,K算符计算。多次积分计算将降低计算效率。

$TDDFT
memjkop
  2048          #指定TDDFT计算JK算符需要2048MW内存,即需要2*8=16G内存。
$End

Imemshrink 参数类型:整型

  • 默认值:0

  • 可选值:0、1

控制积分直接TDDFT计算J、K算符时,OpenMP并行对内存的使用方式。0为不降低内存使用量;1为降低OpenMP并行内存使用量,效率稍低。如果计算的分子体系特别大,要求的计算根数目特别多,memjkop参数无法再增大内存,使用这个参数比积分多次计算效率高。

溶剂化效应控制关键词

Solneqlr 参数类型:Bool型

指定进行线性响应非平衡溶剂化效应计算。

Soleqlr 参数类型:Bool型

指定进行线性响应平衡溶剂化效应计算。

Solneqss 参数类型:Bool型

指定进行态特定非平衡溶剂化效应计算。

Soleqss 参数类型:Bool型

指定进行态特定平衡溶剂化效应计算。

分子结构优化 - BDFOPT模块

BDFOPT模块是BDF程序的分子几何结构优化模块,可用来寻找能量极小点、过渡态、锥形交叉点等。与其他模块不同,包含bdfopt模块的输入文件,并不是按照模块的先后顺序线性执行的,详见“快速入门”部分结构优化相关章节。

Solver 参数类型:整型

  • 默认值:0

  • 可选值:0、1

指定几何结构优化使用的求解器。

  • Solver=0 ,BDF将使用外带的DL-Find优化器进行优化,该优化器支持在直角坐标或内坐标下,进行能量极小化、过渡态搜索、高阶鞍点搜索、锥形交叉点搜索、最小能量交叉点(MECP)搜索等。

  • Solver=1 ,BDF将使用自带的优化器进行优化。

如果在冗余内坐标下(参见 ICoord 关键词)进行能量极小化、过渡态搜索,建议使用 Solver=1

注意

由于DL-FIND与BDF默认的坐标转动有冲突,必须在 compass 模块中加上关键词 norotate 禁止分子转动,或用 nosymm 关闭对称性;对于双原子和三原子分子,只能用 nosymm 。此冲突今后会解决。

Imulti 参数类型:整型

  • 默认值:0

  • 可选值:0、1、2

用于圆锥交点(conical intersection;CI)、系间穿越(intersystem crossing;ISC)等的多态优化。目前仅支持DL-Find优化器。

  • Imulti = 0 ,不执行多态优化(默认)

  • Imulti = 1 ,用惩罚函数方法优化CI或ISC,不需要计算非绝热耦合或态间耦合梯度

  • Imulti = 2 ,用梯度投影方法优化CI或ISC,其中CI优化需要计算非绝热耦合(默认),ISC优化需要设定 Noncoupl 关键词,跳过态间耦合梯度计算。

Noncoupl 参数类型:Bool

这个关键词不执行态间耦合梯度计算,用于ISC优化。

Multistate 参数类型:字符串

  • 默认值:NONE

  • 可选值:NONE、2SOC、3SOC、…、9SOC、MECP、CI

指定多态计算的类型。支持DL-Find优化器和BDF自带的优化器。

  • NONE ,执行常规的单态优化或频率计算。 1SOC 是同义词。

  • 2SOC [ chi ],用多态自旋混合(MSSM)模型进行Truhlar等人建议的两态自旋混合模型 [80] 计算。通过模拟两个自旋态之间的自旋轨道耦合,得到自旋混合基态。支持结构优化和振动频率计算。

  • 3SOC [ chi ],用MSSM模型计算三个自旋态构成的自旋混合基态。类似地,有 4SOC [ chi ]、5SOC [ chi ]、等,最多支持九个自旋不同的态构成的自旋混合态。

  • MECP ,优化两个态之间的最低能量交叉点(MECP);暂不支持

  • CI ,优化两个态之间的锥形交叉点(CI);暂不支持

chi 是可选的旋轨耦合常数的经验值(单位: \(\rm cm^{-1}\) );如果不提供,采用默认值 400。

  • 对于3d元素体系, chi 建议取值50至400。一般来说结果对取值不敏感 [87] ,但成键非饱和的3d元素体系最大可以取到1800 [80]

  • 对于4d元素体系, chi 可以取50至800,但成键非饱和的4d元素体系最大可以取到2000。

  • 对于5d元素体系, chi 可以取500至3000,建议值2500 [80] 。 如果涉及成键非饱和的5d元素,MSSM模型的能量可能不可靠,建议在优化的驻点结构上用二分量或四分量相对论方法进行单点能校正。

  • MSSM模型不适用于锕系以及更重元素的体系。

Maxcycle 参数类型:整型

指定最大优化步数。对于DL-Find优化器,默认值为50;对于BDF优化器,默认值为max(100, 6*原子数)。

TolGrad 参数类型:浮点型

指定均方根梯度(RMS Gradient)的收敛标准,单位Hartree/Bohr。对于DL-Find优化器,默认值为2.D-4;对于BDF优化器,默认值为3.D-4。该参数同时还将梯度的最大分量(Max Gradient)的收敛标准设为TolGrad的1.5倍。

TolEne 参数类型:浮点型

  • 默认值:1.D-6

指定结构优化相邻两步能量变化的收敛标准,单位Hartree。该参数仅对DL-Find优化器有效。

TolStep 参数类型:浮点型

  • 默认值:1.2D-3

均方根步长(RMS Step)的收敛标准,单位Bohr。该参数仅对BDF优化器有效。该参数同时还将步长的最大分量(Max Step)的收敛标准设为TolStep的1.5倍。

IOpt 参数类型:整型

  • 默认值:3

  • 可选值:3、10(当Solver=1时);0、1、2、3、9、10、11、12、13、20、30、51、52(当Solver=0时)

指定优化目标。对于DL-Find优化器,该参数的意义与DL-Find的IOpt参数意义相同,其中常用的有3(L-BFGS)和10(P-RFO); 对于BDF优化器,仅支持其中的2个IOpt值,IOpt=3(优化极小值点)和IOpt=10(优化过渡态)。

Trust 参数类型:浮点型

  • 默认值:0.3

  • 可选值:非零实数

建议范围:0.005 ~ 0.5或-0.5 ~ -0.005

指定优化的置信半径(trust radius)。当置信半径r设定为正数时,程序的初始置信半径将设为r,但在随后的结构优化步骤中可能会视优化情况而动态地增加或减少置信半径。当置信半径r设定为负数时,程序的初始置信半径将设为|r|,且随后的结构优化步骤中保证置信半径不会超过|r|。

Update 参数类型:整型

  • 默认值:对于极小值点优化为3,对于过渡态优化为2

  • 可选值:0、1、2、3、9

指定几何优化过程中Hessian的更新方式。0为每步均重新计算数值Hessian;1为Powell更新法(仅DL-Find支持);2为针对过渡态的Bofill更新法;3为指定L-BFGS更新法(优化器为DL-Find),否则指定BFGS更新法;9为针对极小值点的Bofill更新法。如选择0以外的值,则程序将在几何优化的第一步构造基于分子力场的初始Hessian。

ICoord 参数类型:整型

  • 可选值:0、1

本参数指定几何优化使用的坐标类型。如ICoord=0,采用直角坐标;如ICoord=1,采用冗余内坐标。对于DL-Find优化器,默认值为0;对于BDF优化器,默认值为1,且不支持1以外的值。

ILine 参数类型:整型

  • 可选值:0、1

本参数指定是否在几何优化过程中进行线性搜索;如不进行线性搜索,则只进行二次搜索。ILine=0表示不进行线性搜索,否则表示进行线性搜索。对于DL-Find优化器,默认值为0;对于BDF优化器,默认值为1。

Frozen 参数类型:整数数列

本参数指定进行笛卡尔坐标约束性优化(constrained optimization),即在约束一个或多个原子的笛卡尔坐标的情况下,优化分子其余的自由度。该关键词后面的第一行应是一个整数,表示约束的数目,设其为N;第2行到第N+1行,每一行分别由2个整数组成,其中第一个是待冻结的原子编号,第二个的允许取值及其意义为:

  0: 不冻结(默认值)
 -1: 冻结该原子的x、y、z坐标
 -2: 冻结该原子的x坐标
 -3: 冻结该原子的y坐标
 -4: 冻结该原子的z坐标
-23: 冻结该原子的x、y坐标
-24: 冻结该原子的x、z坐标
-34: 冻结该原子的y、z坐标

其中当使用BDF优化器时,该数字仅允许取0或-1。

备注

程序冻结的是用户指定的各原子之间的相对笛卡尔坐标,原子的绝对笛卡尔坐标仍可能因为分子标准取向的变化而变化。

Constrain 参数类型:整数数列

本参数指定进行约束性优化(constrained optimization),即在约束一个或多个原子的笛卡尔坐标、键长、键角或二面角的情况下,优化分子其余的自由度。目前本参数仅支持BDF优化器。该关键词后面的第一行应是一个整数,表示约束的数目,设其为N;第2行到第N+1行,每一行分别由1~4个整数组成。如某一行有1个整数,表示原子编号为该整数的原子的笛卡尔坐标被冻结;如某一行有2个整数,表示原子编号为这2个整数的原子之间的键被冻结;如某一行有3个整数,表示原子编号为这3个整数的原子之间的键角被冻结;如某一行有4个整数,表示原子编号为这4个整数的原子之间的二面角被冻结。

$bdfopt
Constrain
2
1 5        #1号原子-5号原子之间的化学键被冻结
1 4 8      #1号原子-4号原子-8号原子的键角被冻结
$end

此外,也可先将键长、键角或二面角设定为用户给定值,再进行冻结。例如以下输入表示冻结5号原子和10号原子的距离(即保持这两个原子的距离等于初始结构里的距离);与此同时将4号原子和5号原子的距离调整为1.5埃(而不管初始结构里这两个原子之间的距离是多少),然后冻结4号原子和5号原子的距离。

$bdfopt
Constrain
2
5 10
4 5 = 1.5 # 单位为Angstrom;注意即便初始坐标是以Bohr为单位输入的,这里的用户给定值的单位仍然为Angstrom
$end

备注

与其他某些量化程序不同,即使分子坐标是以直角坐标而非内坐标形式指定的,BDF仍然可以冻结分子的键长、键角或二面角。此外,当冻结笛卡尔坐标时,程序冻结的是用户指定的各原子之间的相对笛卡尔坐标,原子的绝对笛卡尔坐标仍可能因为分子标准取向的变化而变化。

Hess 参数类型:字符串

  • 可选值:only、init、final、init+final

指定计算Hessian。如为only,则仅计算Hessian而不做几何结构优化。如Hessian计算正常结束,程序将把Hessian对角化并进行热化学分析,给出振动频率、振动简正模、零点能、内能、焓、熵、Gibbs自由能等数据。如为init,则首先计算Hessian,然后以其为初始Hessian进行几何结构优化。该方法主要应用于过渡态搜索中(因为默认的基于分子力场的初始Hessian缺乏虚频)。程序不对该Hessian进行热化学分析。如为final,则首先进行结构优化,如结构优化收敛,则在收敛的几何结构上计算Hessian,并进行频率分析和热化学分析。在其他量化程序中,这种计算模式常被称为opt+freq。如为init+final,则首先计算初始Hessian,然后进行几何结构优化,优化收敛后再计算Hessian。程序仅对后一个Hessian进行频率分析和热化学分析,而不对前一个Hessian进行这些分析。

注意

BDF目前仅支持HF/DFT的解析Hessian,使用TDDFT激发态结构优化使用数值Hessian。如果要HF/DFT也强制使用数值Hessian,可以使用 UseNumHess 关键词。

UseNumHess 参数类型:Bool

强行计算数值Hessian,即使某个方法的解析Hessian可以获得。解析Hessian方法仅支持HF/DFT,DFT目前支持LDA、GGA、Hybrid和RS-Hybrid泛函。

ReCalcHess 参数类型:整型

  • 可选值:非负整数

指定在几何优化中,每隔多少步计算一次数值Hessian。如不提供该关键词,默认在几何优化过程中不计算数值Hessian(除非指定了Update=0)。

NumHessStep 参数类型:浮点型

  • 默认值:0.005

  • 可选值:正实数

建议范围:0.001 ~ 0.02

指定数值Hessian计算时,扰动分子的步长(单位:Bohr)。

备注

NumHessStep只能在已经用其他关键词(如Hess、ReCalcHess、RmImag、Update等)指定计算Hessian的前提下,改变扰动分子的步长,其本身并没有指定计算Hessian的作用。因此,如果只指定NumHessStep而不搭配其他和计算Hessian有关的关键词,则NumHessStep不会有任何效果。

ReadHess 参数类型:Bool型

指定读取$BDFTASK.hess作为结构优化的初始Hessian(其中$BDFTASK为当前输入文件的名字去掉后缀.inp得到的字符串)。$BDFTASK.hess可以由其他的频率计算任务产生,而不一定需要和当前结构优化计算的理论级别一致。

RestartHess 参数类型:Bool型

指定对频率任务进行断点续算。

RmImag 参数类型:Bool型

对于极小值点优化,该关键字表示如果优化收敛后的结构存在虚频,则自动尝试消除虚频直至分子没有虚频为止;对于过渡态优化,该关键字表示如果优化收敛后的结构存在多于1个虚频,则自动尝试消除虚频直至分子恰有一个虚频为止。需要注意的是,消除虚频不能保证成功,所以计算结束后用户仍然需要手动检查虚频数目是否正确。对于过渡态优化收敛后的结构没有虚频的情形,用该关键字也有一定概率可以找到虚频数目为1的结构,但是成功率较低。

NDeg 参数类型:整型

  • 默认值:1

  • 可选值:正整数

指定当前电子态的电子简并度,用于计算热化学分析中的吉布斯自由能。电子简并度等于空间简并度乘以自旋简并度,其中空间简并度等于当前电子态所属不可约表示的维数(当分子属于阿贝尔群时,空间简并度等于1),自旋简并度对于非相对论计算和标量相对论计算等于自旋多重度(2S+1),而对考虑了旋轨耦合的计算等于2J+1,其中J为当前电子态的总角动量量子数。注意即使对于电子简并度不等于1的体系,NDeg的默认值仍然是1,用户必须手动指定正确的NDeg值,这一点对于开壳层体系的吉布斯自由能计算尤其重要。

NTemp 参数类型:整型

  • 默认值:1

  • 可选值:正整数

用户提供的温度值的个数。这些温度值由下面的 Temp 定义。 NTemp 必须出现在 Temp 之前才有意义,否则只能为 Temp 提供一个温度值。

Temp 参数类型:浮点型

  • 默认值:298.15

  • 可选值:正实数

指定在什么温度下进行热化学分析(单位:K)。

NPress 参数类型:整型

  • 默认值:1

  • 可选值:正整数

用户提供的压强值的个数。这些压强值由下面的 Press 定义。 NPress 必须出现在 Press 之前才有意义,否则只能为 Press 提供一个压强值。

  • NTemp > 1, NPress = 1时,对给定压强下的各种温度进行热化学计算;

  • NTemp = 1, NPress > 1时,对给定温度下的各种压强进行热化学计算;

  • NTemp > 1, NPress > 1时,除了常温常压下的热化学计算之外,还对每一对温度值和压强值进行热化学计算,若 NTempNPress 不等,则用常温或常压补全。

Press 参数类型:浮点型

  • 默认值:1.0

  • 可选值:正实数

指定在什么压强下进行热化学分析(单位:atm)。

Scale 参数类型:浮点型

  • 默认值:1.0

  • 可选值:正实数

指定频率分析的校正因子。

Dimer 参数类型:Bool型

用DL-FIND外部库 [78] 的Dimer方法 [74, 75, 76] 优化过渡态。该方法只需要计算梯度,不需要计算Hessian。 如果修改Dimer方法的默认参数,需要改用下面的 Dimer-BlockEnd Dimer 输入块。

Dimer-Block 参数类型:多个关键词

Dimer方法的另一种指定方式。在 Dimer-Block 中允许修改以下关键词,以 End Dimer 结束。

NoInterpolation 参数类型:Bool型

执行旋转Dimer步骤之后,重新计算梯度,这样或许能略微减少结构收敛的步数,但是额外的梯度计算会耗费更多的计算时间。默认为用内插方法估算梯度。

Delta 参数类型:浮点型

  • 默认值:0.01

  • 可选值:正实数

两个像点的间距,原子单位,仅对直角坐标优化有效。

Crude 参数类型:Bool型

把均方根梯度收敛标准( TolGrad )从默认的2.0D-4提高到1/750 = 1.33D-3。如果仅关心过渡态的能量和定性的几何结构,或者想把优化的过渡态结构用其它方法做进一步优化,可以加上该选项。

NEB 参数类型:Bool型

用DL-FIND外部库 [78] 的CI-NEB方法 [77] 计算反应路径,其中能量最高点对应过渡态(如果路径存在能垒的话)。

CI-NEB计算需要提供两个端点的坐标,其中第一个端点(例如,可以是反应物或中间体)的初始结构来自 Compass 模块的几何结构, 而第二个端点(例如,可以是产物或另一个中间体)的初始结构在 Geometry2End Geometry2 输入块(见下)提供。 需要注意两套坐标的原子顺序必须一致。此外还可以提供中间像点的坐标(见 NFrame )。

如果修改CI-NEB方法的默认参数,需要改用下面的 NEB-BlockEnd NEB 输入块。

NEB-Block 参数类型:多个关键词

CI-NEB方法的另一种指定方式。在 NEB-Block 中允许修改以下关键词,以 End NEB 结束。

NImage 参数类型:整型

  • 默认值:5

  • 可选值:正整数

定义路径上的中间像点个数。在实际计算中,总像点数为MImage = NImage + 3,其中,1号、MImage-1号像点对应两个端点,2至MImage-2号为中间像点。 CI-NEB对能量最高的点执行CI步骤时,这个点的数据存放在MImage。

NEBk 参数类型:浮点型

  • 默认值:0.01

  • 可选值:正实数

定义CI-NEB的经验力常数。

NEBMode 参数类型:整型

  • 默认值:2

  • 可选值:0,1,2

两个端点的处理方式。包括:优化两个端点,达到能量最小化(0),仅在垂直于路径的方向优化两个端点(1),以及固定两个端点不做优化(2)。

Crude 参数类型:Bool型

把均方根梯度收敛标准( TolGrad )从默认的2.0D-4提高到1/750 = 1.33D-3。如果仅关心定性的结果,或 NImage 比较大时,可以加上该选项。

NFrame 参数类型:整型

  • 默认值:1

  • 可选值:1至 NImage +1 的正整数(CI-NEB计算)

Geometry2 中提供的坐标个数。 NFrame 必须出现在 Geometry2 之前才有意义,否则只能为 Geometry2 提供一个坐标。

Geometry2 参数类型:字符串数组

为CI-NEB方法指定第二个端点的几何结构,目前仅支持直角坐标(有待今后完善),单位:埃。如果输入坐标为原子单位,可以加上 Bohr,即 Geometry2 Bohr 。 本关键词以 End Geometry2 结束。 由于第二个端点与第一个端点的原子顺序必须一致,因此这里可以省略原子名称,仅输入直角坐标数据。

如果 NFrame > 1,可以在 Geometry2 中为CI-NEB计算提供中间像点的结构,按照像点的编号排序,第二个端点的结构放到最后。

Hartree-Fock梯度 - GRAD模块

GRAD模块用于计算HF/MCSCF的解析梯度。

基本关键词

Nrootgrad 参数类型:整型

指定计算MCSCF的那个根的梯度。

Maxiter 参数类型:整型

指定CPMCHF的最大迭代次数。

IntCre 参数类型:整型

用于增加存储AO积分的内存大小为:intcre*256*1024*1024Bytes。

Ishell 参数类型:整型

Cutcpm 参数类型:浮点型

  • 默认值:1.D-6

指定求解CPMCHF方程的收敛阈值。

Printgrad 参数类型:整型

  • 可选值:0、3、>99

控制梯度打印。0为最小输出;3为输出单电子项对梯度的贡献;>99仅用于调试模式。

DFT/TDDFT梯度及响应性质 - RESP模块

resp模块用于计算DFT/TDDFT的梯度,TDDFT理论级别下的非绝热耦合矩阵元(包括基态-激发态之间的非绝热耦合矩阵元,和激发态-激发态之间的非绝热耦合矩阵元),以及激发态偶极矩等响应性质。

基本关键词

Iprt 参数类型:整型

控制打印输出级别,主要用于程序调试。

NOrder 参数类型:整型

  • 默认值:1

  • 可选值:0、1、2

几何坐标导数的阶数,可选值0、1和2。目前仅支持0和1,其中0表示计算不涉及对核坐标求导的响应性质,如激发态偶极矩;1表示计算解析梯度。尚不支持2(计算解析 Hessian)。本参数要求必须先设置Geom。

Geom 参数类型:Bool型

本关键词无需提供参数,需要与Norder关键词联用,用于指定计算几何坐标一阶或二阶导数。

可选值:1.梯度或fo-NACMEs;2.Hessian(正在开发中)

NFiles 参数类型:整型

对于TD-DFT响应性质计算,指定读取哪个$tddft块的计算结果;注意当该参数等于x时,并不简单代表读取第x个$tddft块的计算结果,而是指读取istore值为x的那个$tddft块的计算结果。例如对于某闭壳层分子的以下输入($compass、$xuanyuan、$scf略去):

$tddft
imethod
1
Nroot
1
istore
1
$end

$tddft
imethod
1
isf
1
Nroot
1
istore
2
$end

$resp
geom
imethod
2
nfiles
2            #计算最低三重激发态的梯度,而不是最低单重激发态的梯度
             #因为nfiles=2,而只有第2个$tddft块(最低三重激发态)的istore=2
$end

Imethod 参数类型:整型

  • 默认值:1

  • 可选值:1、2

指定进行DFT基态计算还是TD-DFT激发态计算。1为基态,如指定2,则为激发态计算。在较老的BDF版本中该关键词写作Method,目前程序既支持Imethod也支持Method,但是未来可能会只支持前者。

#计算第一个TD-DFT激发态的TD-DFT梯度
$tddft
Nroot
1
istore
1
$end

$resp
geom
imethod
2
nfiles
1
$end
#计算基态梯度
$resp
geom
$end

Ignore 参数类型:整型

  • 默认值:0

  • 可选值:-1、0、1

用于TDDFT梯度计算的数据一致性检查,主要用于调试程序。

-1:重新计算TDDFT的激发能,用于检查Resp和TDDFT模块对能量计算是否一致。仅供调试程序使用。

0: 检查Wmo矩阵是不是对称矩阵。理论上,Wmo矩阵应该是对称矩阵,但如果TDDFT或者Z-Vector迭代没有完全收敛,Wmo矩阵会表现出明显的不对称,此时程序报错退出,并告诉用户Wmo矩阵不对称的较可能原因是TDDFT没有完全收敛还是Z-Vector方程求解没有完全收敛。注意有时Wmo矩阵不对称也可能是用户某些关键词输入错误导致的。

1: 忽略Wmo矩阵对称性检查。仅当用户确认其设置的TDDFT和Z-vector收敛阈值足够严,不会对计算结果精度造成不可接受的影响,且输入文件各关键词输入正确,但程序仍然因对称性检查不通过而报错时,才应将ignore设置为1。

IRep & IRoot 参数类型:整型

这两个关键词指定计算哪个/哪些态的TD-DFT梯度或激发态偶极矩。分4种情况:

  1. 既指定IRep,又指定IRoot:如以下的输入

#计算第2个不可约表示(irrep)下的第3个根的梯度或偶极矩
irep
2
iroot
3
  1. 只指定IRep:计算该不可约表示下的所有根的梯度或偶极矩。

  2. 只指定IRoot:例如

#将所有不可约表示下计算的根按照能量从低到高排序,然后计算第3个根的梯度或偶极矩
iroot
3
  1. 两者都不指定:计算tddft得到的所有态的梯度或偶极矩。

JahnTeller 参数类型:字符串

对于具有一定对称性的分子,如果分子所属点群是高阶点群,则TDDFT结构优化可能会导致分子出现Jahn-Teller畸变,但畸变方向可能有多个。例如,假设一个具有Ih对称性的分子有一个三重简并的激发态T2g,则该态发生Jahn-Teller畸变后,几何结构的对称性可能会降低为D2h,D3d,D5d或这些群的子群。 因此在TDDFT结构优化中,从第二步优化开始分子结构的对称性可能会降低。 当Jahn-Teller畸变得到的点群不唯一时,可以用JahnTeller关键词指定具体的Jahn-Teller畸变方式。例如:

$resp
...
JahnTeller
 D(2h)
$End

上例指定当存在Jahn-Teller畸变且畸变方式不唯一时,优先选择畸变后结构属于D2h群的畸变方式。如果由群论可以推出该分子在当前电子态下不会发生Jahn-Teller畸变,或虽然会发生Jahn-Teller畸变但不会得到属于D2h群的结构,则程序会打印警告信息,并忽略用户输入。 如果当前分子会发生Jahn-Teller畸变,但用户没有指定JahnTeller关键词,则程序会在Jahn-Teller畸变时尽量保持分子的高阶对称轴。仍以上述Ih群的T2g态为例,若不指定JahnTeller关键词,则分子会畸变为D5d结构,因为只有这样才能保持Ih群的五重对称轴。

Line 参数类型:Bool型

执行resp进行线性响应计算。

Quad 参数类型:Bool型

指定resp进行二次响应计算。

Fnac 参数类型:Bool型

指定resp计算一阶非绝热耦合(first-oder noadibatic couplings)向量,需要与Single或者Double参数联用,分别指定计算基态-激发态、激发态-激发态非绝热耦合向量。

Single 参数类型:Bool型

指定计算基态-激发态非绝热耦合向量。

States 参数类型:整型数组

指定计算哪些态与基态的非绝热耦合向量。本参数是多行参数:

第一行:输入整数n, 指定要计算基态与n个激发态之间的非绝热耦合向量。

第二行至第n+1行,指定电子态,格式为 m i l 三个整数,m为先前的TDDFT计算istore指定存储的文件编号,i为第i个不可约表示,l是该不可约表示的第l个根。

Double 参数类型:Bool型

指定计算激发态-激发态非绝热耦合向量。

Pairs 参数类型:整型数组

指定计算哪两组激发态之间的非绝热耦合向量。本参数是多行参数:

第一行:输入整数n, 指定要计算n对激发态之间的非绝热耦合向量。

第二行至第n+1行,指定电子态,格式为 m1 i1 l1 m2 i2 l2 六个整数,每三个整数指定一个激发态。m1为先前的TDDFT计算istore指定存储的文件编号,i1为第i1个不可约表示,l1是该不可约表示的第l1个根。另三个整数同理。

Noresp 参数类型:Bool型

指定在Double和FNAC计算中忽略跃迁密度矩阵的响应项。推荐使用该关键词。

Grid 参数类型:字符串

  • 默认值:Medium

  • 可选值:Ultra Coarse、Coarse、Medium、Fine、Ultra Fine

指定DFT计算的格点类型。

Gridtol 参数类型:浮点型

  • 默认值:1.0E-6(对于meta-GGA为1.0E-8)

指定产生DFT自适应格点的截断阈值。该值越低,格点数越多,因此数值积分精度越高,但计算量也越大。

MPEC+COSX 参数类型:Bool型

指定利用多级展开库伦势(Multipole expansion of Coulomb potential, MPEC)方法计算J矩阵, COSX(Chain-of-sphere exchange)方法计算K矩阵。 在 resp 模块中保留该关键词只是为了向下兼容,建议在 Compass 模块中设定该关键词。

Solneqlr 参数类型:Bool型

指定进行线性响应非平衡溶剂化效应计算。

Soleqlr 参数类型:Bool型

指定进行线性响应平衡溶剂化效应计算。

Solneqss 参数类型:Bool型

指定进行态特定非平衡溶剂化效应计算。

Soleqss 参数类型:Bool型

指定进行态特定平衡溶剂化效应计算。

能量及电荷转移 - ELECOUP模块

ELECOUP主要功能有:

  1. 基于HF计算同一分子的两个电子态之间的耦合积分;

  2. 计算两个分子片之间的电荷迁移积分;

  3. 计算两个分子片激发态间的能量迁移积分。

备注

基于HF计算同一分子两个激发态之间耦合积分,需要使用ΔSCF方法,通常利用SCF模块中的mom功能。

Iprt 参数类型:整型

打印控制参数,仅用于调试程序。

UHF 参数类型:Bool型

两个电子态之间耦合积分基于UHF波函数。

Nexcit 参数类型:整型

指定每个分子激发态的数目。

GSApr 参数类型:Bool型

指定是否对基态近似处理。

计算电荷迁移积分关键词

Electrans 参数类型:整型数组

本参数是多行参数,用于指定若干对Donor与Acceptor分子轨道,计算它们之间的电荷迁移积分。格式如下:

第一行: 输入整数n,指定要计算n对轨道之间的迁移积分

第二行到第n+1行:输入三个整数 i j k, i为Donor的第i个轨道,j为acceptor的第j个轨道,参数k为1或者2,分别指定alpha轨道或beta轨道。

Dft 参数类型:字符串

指定计算电荷迁移积分使用什么交换相关泛函。如果不输入该参数,默认用与Kohr-Sham计算时相同的泛函。

定域化激发态

locales 参数类型:整型

指定获得定域化激发态的方法。

  • 默认值: 0

  • 可选值: 0, 1; 0 Boys定域化方法, 1 Ruedenberg 定域化方法

分子轨道定域化 - LOCALMO模块

LOCALMO模块用于产生定域化的分子轨道,包含了Boys,Pipek-Mezey,以及改进的Boys定域化等方法。localmo还用于为FLMO方法产生初始的分子片定域轨道。

基本控制参数

Boys 参数类型:Bool型

指定使用Boys定域化方法定域轨道。Boys是Localmo模块默认的方法。

Mboys 参数类型:整型

指定使用改进的Boys定域化方法,下一行为一个整数,指定改进Boys方法的指数因子。

Pipek 参数类型:Bool型

指定使用Pipek-Mezey定域化方法。默认用Mulliken电荷,如果设置了Lowdin参数,则Pipek-Mezey方法用Lowdin电荷而非默认的Mulliken电荷。本方法默认用雅可比旋转定域化轨道,如果需要指定用Trust-Region方法 ,需要使用关键词Trust。

Mulliken 参数类型:Bool型

指定Pipek-Mezey方法使用Mulliken电荷。默认选项。

Lowdin 参数类型:Bool型

参数指定Pipek-Mezey方法使用Lowdin电荷。

Jacobi 参数类型:Bool型

指定Pipek-Mezey方法利用雅可比旋转定域轨道。

Trust 参数类型:Bool型

指定Pipek-Mezey方法利用Trust Region方法定域轨道。

Hybridboys 参数类型:整型

可选值:-100、100

指定Pipek-Mezey或Boys定域化方法混合使用雅可比旋转与Trust Region方法定域轨道。默认不使用混合方法,如果加入了这个参数,下一行输入必须为整数。 -100: 仅将虚轨道先用雅可比旋转定域化100次或者定域化达到收敛阈值Hybridthre后,转换为Trust Region方法继续定域化。 100: 将占据轨道与虚轨道都先利用雅可比旋转定域化100次或者定域化达到收敛阈值Hybridthre后,转换为Trust Region方法继续定域化。

Hybridthre 参数类型:浮点型

指定混合定域化方法的转换阈值。

Thresh 参数类型:浮点型

指定定域化方法收敛的阈值,输入为两个浮点数。

Tailcut 参数类型:浮点型

  • 默认值:1.D-2

指定忽略FLMO尾巴的阈值。

Threshpop 参数类型:浮点型

  • 默认值:1.D-1

指定Lowdin布居的阈值。

Maxcycle 参数类型:整型

指定Boys定域化允许的最大循环次数。

Rohfloc 参数类型:Bool型

指定定域化ROHF/ROKS轨道。

orbital 参数类型:字符串

指定文件读入分子轨道。

$LocalMO
Orbital
hforb       # 指定从SCF计算存储的hforb读入轨道
$End

Orbread 参数类型:Bool型

指定从 BDF_TMPDIR 中的文本文件inporb读入分子轨道。

Flmo 参数类型:Bool型

指定投影LMO到pFLMO。

Frozocc 参数类型:整型

指定不定域化的双占据轨道数目。

Frozvir 参数类型:整型

指定不定域化的虚轨道数目。

Analyze 参数类型:Bool型

指定分析用户给定的定域轨道,计算占据-空轨道对的数目和MOS(Molecular Orbital Spread)。分析定域轨道需要从BDF_TMPDIR读入名为bdftask.testorb的文件,并进行轨道分析。这一轨道文件与SCF的bdftask.scforb格式相同,均为文本文件。

Iapair 参数类型:浮点型

指定统计占据-空轨道对重叠的阈值,默认仅统计重叠绝对值大于1.0×10 -4 的占据-空轨道对。

Directgrid 参数类型:Bool型

指定利用直接数值积分的方法计算占据-空轨道对的绝对重叠。

Nolmocls 参数类型:整型

指定不定域化SCF的占据轨道。

Nolmovir 参数类型:整型

指定不定域化SCF的空轨道。

Moprt 参数类型:整型

指定打印定域分子轨道的系数。

不同基组扩展轨道 - EXPANDMO模块

EXPANDMO模块用于将小基组计算的MO扩展为大基组MO,扩展的MO可用于SCF的初始猜测,也可用于一些双基组(Dual Basis)的计算。此外,expandmo还可以利用原子价活性空间(atomic valance active space),自动构建MCSCF计算的活性空间和初始猜测轨道。

Overlap 参数类型:Bool型

指定利用小基组与大基组的重叠积分扩展分子轨道。

Expandmo模块依赖文件如下:

文件名

描述

文件格式

$BDFTASK.chkfil1

小基组计算的Check文件

二进制

输入文件

$BDFTASK.chkfil2

大基组计算的Check文件

二进制

输入文件

inporb

小基组计算产生的MO文件

文本文件

输入文件

$BDFTASK.exporb

扩展的MO系数文件,存储在 BDF_WORKDDIR中

文本文件

输入文件

#用cc-pVDZ基组计算CH2分子,并扩展分子轨道系数到aug-cc-pVDZ基组,用于SCF计算的初猜
# First we perform a small basis set calculation by using CC-PVDZ.
$COMPASS
Title
  CH2 Molecule test run, cc-pvdz
Basis
  cc-pvdz
Geometry
C     0.000000        0.00000        0.31399
H     0.000000       -1.65723       -0.94197
H     0.000000        1.65723       -0.94197
End geometry
UNIT
  Bohr
Check
$END

$XUANYUAN
$END

$SCF
RHF
Occupied
3  0  1  0
$END

#Change the name of check file.
%mv $BDF_WORKDIR/ch2.chkfil $BDF_WORKDIR/ch2.chkfil1
#Copy converged SCF orbital to work directory inporb.
%mv $BDF_WORKDIR/ch2.scforb $BDF_WORKDIR/ch2.inporb

# Then we init a large basis set calculation by using aug-CC-PVDZ
$COMPASS
Title
  CH2 Molecule test run, aug-cc-pvdz
Basis
  aug-cc-pvdz
Geometry
C     0.000000        0.00000        0.31399
H     0.000000       -1.65723       -0.94197
H     0.000000        1.65723       -0.94197
End geometry
UNIT
  Bohr
Check
$END

Møller–Plesset二阶微扰 - MP2模块

Møller-Plesset二阶微扰理论计算模块,主要用于实现双杂化DFT计算。 对于基于积分非直接的对称匹配轨道SCF算法(见 Saorb 关键词),MP2支持RHF和UHF参考波函; 对于积分直接SCF算法(默认情况,见 Skeleton 关键词),MP2仅支持RHF参考波函。

Nature 参数类型:Bool型

计算约化密度矩阵并输出自然轨道。

Molden 参数类型:Bool型

输出自然轨道为molden格式文件。

Iprtmo 参数类型:整型

控制轨道输出打印模式。

Fss, Fos 参数类型:浮点型

  • 默认值:1.0

SCS-MP2以及某些双杂化泛函使用的自旋组分调节(spin component scaling)参数。程序在计算完MP2能量以后,会将其中的同自旋(same-spin)成分乘以Fss,将反自旋(opposite-spin)成分乘以Fos。

核磁屏蔽常数计算 - NMR模块

NMR用于计算分子的核磁屏蔽常数。

igiao 参数类型:整型

指定是否计算GIAO的核磁共振屏蔽常数,可以为0(不做GIAO计算)或1(做GIAO计算),默认为0,输入形式如下:

igiao
  1

icg 参数类型:整型

指定是否计算COMMON GAUGE(CG)的核磁共振屏蔽常数,可以为0(不做CG计算)或1(做CG计算),默认为0,输入形式如下:

icg
  1

igatom 参数类型:整型

指定COMMON GAUGE计算的规范原点位置,接受的输入为0,或1到原子个数的值,默认为0。当igatom为0时,COMMON GAUGE的规范 原点设定在空间坐标原点上,而当igatom为1到分子原子数的值时,设定规范原点在第igatom的原子中心上。输入形式如下:

igatom
  3      # 设定规范原点在第3个原子中心处

cgcoord 参数类型:实型3个数

指定COMMON GAUGE计算的规范原点位置到空间中某个坐标点上,输入坐标的默认单位是原子单位(即bohr,AU),其单位可由参数 cgunit 控制。

cgcoord
  1.0 0.0 0.0   # 输入为3个实型数,将规范原点置于空间坐标为(1.0,0.0,0.0)的点上

cgunit 参数类型:字符串

给出 cgcoord 参数的单位,默认为原子单位(即bohr,AU),可以通过输入angstrom,将单位改为埃。其他输入(如bohr,AU,等),坐标单位为原子单位.

cgunit
  angstrom      # cgcoord坐标的单位,默认为原子单位,当输入为angstrom时,规范原点坐标单位为埃
                # 其他输入(如bohr,AU),坐标单位为原子单位,输入不区分大小写

内禀反应坐标 - IRC模块

IRC模块用于生成反应路径。

常用关键词

ircpts 参数类型:整数

  • 默认值:50

  • 可选值:正整数

设定反应路径(每个方向)上要检查的点的最大数量

ircdir 参数类型:整数

  • 默认值:0

  • 可选值:1,-1

设定反应的方向,1代表的是前进方向,-1代表的是后退方向,0代表两个方向都进行模拟。

ircalpha 参数类型:浮点数

  • 默认值:0.1

  • 可选值:非负浮点数

缩放初始位移,初始位移与过渡态的Hessian有关,通过调整ircalpha控制IRC计算的步长。