- 可以是笛卡尔坐标(x,y,z)或内坐标(键,角度,二面角),也可以是xyz文件形式。
- 可用
%coords
标记的block来表示,也可用两个*
来封装,包含体系的电荷、多重度和原子坐标。
*下的三种坐标形式
1 | * CType Charge Multiplicity |
ctype
中可以是xyz
,int
或internal
,gzmt
笛卡尔坐标形式
默认是Ångström为单位,如果需要用
Bohrs
,需要在关键词中或者%coords
中指定Bohrs
,或者直接! Bohrs
eg:
1
2
3
4* xyz 1 2
C 0.0 0.0 0.0
O 0.0 0.0 1.1105
*
内坐标
1 | *int charge multiplicity |
- 角度单位是
degree
- NA= atom for distance NA-NB
- NB= atom for angle- this atom-NA-NB
- NC= dihedral angle- this atom-NA-NB-NC
- orca原子序数是从1开始计数的
eg:
1
2
3
4
5
6* int 0 1
C 0 0 0 0.0000 0.000 0.00
O 1 0 0 1.2500 0.000 0.00
H 1 2 0 1.1075 122.016 0.00
H 1 2 3 1.1075 122.016 180.00
*
笛卡尔坐标和内坐标混合使用
- 对原子使用
0 0 0
来代表是笛卡尔坐标,但是由于内坐标的第一个原子也是0 0 0
,因此第一个原子如果是笛卡尔坐标,需要使用1 1 1
- 内坐标和笛卡尔坐标可以以任意顺序,但是最好先用笛卡尔坐标固定前三个原子的位置,这样才有唯一的框架。
1 | UKS B3LYP SV(P) TightSCF Opt SlowConv |
Gaussian Z-matrix format
eg:
1
2
3
4
5
6
7
8* gzmt 0 1
C
O 1 4.454280
Si 2 1.612138 1 56.446186
O 3 1.652560 2 114.631525 1 -73.696925
C 4 1.367361 3 123.895399 2 -110.635060
...
*
用block %coords
表示
1 | %coords |
文件形式输入
在ORCA的计算中使用关键词
!xyzfile
可以输出最后结果的xyz文件.xyz坐标为埃,文件中第一行是原子数量,第二行是描述行,接着是坐标
1
*xyzfile charge multiplicity myCoordinateFile.xyz
file.xyz是XMol格式的xyz文件,坐标为Ångström,两行标题包含原子数和描述行:
1
2
3
4
5
64
description line
C 0.000000000 0.000000000 0.000000000
O 2.362157486 0.000000000 0.000000000
H -1.109548835 1.774545300 0.000000000
H -1.109548835 -1.774545300 0.000000000
.gzmt通常在Gabedit,molden or Jmol中使用
1
* gzmtfile 1 2 mycoords.gzmt
注意,如果在同一个输入文件中指定了多个作业,那么新作业可以从以前的作业读取坐标。如果第四个参数没有提供文件名,则自动使用实际作业的名称。这样,优化和单点作业就可以非常方便地组合在一个简单的输入文件中。
1
2
3
4.. specification for the first job
! keywords
* xyzfile 1 2
特殊指定
Dummy atoms
- 使用“DA”作为符号并给适当的坐标。虚拟原子不是真正的原子,它们没有电子、原子核或基函数。它们通常用于定义约束。
1 | *xyz 0 1 |
ghost atoms
- 在一个原子的元素符号后面加上”:”使其成为ghost atoms,ghost atoms没有电子或原子核,但有指定的基函数。ghost atoms通常用于校正基集叠加误差(BSSE)。
1 | *xyz 0 1 |
点电荷
可以通过指定电荷和坐标以及使用符号
Q
添加。- 点电荷没有基函数,但有一个固定的电荷,可以是负的或正的,点电荷基本上与核电荷处理相同。
- 注意,当添加点电荷作为
Q
原子时,点电荷之间的自相互作用被计算并包含在最终能量中。
1
2
3
4
5
6
7
8*xyz 0 1
O 0.000000000 -0.005910000 0.000000000
H 0.765973000 0.587955000 0.000000000
H -0.765973000 0.587955000 0.000000000
Q -0.834 1.374158484 -2.145897424 0.000000000
Q 0.417 2.328008170 -1.973964147 0.000000000
Q 0.417 0.980357969 -1.270385486 0.000000000
*当存在许多点电荷时,例如在QM/MM计算中,从文件中读取点电荷通常更方便
- 注意,当通过点电荷文件读取点电荷来添加点电荷时,不会计算点电荷之间的自相互作用。
1
2
3
4
5
6%pointcharges "pointcharges.pc"
*xyz 0 1
O 0.000000000 -0.005910000 0.000000000
H 0.765973000 0.587955000 0.000000000
H -0.765973000 0.587955000 0.000000000
*pc文件格式:第一行是点电荷数目,后面是电荷和坐标()Å
1
2
3
43
-0.834 1.374158484 -2.145897424 0.000000000
0.417 2.328008170 -1.973964147 0.000000000
0.417 0.980357969 -1.270385486 0.000000000如果需要将外部电荷的自相互作用加进去,可以用
! DoEQ
关键词或者在%method
部分指定1
2
3
4% pointcharges "pointcharges.pc"
%method
DoEQ true
end
Embedding potential
计算簇模型有时候需要Embedding potential来解释边界处被忽略的排斥项
- 因为Embedding ECP被当作一个点电荷,所以要给定电荷。
- 也需要指定坐标,可选择给定ECP
- 一般来说应该执行的是单点计算,如果需要几何优化,需要coreless ECP中心设置明确的笛卡尔约束
1 | * ... |
这样一个没有核心的ECP中心的声明是在坐标部分通过在元素符号后面附加一个括号>
来实现的。注意,嵌入ECPs在ORCA中被视为点电荷。所以接下来要给出电荷。没有芯的ECP中心的坐标必须像往常一样指定,然后可能会有一个可选的ECP分配。一般来说,采用ECP嵌入程序的计算应该是单点计算。然而,如果需要执行几何优化,请确保为无芯ECP中心设置明确的笛卡尔约束。
None-standard 非标准同位素
在后面加M= Z=
Fragments
片段可以通过在元素符号后面的括号
(n)
中声明一个给定原子所属的片段号来方便地定义。片段的序号是从1开始的例子:利用片段将分子分成金属和配体的片段,打印每个MOs中金属和配体的占据
1 | %coords |
- 或者通过
%geom
部分指定:%geom
部分必须写在坐标之后
1 | *xyz -2 2 |
- 几何和碎片也可以通过外部文件指定,另外,如果没有指定,所有的原子都是fragment 1。
对称性和取向
需要将分子摆成某个取向计算,可以先在其他软件中摆好了再计算。但是几何优化中这个取向会发生变化(因为笛卡尔坐标到内坐标信息会丢失),因此最好是几何优化完后导出结构,摆成某个朝向再算单点。
【ORCA默认不使用对称性,使用对称性的计算需加!UseSym。】ORCA对分子对称性的利用有限,主要用于SCF/CASSCF中的轨道和状态分析,以及MRCI代码中的计算优势。使用
UseSym
关键字,可以让ORCA检测点群,对坐标进行对称化,改变原点,并产生适合于对称的轨道,用于SCF/CASSCF计算。目前只支持D2h和较低点群。为了使自动点群检测工作,分子需要被正确地对称,也可以更改点组检测的
treshold
,但是阈值过高可能会出现问题1
2! Usesym
%method SymThresh 5.0e-2 end有时候希望得到基态,但是初猜比较糟糕,计算会收敛到激发态,此时可以用:
- 当且仅当空轨道的能量低于已占据轨道时,每一个不可约表示中的占据数就会发生变化。
1
2%method SymRelax True
end
例子:计算水分子阳离子
输入:
1
2
3
4
5
6
7!SVP UseSym
* xyz 1 2
O 0.000000 0.000000 0.068897
H 0.000000 0.788011 -0.546765
H 0.000000 -0.788011 -0.546765
*程序将识别出C2v:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70------------------------------------------------------------------------------
SYMMETRY HANDLING SETUP
------------------------------------------------------------------------------
------------------
SYMMETRY DETECTION
------------------
Preparing Data ... done
Detection Threshold: SymThresh ... 1.0000e-04
Point Group will now be determined:
Moving molecule to center of mass ... done
POINT GROUP ... C2v
The coordinates will now be cleaned:
Moving to standard coord frame ... done
(Changed main axis to z and one of the symmetry planes to xz plane)
Structure cleanup requested ... yes
Selected point group ... C2v
Cleaning Tolerance SymThresh ... 1.0000e-04
Some missing point group data is constructed:
Constructing symmetry operations ... done
Creating atom transfer table ... done
Creating asymmetric unit ... done
Cleaning coordinates ... done
-----------------------------------------------
SYMMETRY-PERFECTED CARTESIAN COORDINATES (A.U.)
-----------------------------------------------
0 O 0.00000000 0.00000000 0.13019595
1 H 0.00000000 1.48912498 -1.03323662
2 H 0.00000000 -1.48912498 -1.03323662
------------------
SYMMETRY REDUCTION
------------------
ORCA supports only abelian point groups.
It is now checked, if the determined point group is supported:
Point Group ( C2v ) is ... supported
(Re)building abelian point group:
Creating Character Table ... done
Making direct product table ... done
----------------------
ASYMMETRIC UNIT IN C2v
----------------------
# AT MASS COORDS (A.U.) BAS
0 O 15.9990 0.00000000 0.00000000 0.13019595 0
1 H 1.0080 0.00000000 1.48912498 -1.03323662 0
----------------------
SYMMETRY ADAPTED BASIS
----------------------
The coefficients for the symmetry adapted linear combinations (SALCS)
of basis functions will now be computed:
Number of basis functions ... 24
Preparing memory ... done
Constructing Gamma(red) ... done
Reducing Gamma(red) ... done
Constructing SALCs ... done
Checking SALC integrity ... nothing suspicious
Normalizing SALCs ... done
Storing the symmetry object:
Symmetry file ... /tmp/tmp.Hph6rKnPOv/test-sym-h2o+.sym.tmp
Writing symmetry information ... doneSCF程序中的初猜将识别并冻结C2v点群的每个不可约表示中的占据数:
1
2
3
4
5
6
7
8
9
10
11The symmetry of the initial guess is 2-B1
Irrep occupations for operator 0
A1 - 3
A2 - 0
B1 - 1
B2 - 1
Irrep occupations for operator 1
A1 - 3
A2 - 0
B1 - 0
B2 - 1计算收敛得到:
1
Total Energy : -75.56349635 Eh -2056.18727 eV
轨道:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24----------------
ORBITAL ENERGIES
----------------
SPIN UP ORBITALS
NO OCC E(Eh) E(eV) Irrep
0 1.0000 -21.127828 -574.9174 1-A1
1 1.0000 -1.867577 -50.8194 2-A1
2 1.0000 -1.192140 -32.4398 1-B2
3 1.0000 -1.124658 -30.6035 1-B1
4 1.0000 -1.085063 -29.5261 3-A1
5 0.0000 -0.153303 -4.1716 4-A1
6 0.0000 -0.071325 -1.9408 2-B2
...
SPIN DOWN ORBITALS
NO OCC E(Eh) E(eV) Irrep
0 1.0000 -21.081197 -573.6485 1-A1
1 1.0000 -1.710192 -46.5367 2-A1
2 1.0000 -1.152853 -31.3707 1-B2
3 1.0000 -1.032555 -28.0972 3-A1
4 0.0000 -0.306683 -8.3453 1-B1
5 0.0000 -0.139418 -3.7937 4-A1
6 0.0000 -0.062261 -1.6942 2-B2
7 0.0000 0.374726 10.1968 3-B2
...
定义几何参数和扫描势能面
可以将坐标定义为参数或者一系列的值(此时会做势能面扫描)。在这种情况下,变量
RunTyp
被自动更改为Scan
。格式如下:1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16%coords
CTyp internal
Charge 0
Mult 1
pardef
rCH = 1.09;
ACOH = 120.0;
rCO = 1.35, 1.10, 26; # a C-O distance that will be scanned
end
coords
C 0 0 0 0 0 0
O 1 0 0 {rCO} 0 0
H 1 2 0 {rCH} {ACOH} 0
H 1 2 3 {rCH} {ACOH} 180
end
end参数也可以在笛卡尔坐标中实现
每个几何参数都可以通过封装函数大括号作为几何参数的函数来赋值,比如(注意orca的三角函数中是度数不是弧度)。几何参数的长度默认是Å,角度是°
在上面的例子中,变量
rCO
被定义为一个“扫描参数”。它的值将在从1.3到1.1的26步中改变,并且在每个点上进行单点计算。在运行结束时,程序将汇总每个点的总能量。就可以绘制出势能表面。如果不想用均匀的点,而是用自定义的,则可以:这样可以在接近最大值或最小值多设一些点,其他地方少一些1
rCO [1.3 1.25 1.22 1.20 1.18 1.15 1.10]; # a C-O distance that will be scanned
扫描参数最多可以有三个,可以构造三维势能面扫描
orca中参数也可以参数的参数,比如:
1
2
3
4
5
6
7
8
9
10
11
12
13
14%coords
CTyp internal
Charge 0
Mult 1
pardef
rCOHalf= 0.6;
rCO = { 2.0*rCOHalf };
end
coords
C 0 0 0 0 0 0
O 1 0 0 {rCO} 0 0
O 1 0 0 {rCO} 180 0
end
endorca的一些关于势能面扫描的设置:
1
2
3
4
5%method
SwitchToSOSCF true
ReducePrint true
ScanGuess MORead
endSwitchToSOSCF true表示
在第一个点后,换成SOSCF,如果起始轨道正确,SOSCF
可能比DIIS
收敛得更好。默认是false
ReducePrint true
表示减少第一个点后的输出,默认是true
- 第一点后可以改变初猜方法,默认是
MOread
,一般来说前一个点是下一个点的初猜,但是有些情况,可以使用更一般的初猜OneElec
单电子矩阵Hueckel
PAtom
PModel
MORead