摘要:本教程为linux新手准备,提供了Linux下Gaussian 09的安装方法;Gaussian使用环境的初始化(Gaussian 09的shell计算环境)设置;以及Gaussian作业的提交。适用于没有Linux基础的同学学习如何在Linux下安装Gaussian软件,提交作业。本文还提供了NBO的安装,如何让G09能调用NBO6。

作者:肖高铿
联系:gkxiao@molcalx.com

一. Gaussian 09的安装

1. 单用户安装

注意:本教程需要一些必要的Linux基础,可以参考《Linux命令极简教程》,见:http://blog.molcalx.com.cn/2016/05/12/linux-command.html

本教程以linux为例子,假设使用光盘安装、bash环境下安装,还假设:
1)安装软件的用户名为tom;
2)tom的主目录(home目录)为:/home/tom;
3)Gaussian 09安装文件为foo.tgz;

第一步:申明g09root变量

[tom@linuxbox ~]$ export g09root=~

第二步:切换到$g09root目录,并且解压安装文件

[tom@linuxbox ~]$ cd $g09root

[tom@linuxbox ~]$ tar -zvxf foo.tgz

在/home/tom目录下生成一个新的目录:g09

第三步:完成安装

[tom@linuxbox ~]$ cd $g09root/g09

[tom@linuxbox g09]$ ./bsd/install

至此,已经完成安装,可以开始使用Gaussian了。

关于GaussView与Gaussian一起安装
方法:先安装Gaussian,再安装GaussView。假设GaussView安装文件为gv.tgz,在安装完Gaussian之后,键入如下命令:

[tom@linuxbox ~]$ cd $g09root

[tom@linuxbox ~]$ tar -zxf gv.tgz

总的来说,需要切换到$g09root目录,将GaussView解压到该目录即可。

2. 多用户共享安装

有的课题组希望安装一次,多个用户共享使用,请在单用户安装的基础上额外设置:用户群组与分配权限。

第一步:群组设置

假设:gaussian群组(group)用户都可以使用gaussian,我们需要先将需要使用Gaussian的用户(tom,kim)预先添加到gaussian群组里。

建立gaussian群组:

[root@linuxbox tom]# groupadd gaussian

将用户tom加入到gaussian群组:

[root@linuxbox tom]# groupmems -g gaussian -a tom

同理,希望另一个用户kim也能使用tom安装的Gaussian的话,需要将kim也添加到gaussian用户组:

[root@linuxbox tom]# groupmems -g gaussian -a kim

第二步:给g09目录添加gaussian群组用户的权限

[root@linuxbox tom]# cd $g09root

[root@linuxbox tom]# chgrp -R gaussian g09

第三步:用户同步(仅限集群里安装)

集群安装最常见的问题是权限设置不成功,主要体现为:单节点组用户执行没问题,但在另一个计算节点上组用户计算失败,不能并行或没有读、执行的权限。请系统管理员做一个用户数据同步即可,因为新增的用户属性需要同步之后计算节点才能知道。

二. Gaussian 09的环境变量

Gaussian 09使用前需设定使用环境,先申明g09root与GAUSS_SCRDIR两个变量。

1. g09root与GAUSS_SCRDIR环境变量的申明

如果之前尚未建立tmp目录,先用mkdir命令建立tmp目录:

[tom@linuxbox ~]$ mkdir $g09root/tmp

设定环境变量:

[tom@linuxbox ~]$ export g09root=~

[tom@linuxbox ~]$ export GAUSS_SCRDIR=$g09root/tmp

2. 加载g09的其它环境变量:

[tom@linuxbox ~]$ source $g09root/g09/bsd/g09.profile

简便的方法是,将g09root与GAUSS_SCRDIR变量申明加入到文件g09_env.sh,每次运行G09前只需加载g09_env.sh就可以了。g09_env.sh的内容为:
#-----g09_env.sh Start-----
export g09root=~
export GAUSS_SCRDIR=$g09root/tmp
. $g09root/g09/bsd/g09.profile
#-----g09_env.sh End-----
每次,在使用高斯前先键入下列命令:

[tom@linuxbox ~]$ source g09_env.sh

可以将g09可执行文件目录添加到PATH里,并将下面内容添加到主目录的.bashrc里,实现打开shell可以直接使用Gaussian及其应用程序比如cubegen,cubman,formchk等:
#-----g09_env.sh Start-----
export g09root=~
export GAUSS_SCRDIR=$g09root/tmp
. $g09root/g09/bsd/g09.profile
export PATH=$PATH:$g09root/g09
#-----g09_env.sh End-----
#注意:要特别注意空格(" "),句点("."),主目录("~")与美元符("$")不要漏写了

使用cat命令,可以非常方便的将上述环境变量追加写到.bashrc文件里(不建议加到.bashrc里,尤其有多个Gaussian版本的时候):

[tom@linuxbox ~]$ cat g09_env.sh >> ~/.bashrc

退出shell,再重新登陆shell;或者source ~/.bashrc重新加载环境变量就可以直接使用g09命令。

三. 运行一个实例

假设该作业名称为test429.com,结果为test429.log

[tom@linuxbox demo]$ $g09root/g09/g09 < test429.com > test429.log

如果已经设置了PATH,可以直接键入g09命令:

[tom@linuxbox demo]$ g09 < test429.com > test429.log

Gaussian 09如果不设置输出文件的名称,默认为:作业名.log,所以上面的命令于下面的一样:

[tom@linuxbox demo]$ g09 test429.com

*Linda版并行的Gaussian09与普通版Gaussian(共享内存并行)版的安装没有区别。只是在通过HPC计算时因为作业管理系统的原因,在使用上要注意:作业管理系统(比如PBS,LSF,SGE)先获得计算资源,通过内置的变量获得节点名称传递给Gaussian就可以了;而单机共享内存并行不需要考虑节点名称。比如PBS类的作业管理系统,$PBS_NODEFILE给出当前作业$PBS_JOBID的节点名称,将节点名称赋值给变量GAUSS_WDEF就可以实现跨节点并行。

四. NBO6的安装

Gaussian 09内置的NBO为NBO3,需要另行安装NBO6,以便Gaussian 09D.01、E.01调用最新版本NBO6。安装流程如下:

1. 解压NBO6

[gkxiao@molcax apps]$ tar -zvxf nbo6.0-bin-linux-x86.tar.gz

2. 编辑bin目录里的gaunbo6脚本(bin/gaunbo6): 修改INT与BINDIR两个变量

修改前:

1
2
    set INT    = i4
    set BINDIR = ~/nbo6/bin

修改后:

1
2
    set INT    = i8
    set BINDIR = /public/apps/nbo6/bin

因为我用的G09是64BIT的Linux操作系统,因此INT设为i8;又因为我的NBO6安装在/public/apps下,所以BIBDIR设置为/public/apps/nbo6/bin。请您根据自己的具体情况修改这两个变量。

3. 将nbo6/bin添加到PATH以便G09调用

[gkxiao@molcax apps]$ export PATH=$PATH:/public/apps/nbo6/bin

你也可以将这个PATH合并到G09的环境变量里:

#-----g09_env.sh Start-----
export g09root=~
export GAUSS_SCRDIR=$g09root/tmp
. $g09root/g09/bsd/g09.profile
export PATH=$PATH:$g09root/g09:/public/apps/nbo6/bin
#-----g09_env.sh End-----
#注意:要特别注意空格(" "),句点("."),主目录("~")与美元符("$")不要漏写了

4. 在Gaussian 09中使用NBO6

现在可以使用NBO6了,更多算例参见:nbo6/tests/gaussian

算例demo.com,内容如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
#P opt apfd/6-311+g(2d,p) pop=nbo6read
 
 demo
 
0  1
C           1.06323        -0.07720        -0.00648
H           2.15543        -0.07720        -0.00648
H           0.69917         0.80230         0.52910
H           0.69916        -0.98077         0.48740
H           0.69916        -0.05312        -1.03593
 
$nbo  $end
!此处为一空白行!

开始计算:

[gkxiao@molcax apps]$ g09 demo.com

计算完毕,出现典型的NBO6表格,大约如下:

NBO 6 output