跳转至

输入

架构

ORCA的输入文件有自己的体系,其主要包括了三个部分:

先来看一个简单的输入文件:

! HF def2-TZVP

%scf
   convergence tight
end

* xyz 0 1
C  0.0  0.0  0.0
O  0.0  0.0  1.13
*

可以注意到其中的三个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)计算输入文件,并且作为一款成熟的量子化学软件,里面有大量的高精度计算方法,选择种类非常多.

! CCSD(T) DEF2-SVP 
* xyz 0 1
  C  0  0  0
  O  0  0  1.13
*

除了指定计算方法,还可以指定计算任务,例如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-def2aug-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