Module Functions

See the flowchart of BDF modules and calculations for the invocation of each BDF module.

分子自动分片,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在计算时忽略分子对称性。

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型

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

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

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

Direct 参数类型:Bool型

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

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

Note

积分直接的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泛函,必须加入此参数。建议值如下:

Table 7 标准范围分离泛函中的 \(\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汇总的数据 [70] ; 从Ds元素开始,RMS核半径通过核素质量A估算(单位:费米):

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

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

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

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迭代。

Hint

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

  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单点计算所用的分子结构和当前计算不同,泛函也不相同)。

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、SG1

指定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

NoDiis 参数类型:Bool型

指定不使用DIIS加速SCF收敛。一般只有在SCF能量以较大幅度(> 1.d-5)振荡不收敛,且Damp和Vshift效果不明显时,才需要指定NoDiis。

MaxDiis 参数类型:整型

  • 默认值:8

指定DIIS方法的子空间维数。

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 一起使用。

基组线性相关检查关键词

Checklin 参数类型:Bool型

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

Tollin 参数类型:浮点型

  • 默认值:1.D-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、4的电子到不可约表示1的轨道7、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 参数类型:整型

指定固定的分子轨道。

含时密度泛函 - 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。

收敛控制关键词

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方法。

Hint

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大于等于用户计算的激发态总数时,程序打印所有激发态的信息。

Cdthrd 参数类型:浮点型

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

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矩阵元,后面的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组旋量态之间的跃迁偶极矩,后面5行指定打印哪些旋量态之间的跃迁偶极矩
#如果这里指定-1,则后面无需写任何信息,程序逐对打印旋量态之间的跃迁偶极矩
#如果这里指定-2,则后面无需写任何信息,程序逐对打印所有基态旋量态和所有激发态旋量态之间的跃迁偶极矩,
#但不打印基态旋量态和基态旋量态之间,以及激发态旋量态和激发态旋量态之间的跃迁偶极矩。
5
1 1
1 2
1 3
2 3
2 4
$END

自然跃迁轨道(Natural Transition Orbital, NTO)分析

Ntoanalyze 参数类型:整型数组

指定对TDDFT计算的某些态做NTO分析。该功能仅支持阿贝尔点群。

$TDDFT
istore
1           #第一个TDDFT完成激发态计算,并存储TDDFT波函数,以备后续使用
$End

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

内存控制参数

Memjkop 参数类型:整型

控制积分直接的TDDFT计算J,K算符时的内存大小,如果分配的内存不存储所有的J、K算符,TDDFT将按照指定内存计算一次能存储的J,K算符数目,通过多次积分计算完成每次迭代对角化的所有J,K算符计算。多次积分计算将降低计算效率。

Imemshrink 参数类型:整型

  • 默认值:0

  • 可选值:0、1

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

分子结构优化 - BDFOPT模块

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

Solver 参数类型:整型

  • 默认值:0

  • 可选值:0、1

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

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

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

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

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参数意义相同,用户可参见DL-Find手册;对于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。

Constrain 参数类型:整数数列

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

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

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进行这些分析。

ReCalcHess 参数类型:整型

  • 可选值:非负整数

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

NumHessStep 参数类型:浮点型

  • 默认值:0.001

  • 可选值:正实数

建议范围:0.001 ~ 0.01

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

ReadHess 参数类型:Bool型

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

RestartHess 参数类型:Bool型

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

NDeg 参数类型:整型

  • 默认值:1

  • 可选值:正整数

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

Temp 参数类型:浮点型

  • 默认值:298.15

  • 可选值:正实数

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

Press 参数类型:浮点型

  • 默认值:1.0

  • 可选值:正实数

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

Scale 参数类型:浮点型

  • 默认值:1.0

  • 可选值:正实数

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

Hartree-Fock Gradient - GRAD Module

The GRAD module is used to calculate the resolved gradients of HF/MCSCF.

Basic Keywords

Nrootgrad parameter type: integer

Specifies the gradient of that root for calculating MCSCF.

Maxiter Parameter type: integer

Specifies the maximum number of iterations of CPMCHF.

IntCre Parameter type: integer

The memory size used to increase the storage of AO points is: intcre*256*1024*1024Bytes.

Ishell Parameter type: integer

Cutcpm parameter type: floating point

  • Default value:1.D-6

Specifies the convergence threshold for solving the CPMCHF equation.

Printgrad parameter type: floating point

  • Selectable values:0、3、>99

Controls gradient printing. 0 is the minimum output; 3 is the contribution of the output single-electron term to the gradient; >99 is for debug mode only.

DFT/TDDFT Gradient and Response Properties - RESP Module

The resp module is used to calculate the gradient of the DFT/TDDFT, the non-adiabatic coupling matrix elements at the TDDFT theoretical level (including the non-adiabatic coupling matrix elements between the ground-state-excited state, and the non-adiabatic coupling matrix elements between the excited state-excited state), and the response properties such as the excited state dipole moment.

Basic Keywords

Iprt parameter type: integer

Controls the printout level, mainly used for program debugging.

NOrder parameter type: integer

  • Default value:1

  • Optional values:0、1、2

The order of the geometric derivative is currently supported0 only for (response properties that do not involve analytic gradients, such as excited state dipole moments) and1 (analytic gradients), but not yet for 2(analytic Hessian). This parameter requires that Geom be specified first.

Geom parameter type: Bool type

This keyword does not require parameters and needs to be used in conjunction with the Norder keyword to specify the first or second order derivative of the calculated geometric coordinates.

ptional values: 1. Gradient or fo-NACMEs; 2. Hessian (under development)

NFiles parameter type: integer

For TD-DFT response property calculations, specify which $tddft block to read; note that when this parameter is equal to x, it does not simply mean that the xth $tddft block is read, but that the $tddft block with an istore value of x is read. For example, the following input for a closed-shell molecule ($compass, $xuanyuan, $scf omitted)

$tddft
imethod
1
Nroot
1
istore
1
$end

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

$resp
geom
imethod
2
nfiles
2            #Calculate the gradient of the lowest triple excited state, not the gradient of the lowest single excited state
             #Because nfiles=2, only the second $tddft block (lowest triple excitation state) isore=2
$end

Imethod parameter type: integer

  • Default value:1

  • Optional values:1、2

Specifies whether to perform DFT ground state or TD-DFT excited state calculations. 1 is the ground state, if specified2 , then it is the excited state calculation. In older versions of BDF the keyword is written Method, currently the program supports both Imethod and Method, but in the future it may only support the former.

#Calculate the TD-DFT gradient of the first TD-DFT excited state
$tddft
Nroot
1
istore
1
$end

$resp
geom
imethod
2
nfiles
1
$end
#Calculate the ground-state gradient
$resp
geom
$end

Ignore parameter type: integer

  • Default value:0

  • Optional values:-1、0、1

Data consistency check for TDDFT gradient calculation, mainly for debugging programs.

-1:Recalculates the TDDFT excitation energy, used to check that the Resp and TDDFT modules agree on the energy calculation. For debugger use only.

0: Check if the Wmo matrix is a symmetric matrix. Theoretically, the Wmo matrix should be symmetric, but if the TDDFT or Z-Vector iterations do not converge completely, the Wmo matrix will show significant asymmetry, and the program will exit with an error and tell the user whether the Wmo matrix is asymmetric because the TDDFT did not converge completely or the Z-Vector equation did not converge completely. Note that sometimes the asymmetry of the Wmo matrix can also be caused by some keyword input errors by the user.

1: Ignore the Wmo matrix symmetry check. The ignore setting should only be1 set if the user has confirmed that the TDDFT and Z-vector convergence thresholds are tight enough to not affect the accuracy of the computation unacceptably, and that the keywords in the input file have been entered correctly, but the program still reports an error due to a failed symmetry check, the ignoore should be set to 1.

IRep & IRoot parameter type: integer

These two keywords specify which/which state(s) of TD-DFT gradient or excited state dipole moment is/are to be calculated. There are 4 cases:

  1. Specify both IRep and IRoot: e.g. the following input

#Calculates the gradient or dipole moment of the 3rd root under the 2nd irreducible representation (irrep).
irep
2
iroot
3
  1. Specify IRep only: Compute the gradient or dipole moment of all roots under this integrable representation.

  2. Specify IRoot only: for example

#All the roots under irreducible representation are sorted by energy from low to high, and then the gradient or dipole moment of the 3rd root is calculated
iroot
3
  1. Neither is specified: calculate the gradient or dipole moment of all states obtained by tddft.

JahnTeller Parameter type: String

For molecules with certain symmetries, TDDFT structure optimization may lead to Jahn-Teller distortion of the molecule if the point group to which the molecule belongs is a higher-order point group, but the distortion may have multiple directions. For example, assuming that a molecule with Ih symmetry has a triple-simplex excited state T2g, the symmetry of the geometry of this state may be reduced to D2h, D3d, D5d or subgroups of these groups after the Jahn-Teller distortion. Therefore, in the TDDFT structure optimization, the symmetry of the molecular structure may decrease from the second optimization step. When the point group obtained by Jahn-Teller distortion is not unique, the specific Jahn-Teller distortion can be specified by the JahnTeller keyword. For example,

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

The above example specifies that when there is a Jahn-Teller aberration and the aberration mode is not unique, preference is given to the aberration mode in which the aberrated structure belongs to the D2h group. If it can be deduced from group theory that the molecule will not undergo a Jahn-Teller aberration in the current electronic state, or that a Jahn-Teller aberration will occur but will not result in a structure belonging to the D2h group, the program prints a warning message and ignores the user input. If the current molecule will undergo a Jahn-Teller distortion but the user does not specify a JahnTeller keyword, the program tries to maintain the higher order symmetry axis of the molecule during the Jahn-Teller distortion. Still using the T2g state of the Ih group above as an example, if the JahnTeller keyword is not specified, the molecule will distort to a D5d structure because this is the only way to maintain the fivefold symmetry axis of the Ih group.

Line parameter type: Bool type

Perform resp for linear response calculation.

Quad parameter type: Bool type

Specify resp for secondary response calculation.

Fnac parameter type: Bool type

Specify resp to calculate the first-oder noadibatic couplings vectors, which need to be used in conjunction with the Single or Double parameters to specify the calculation of the ground-state-excited state and excited-state-excited state noadibatic couplings vectors, respectively.

Single parameter type: Bool type

Specify the calculation of the ground-state-excited state non-adiabatic coupling vector.

States parameter type: integer数组

Specifies which states are calculated for the non-adiabatic coupling vector to the ground state. This parameter is a multi-line parameter.

First line: Enter the integer n, specifying the non-adiabatic coupling vector between the ground state and the n excited states to be calculated.

The second line to line n+1 specifies the electronic state in the format of three integers m i l. m is the file number of the previous TDDFT calculation istore specified storage, i is the i-th integrable representation, and l is the l-th root of that integrable representation.

Double parameter type: Bool type

Specify the excited-state excited-state non-adiabatic coupling vector for calculation.

Pairs parameter type: integer数组

Specifies which set of two excited states to calculate the non-adiabatic coupling vector between. This parameter is a multi-line parameter:

First line: Enter an integer n, specifying that the non-adiabatic coupling vector between n pairs of excited states is to be calculated.

The second to n+1 lines specify the electronic states in the format m1 i1 l1 m2 i2 l2 six integers, with each three integers specifying an excited state. m1 is the file number of the storage specified by the previous TDDFT calculation istore, i1 is the i1st integrable representation, and l1 is the l1st root of that integrable representation. The other three integers are the same.

Noresp parameter type: Bool type

Specifies that the response term of the leap density matrix is ignored in Double and FNAC calculations. This keyword is recommended.

Energy and Charge Transfer - ELECOUP Module

Energy and Charge Transfer - ELECOUP Module:

  1. Calculating the coupling integral between two electronic states of the same molecule based on HF;

  2. Calculate the charge migration integral between two molecular sheets;

  3. Calculate the energy migration integral between the excited states of two molecular sheets.

Note

The HF-based calculation of the coupling integral between two excited states of the same molecule requires the use of the ΔSCF method, usually using the mom function in the SCF module.

Iprt parameter type: integer

Print control parameters for debugging programs only.

UHF parameter type: Bool type

The coupling integral between the two electronic states is based on the UHF wave function.

Nexcit parameter type: integer

Specify the number of excited states per molecule.

GSApr parameter type: Bool type

Specifies whether to approximate the base state processing.

Calculate charge migration integral keywords

Electrans parameter type: integer array

This parameter is a multi-line parameter that specifies a number of pairs of Donor and Acceptor molecular orbitals and calculates the charge migration integral between them. Format as follows.

First line: enter the integer n, specifying that the migration integral between n pairs of orbits is to be calculated

Line 2 to line n+1: input three integers i j k, i is the i-th track of Donor, j is the j-th track of acceptor, and parameter k is 1 or 2, specifying alpha or beta tracks, respectively.

Dft parameter type: String

Specifies what exchange-dependent general function is used to calculate the charge migration integral. If you do not enter this parameter, the same functional is used by default as when Kohr-Sham is calculated.

Localized excited states

locales parameter type: integer

Specify the method to obtain the excited state of the localization.

  • Default value: 0

  • Optional values: 0, 1; 0 Boys definite domain method, 1 Ruedenberg localization methods

Molecular orbital localization - LOCALMO module

The LOCALMO module is used to generate delocalized molecular orbitals and contains methods such as Boys, Pipek-Mezey, and a modified Boys delocalization. LOCALMO is also used to generate the initial molecular slice delocalized orbitals for the FLMO method.

Basic control parameters

Boys parameter type: Bool type

Specifies to use the Boys delocalization method to delocalize the track. boys is the default method for the LOCALMO module.

Mboys parameter type: Integer type

Specifies the use of the improved Boys delocalization method, the next row is an integer, and the exponential factor for the improved Boys method is specified.

Pipek parameter type: Bool type

Specifies to use the Pipek-Mezey delocalization method. The default is Mulliken charge, if the Lowdin parameter is set, then the Pipek-Mezey method uses Lowdin charge instead of the default Mulliken charge. This method defaults to the Jacobi rotation domainization track, if you need to specify the Trust-Region method, you need to use the keyword Trust.

Mulliken parameter type: Bool type

Specifies that the Pipek-Mezey method uses Mulliken charges. Default option.

Lowdin parameter type: Bool type

The parameter specifies that the Pipek-Mezey method uses the Lowdin charge.

Jacobi parameter type: Bool type

Specifies that the Pipek-Mezey method utilizes Jacobi rotational fixed-domain orbits.

Trust parameter type: Bool type

Specifies that the Pipek-Mezey method utilizes the Trust Region method for domaining tracks.

Hybridboys parameter type: Integer type

Selectable values:-100、100

Specifies that the Pipek-Mezey or Boys localization method mixes Jacobi rotation with the Trust Region method to localize the track. By default, the hybrid method is not used, if this parameter is added, the next input line must be an integer. -100: Converts the virtual orbit to the Trust Region method to continue domaining only after the virtual orbit has first been domained 100 times with Jacobi rotation or after the domaining has reached the convergence threshold Hybridthre. 100: Converts the occupied and virtual orbit to the Trust Region method to continue domaining after the occupied orbit has first been domained 100 times with Jacobi rotation or after the domaining has reached the convergence threshold Hybridthre.

Hybridthre parameter type: floating point

Specifies the conversion threshold for the hybrid localization method.

Thresh parameter type: floating point

Specify the threshold for the convergence of the fixed-domain method, the input is two floating-point numbers.

Tailcut parameter type: floating point

  • Default value: 1.D-2

Specifies the threshold value for ignoring FLMO tails.

Threshpop parameter type: floating point

  • Default value: 1.D-1

Specifies the threshold value for Lowdin placement.

Maxcycle parameter type: Integer type

Specifies the maximum number of cycles allowed for Boys domainization.

Rohfloc parameter type: Bool type

Specify the localized ROHF/ROKS orbit.

orbital parameter type: string

Specifies that the file is read into the molecular track.

$LocalMO
Orbital
hforb       # Specifies the hforb read-in track from scaf computing storage
$End

Orbread parameter type: Bool type

Specifies that the molecular tracks are read from the text file inporb in BDF_TMPDIR.

Flmo parameter type: Bool type

Specifies the projection LMO to pFLMO.

Frozocc parameter type: Integer type

Specify the number of double-occupied orbitals for indefinite domainization.

Frozvir parameter type: Integer type

Specify the number of virtual orbitals for indefinite domainization.

Analyze parameter type: Bool type

Specifies to analyze a user-given fixed-domain orbit, calculating the number of occupied-empty orbital pairs and MOS (Molecular Orbital Spread). To analyze the fixed domain orbits, a file named bdftask.testorb is read from BDF_TMPDIR and the orbits are analyzed. This orbital file is in the same format as SCF’s bdftask.scforb, both are text files.

Iapair parameter type: floating point

Specify the threshold value for counting the overlap of occupied-empty orbital pairs. By default, only occupied-empty orbital pairs with an absolute overlap value greater than 1.0×10 -4 are counted.

Directgrid parameter type: Bool type

Specifies the calculation of the absolute overlap of the occupied-null orbital pair using the direct numerical integration method.

Nolmocls parameter type: Integer type

Specify the occupancy track of the indefinite SCF.

Nolmovir parameter type: Integer type

Specifies the empty orbit of the indefinite SCF.

Moprt parameter type: Integer type

Specify the coefficients for printing the domain-definite molecular orbitals.

Different Basis Set Expansion Tracks - EXPANDMO Module

The EXPANDMO module is used to extend the MO of a small basis group calculation to a large basis set MO. The extended MO can be used for the initial guesses of the SCF and also for some Dual Basis calculations. In addition, EXPANDMO can automatically construct the active space and initial guess orbits for MCSCF calculations using the atomic valence active space.

Overlap parameter type: Bool type

Specify the expansion of molecular orbitals using the overlapping integrals of the small and large basis groups.

The Expandmo module dependency file is as follows:

filename

description

file format

$BDFTASK.chkfil1

The check file for the small basis set calculation

Binary

input file

$BDFTASK.chkfil2

The check file for the big basis set calculation

Binary

input file

inporb

The MO file produced by the small basis set calculation

text file

input file

$BDFTASK.exporb

The extended MO coefficient file is stored in BDF_WORKDDIR

text file

input file

#Calculate CH2 molecules with cc-pVDZ basis sets and extend molecular orbital coefficients to aug-cc-pVDZ group for initial guessing of SCF calculations
# 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 Second Order Perturbation - MP2 Module

Møller-Plesset second-order perturbation theory calculation module, mainly for implementing two-hybrid DFT calculations. MP2 supports both RHF and UHF reference wavefunctions for the integral undirected symmetric matched-orbit SCF-based algorithm (see Saorb keyword) and only RHF reference wavefunctions for the integral direct SCF algorithm (by default, see Skeleton keyword).

Nature parameter type: Bool type

Calculate the approximate density matrix and output the natural orbit.

Molden parameter type: Bool type

Output natural tracks as molden format files.

Iprtmo parameter type: Integer

Controls the track output print mode.

Fss, Fos parameter type: floating point

  • Default value:1.0

SCS-MP2 and the spin component scaling parameter used in some two-hybrid generalized functions. After calculating the MP2 energy, the program multiplies the same-spin component by Fss and the opposite-spin component by Fos.

Nuclear magnetic shielding constant calculation - NMR module

NMR is used to calculate the nuclear magnetic shielding constants of molecules.

igiao parameter type: Integer

Specify whether to calculate the NMR shielding constant for GIAO, either 0(do not do GIAO calculations) or 1 (do GIAO calculations), the default is 0 and the input form is as follows.

igiao
  1

icg parameter type: Integer

Specify whether to calculate the NMR shielding constant for COMMON GAUGE (CG), either 0(do not do CG calculations) or1 (do CG calculations), with the default being 0, entered in the following form.

icg
  1

igatom parameter type: Integer

Specifies the position of the canonical origin of the COMMON GAUGE calculation. The accepted input is either 0, or a value from 1 to the number of atoms, with the default being 0. When igatom is 0, the canonical origin of COMMON GAUGE is set at the origin of the spatial coordinates, while when igatom is a value from 1 to the number of atoms in the molecule, the canonical origin is set at the atomic center of the first igatom. The input form is as follows. .. code-block:: bdf

igatom

3 # Sets the specification origin at the center of the 3rd atom

cgcoord parameter type: real 3 numbers

Specifies the position of the canonical origin of the COMMON GAUGE calculation to a coordinate point in space. The default units for the input coordinates are atomic units (i.e. bohr, AU), whose units can be controlled by the parameter cgunit .

cgcoord
  1.0 0.0 0.0   # Enter 3 real numbers and place the canonical origin on a point with spatial coordinates of (1.0, 0.0, 0.0).

cgunit parameter type: string

Given the units of the cgcoord parameter, the default is atomic units (i.e. bohr, AU), which can be changed to angstrom by entering angstrom. For other inputs (e.g. bohr, AU, etc.), the coordinates are in atomic units.

cgunit
  angstrom      # The units of the cgcoord coordinates, which default to atomic units, and when the input is angstrom, the canonical origin coordinate units are angstroms
                # Other inputs (e.g. bohr, AU) have coordinate units in atomic units and inputs are not case-sensitive