输入¶
架构¶
ORCA的输入文件有自己的体系,其主要包括了三个部分:
先来看一个简单的输入文件:
可以注意到其中的三个part,第一行是关键字,用于指定计算方法,计算任务之类的,第二个part是模块,可以执行更加详细的设定,使用%开始,使用end结尾,最后一个部分是是系统的坐标以及通过一个 %coords 块提供的电荷和多重性,通常用*作为开始和结尾.
ORCA中的注释和py的语法一样,都是使用#开头.
详细的架构可以被总结为:
#井号后的内容是注释,你可以想写什么写什么
! {Keywords} #控制了方法、基组、工作类型
! moread #备选项:让程序从已有的分子轨道开始计算需要%moinp关键词
%moinp “MyInp.gbw” #备选项:在此处输入已有的轨道信息
%maxcore 4096 #备选项:以MB为单位,限制使用内存的大小,一般执行大型任务需要预分配较多的内存
# %base “MyBaseName” #备选项:规定临时文件的文件名 通常用不到
* xyz {Charge} {Mult} #输入坐标类型,电荷和自旋多重度
C 1.23 16.481 -9.87 #笛卡尔坐标的默认单位是埃
* #坐标输入区结束
$new_job
#可以新建一个任务,以此类推
坐标输入¶
输入的坐标使用xyz格式和int格式,支持笛卡尔坐标输入和z-matrix输入,其输入框架为:
* int {charge} {multiplicity}
AT NA NB NC R A D
*
缩写 含义
AT 原子种类
NA 距离
NB 角度
NC 二面角
R 实际距离
A 角度制角度
D 角度制二面角
坐标输入的第一行首先指明文件输入的类型,其次再输入分子的电荷数和自旋多重度
也可以直接从外部的.xyz文件中读取坐标,那么输入文件中的坐标设置就被简化为一行:
* xyzfile Charge Multiplicity Filename # 把这个filename换成你自己的文件名
* gzmtfile 1 2 mycoords.gzmt # 使用z-matrix的坐标文件是.gzmt,前面的指令也要同步修改.
使用$new_job指令可以创建一个新的任务,这个新任务可以继承上一个任务的坐标,所以坐标设置的时候只需要* xyzfile {charge} {multiplicity}就好了,当然这个任务算别的分子就另说.
通过执行H2O的结构优化计算(单点能计算不会产出xyz文件),orca会自动产生计算完毕的xyz文件,我们来看看这个文件的格式:
3
Coordinates from ORCA-job test E -76.321272220539
H 0.00000000000000 -0.35931769820651 -0.03229300391205
O 0.00000000000000 0.24315066097084 0.72399177266480
H 0.00000000000000 1.11616703723567 0.30830123124724
orca在执行计算的时候会在当前目录(即orca inp > out inp所在的文件夹)下生成大量的缓存文件,一部分在计算完毕后会自动删除,没被删除的都会带有有用的信息,所以建议一个计算在一个文件夹内执行,便于不同任务之间的管理
key-words¶
第一行加!的就是关键字,可以用于指定计算方法和计算任务
例如我可以指定! HF执行scf计算,指定! DFT执行dft计算(事实上不需要指定!DFT,通常直接交换关联泛函,例如!B3LYP,这相当于会默认使用DFT计算),以及一些post-HF的计算方法,例如! MP2 ,! CCSD(T)之类的,大量的计算方法关键字可以在文档中找到,例如下面就是一个简单的CCSD(T)计算输入文件,并且作为一款成熟的量子化学软件,里面有大量的高精度计算方法,选择种类非常多.
除了指定计算方法,还可以指定计算任务,例如OPT就是结构优化(orca的结构优化速度还是相当可以的),MD就是分子动力学模拟
Input Blocks¶
输入块就是我们执行更加精细设置的地方,在这里我们可以决定是否导入某些模块并且对模块进行设置和操作,其语法一般为%开始 end结尾
常用的block就是basis模块,可以对基组进行设定,
BasisSet=
def2-SVP, def2-TZVP, def2-TZVPP, def2-QZVPP,
ma-def2-SVP, ma-def2-TZVP, ma-def2-TZVPP, ma-def2-QZVPP,
cc-pVnZ, aug-cc-pVnZ, cc-pCVnZ, aug-cc-pCVnZ (n= D,T,Q,5,6)
其中ma-def2和aug-cc分别是加入了扩展函数和弥散函数的的基组,可以更好的描述弱相互作用.
更多的基组参见ORCA的文档,其支持的基组种类非常多.
ORCA给的一个完整的基组设定为:
%basis
Basis "Def2-TZVP" # The orbital expansion basis set
AuxJ "Def2/J" # RI-J auxiliary basis set
AuxJK "Def2/JK" # RI-JK auxiliary basis set
AuxC "Def2-TZVP/C" # Auxiliary basis set for correlated
# calcualtions, e.g. RI-MP2
CABS "cc-pVDZ-F12-OptRI" # complementary auxiliary basis set
# for F12 calculations
DecontractBas false # if chosen "true" the program will
# decontract the orbital basis set
DecontractAuxJ false # if "true" - decontract the AuxJ basis set
DecontractAuxJK false # if "true" - decontract the AuxJK basis set
DecontractAuxC false # if "true" - decontract the AuxC basis set
DecontractCABS true # if "false" - do not decontract the CABS
Decontract false # if "true" - decontract all basis sets
end
其中包括主要基组,辅助基组(用于开启RI加速),以及两者之间相关的设置选项.
也可以自己定制基组,基组需要从外部文件中读入,在模块中增加这么一句话:%basis GTOName “MyGTOBasis.bas” end