摘要:Gaussian 09作业文件:本文主要讲解了Gaussian 09的作业(输入)文件格式、组成、内存控制、CPU控制、输出保存、多节点并行的控制等等。

1. Gaussian 09作业文件的准备方法

绝大部分的Gaussian 09作业文件可以通过GaussView来方便的生成,当然也可以通过文本编辑器来建立。

GaussView

图1. GaussView可以很方便的生成Gaussian的作业文件

图2是Windows版Gaussian 09界面下显示的作业编辑器界面,可以看到它可分为多个不同部分的内容,包括:link0, Route, Title与molecular Specification等等。这些内容与GaussView的编辑器参数相对应。

Gaussian 09 作业文件

图2. 一个典型的Gaussian作业(截图,并不完整),可以看到它包含了:Link0,Route,Title与molecular Specification等几个部分

Gaussian的作业输入文件通常保存为.com或.gjf后缀的纯本文件,可以用文本编辑器进行修改。

2. Gaussian 09作业文件的特点

Gaussian 09作业文件是纯文本文件,具有如下特点:

  • 自由格式、大小写不敏感的
  • 空格、Tab键,逗号或反斜杠(/)可以任意组合为一个隔断将一行内的各项分隔,多个空白符号被视为一个隔断
  • 感叹号(!)表示注释,可以出现与一行内的任意地方
  • 引用一个外部文件的语法为:@filename

比如,Gaussian 09的测试用算例test0000.gjf:

1
2
3
4
5
6
7
8
9
10
11
# SP, RHF/STO-3G punch=archive trakio scf=conventional
 
Gaussian Test Job 00
Water with archiving
 
0 1
O
H 1 0.96
H 1 0.96 2 109.471221
 
!上面一行为空白行

再比如Gaussian 09的测试用算例test0397.gjf却用了完全不同的风格(注意:节选,只展示部分代码):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
!%nproc=4
#p rb3lyp/3-21g force test scf=novaracc
 
Gaussian Test Job 397:
Valinomycin force
 
0,1
O,-1.3754834437,-2.5956821046,3.7664927822
O,-0.3728418073,-0.530460483,3.8840401686
O,2.3301890394,0.5231526187,1.7996834334
O,0.2842272248,2.5136416005,-0.2483875054
O,2.3870396194,3.3004808604,0.2860546915
O,3.927241841,1.9677029583,-2.7261655162
O,2.2191878407,-1.0673859692,-2.0338343532
O,4.209257915,-1.2459024314,-3.1616013359
O,1.7622263124,-1.2194205092,-5.8516071343
O,1.0363626567,3.1095923678,-3.7084594295
O,0.2486786219,0.966590651,-3.8828785542
O,-2.5586288262,-0.0906355161,-1.9360823389
O,-0.3281133832,-2.3890727819,0.2344263336
O,-2.5477902348,-2.7229175024,-0.3031393926
!此处省略了很多行
 
!上面一行为空白行

3. Gaussian 09作业文件的结构

Gaussian作业文件由5个空白行隔断的部分组成:

  • Link 0命令:以%开头,可以设置计算资源、进行文件控制以及其它的通用作业控制处理
  • Route 部分:以#开头,通过关键词/选项的组合来选用模型化学、计算类型以及其它作业选项
  • Title 部分:可以用来简述计算目的,Gaussian计算并不理会这个部分,只是将它在输出里打印出来.这个部分禁用下列字符:@ # ! – _ \ 等控制字符
  • 分子描述部分(Molecular Specifications):定义所研究的的分子体系
  • 其它输入部分: 某些作业需要,并非全部作业都要该部分

典型的一个作业文件,如下所示:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
%chk=water.chk
%mem=2GB
%nprocshared=2
#P HF/6-31G(d) opt=ModRedundant
 
Water geometry
Optimization with NBO
 
0 1
O  0.0   0.0   0.0
H  0.0   0.86  0.65
H  0.0  -0.86  0.65 
 
B 2 3 A
 
!上面空白行不可删除

其中:

  • 第1-3行: 以%开头,为Link0命令
  • 第4行: 以#开头,为Route部分
  • 第6-7行: 与Route间有一个空白行分隔,为Title部分
  • 第9-12行:为Molecular Specifications部分,与Titile部分有一个空白行分隔;该部分的第一行即第9行指定了体系的电荷与总的自旋多态性。
  • 第14行为额外输入部分(Additional Input Section)
  • 第15行为空白行,不可缺少

更多的例子,可以从Gaussian 09自带的测试文件里获取。

3.1 Link0 命令部分:作业控制

3.1.1 CPU控制: %NProcShared, %LindaWorkers, %UseSSH

请求双核共享内存并行:

1
%NProcShared=2

分布式内存处理,通过Linda跨节点并行,分别在节点node1,node2,node3请求1、2、4个处理器:

1
%LindaWorkers=node1,node2:2,node3:4

该%LindaWorkers将获得1+2+4=7个处理器计算资源。

组合上述的%NprocShared与%LindaWorkers在一起,获得14核计算资源:

1
2
%NProcShared=2
%LindaWorkers=node1,node2:2,node3:4

3.1.2 内存控制: %Mem

  • Gaussian通过设定%Mem的大小来分配内存进行计算
  • 比如,分配4GB的内存:

    1
    
    %Mem=4GB
  • 增加%Mem的值可以改善计算性能,Gaussian默认分配256MB内存来进行计算
  • 多核共享内存并行计算时,%Mem值被%NProcShared值放大进行高效计算
  • 1
    2
    
    %Mem=4GB
    %NProcShared=2

    注意:上述组合会请求共8GB的内存。

  • 分布式内存处理计算,每个Linda计算的CPU分配%Mem的内存
  • 1
    2
    
    %Mem=4GB
    %LindaWorkers=node3:4

    上述组合向node3请求了16G计算内存。

3.1.3 文件命名: %CHK, %RWF, %OldChk

检查点文件(Checkpoint file)是计算全程中间数据的存储容器,包含了计算过程与计算结束时的很多信息:

  • 几何
  • 分子轨道
  • 力常数

检查点文件包含的信息可以被不同的关键词去重启计算、或为新计算提供信息:

  • %oldchk=filename
  • freq=(restart,number)
  • geom=check
  • geom=allcheck
  • guess=read
  • opt=readfc

3.1.4 文件保存: %Save, %NoSave

Scratch file在计算中生成:

  • 检查点文件: filename[.chk]
  • 读-写文件(Read-write file): filename[.rwf]

[.chk],[.rwf]表示后缀.chk,.rwf是可有可无的,尤其是linux等unix类文件系统对后缀没有要求。

默认情况下scratch file存储于$GAUSS_SCRDIR目录,成功计算后会自动被删除。如果想保存,需要自定义存储文件:以全路径的方式添加对应的Link0命令即可:

1
%chk=path/filename[.chk]

命名过的scratch file可以用%NaSave自动删除。下面的例子,即使两个文件都显示的加以命名,但是仅检查点文件被保留下来:

1
2
3
%RWF=/tmp/my_molecule.rwf
%NoSave
%chk=my_molecule.chk

3.2 Route部分

Route部分由一组关键组成,这些关键词定义了进行什么样的计算,格式要求:

  • 必须以#开头
  • 大小写不敏感,没有顺序依赖
  • 关键词不可重复出现
  • 关键词的可选项用括号分组
  • 可以跨行写,意味着多行也是可以的
  • 关键词有简写的方式

关键词选项的格式:

  • keywork=option 或者 keywork(option)
  • keyword=(option1, option2, …)
  • keyword(option1, option2, …)
  • keyword(option1=value, option2, …)

尽管Route部分没有顺序依赖,但还是推荐下述格式:

1
# Method/BasisSet Keyword=option
1
# Method/BasisSet Keyword(option1=value, option2)

举例:

1
2
3
4
5
# SVWN5/3-21G Opt
#P MP2/6-31G9d) IRC(Forward, MaxPonits=20)
# TPSSTPSS/cc-pVDZ Integral(Grid=400440)
# CCSD/GenECP MaxDisk=50GB Opt(RCFC,TS)
# CBS-QB3

3.3 分子描述(Molecular Specifications)

分子描述由第一行的分子电荷(Molecular Charge)、总自旋多态性(Total Spin Multilicity)以及原子描述及原子核坐标组成:

  • 第一行为整数的电荷(charge)与自旋多态性(multiplicity, 2S+1)
  • 原子描述由元素符号、分子力场的原子类型及其偏电荷(partial charge),片段编号,PDB残基信息等组成
  • 核坐标有多种不同的格式呈现,也可以从检查点文件读入,或者是从GaussView搭建

3.4 额外的输入信息

许多作业类型与关键词需要其它输入信息,通常这些信息是附在分子描述之后,比如:

  • SCRF=Read
  • IRC=Report
  • GenECP
  • Pop=NBORead
  • Freq=ReadHindered
  • CASSCF=SpinOrbit

当这些额外信息输入需要写到作业文件里时,需要注意顺序以及空白行分隔问题,请按照Gaussian用户手册上的顺序表来写。
举个GenECP的例子吧:

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
%mem=24gb
%NprocShared=12
%chk=s0_td_triplet.chk
#p td(triplet) apfd/genecp integral=ultrafinegrid
 
  td(triplet) apfd/genecp 
 
0 1
 C                  0.72434200   -1.55556500   -1.05188100
 C                  1.56222000   -1.51980800   -2.17047400
 H                  1.86327500   -0.55771300   -2.57145300
 C                  1.63244000   -3.93306100   -2.29009300
 
                   [此处的前后有很多行被省略掉]
 
 H                 -2.97322100    4.36785100    2.76465800
 C                 -1.14500800    3.22577300    2.75958700
 H                 -0.69086600    3.73138700    3.60323600
 C                 -0.46906000    2.21075300    2.11186300
 H                  0.52132600    1.89608800    2.42023000
 N                 -0.85920000   -1.62796200    1.06970900
 N                 -0.98196900    1.55753300    1.06979100
 N                  1.83862800    0.07126500    1.07165400
 Ir                -0.00000400    0.00028900   -0.02647500
 C                  2.00861200   -2.68229600   -2.78061200
 H                  2.65690600   -2.61967700   -3.65061700
 
Ir 0
LANL2DZ
****
C H N -O  0
6-311+G(2d,p)
****
 
Ir 0
LANL2DZ
[此处还有一空白行]

4. 其它

上述的Gaussian作业文件仅涉部分常见的内容,更多Gaussian作业文件与计算控制请参考:

https://gaussian.com/input

5. FAQ

问题1: 如何在Gaussian计算后输出wfn文件或如何将Gaussian计算的结果转化为WNF文件。

答:以甲醛的优化与频率计算为例来说明这个问题

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
%chk=D:\work\demo\wfn\wfn.chk
# opt freq hf/3-21g output=wfn
 
Structure: HCHO; Opt Freq at hf/3-21g level. 用output关键词加wfn选项可以让Gaussian输出WFN文件
同时, 需要在molecular specification结尾添加输出文件的名称(注意空白行)
 
0 1
 C                 -2.43735772    0.30751708    0.00000000
 O                 -1.21004072    0.30751708    0.00000000
 H                 -3.02950272    1.24692108    0.00000000
 H                 -3.02950272   -0.63188692    0.00003900
 
D:\work\demo\wfn\wfn.wfn
 
!上面有行空白,不要忽略
!感叹号是告诉Gaussian,这是注释行,请Gaussian在读入时忽略该行
!1214行为空白行
!13行为生成wfn文件的文件名与路径

6. 申明

如果发现错误请联系我们,我们很愿意在您的指导下改正:info@molcalx.com。