Ubuntu 14.04 下成功安装 Gaussian 03(g03)、Gaussian 09(g09)和 GaussView 及常见错误解决

以下方法对 g03 和 g09 均可行。

一、解压

首先对文件进行解压缩。我的文件名是 G09.B01.LINUX_E64-930X.tgz,文件在桌面。实际操作时,请填入你对应的文件目录和文件名,可用 Tab 键补全。

tar -xvf Desktop/G09.B01.LINUX_E64-930X.tgz

注意:

  1. 应注意文件是否解压完全。我第一次安装的时候,exe 后缀的文件不知什么原因都没有解压出来,所以安装一直失败;重新解压一次又好了。
  2. 尽量不要使用 sudo。倘若你的 Home 目录权限有问题,使用 sudo 解压后再将权限恢复正常,或者通过创建一个用户组来管理权限。

改变文件夹权限:

chmod -R u=755 g09

创建组及用户,改变文件及文件夹的组及用户:

sudo groupadd g09users
sudo useradd g09 -g gaussuser
chgrp -R g09users g09
chown -R g09users:gaussuser g09

将用户添加进组:

usermod -G g09users gaussuser

二、安装

其实,安装的过程就是设置变量的过程。

进入主目录,按 Ctrl+H 显示隐藏文件,打开 .bashrc 文件,在文件末尾加上以下内容。安装 g03 时,把其中的 g09 全部替换成 g03 即可。注意你的 g09 目录和用户名,按照以下格式修改。

注意:经过我多次安装,发现修改普通用户主目录下的 /home/yourusername/.bashrc 后,用 su 获得超级用户权限时,每次仍需要使用 source /home/yourusername/.bashrc 才能够成功设置环境变量。我发现直接修改 /root/.bashrc,便不用每次重新设置环境变量。

#gaussian09
export g09root=/home/yourusername
GAUSS_EXEDIR=$g09root/g09/
export GAUSS_SCRDIR=/home/yourusername/g09/scratch
LD_LIBRARY_PATH=$g09root/g09/:$LD_LIBRARY_PATH
PATH=$g09root/g09/:$PATH
export g09root GAUSS_EXEDIR GAUSS_SCRDIR LD_LIBRARY_PATH PATH
source $g09root/g09/bsd/g09.profile

最后,在 g09 的目录里创建 scratch 目录。

三、运行

%%LAZYBLOG_INLINE_0%%

最后的 Error 是由于我按 Ctrl+C 终止程序。

运行时如果命令用 sudo 提示 permission denied,则应当用 su 获取超级用户权限。

先给超级用户设置密码,在终端输入以下命令,然后输入密码:

sudo passwd root

然后输入以下命令,再输入刚设置的密码:

su -

这样进入的是 root 的根目录 /root,需切换到用户目录 /home/yourusername,也就是我们存放 g09 目录的位置。

cd /home/username

输入以下命令。第一条用于避免 Segmentation fault(段错误),该命令只能在 su 下执行,在 sudo 下会提示权限不足(Permission denied)。该命令也可添加进 /etc/rc.local,开机自动执行。第二条是运行命令,./g09/g09 是我的 g09 目录下的 g09 文件地址,其中 tasks 是我的任务文件 gif 存放目录。可在命令末尾加上 & 表示后台执行。

echo 0 > /proc/sys/kernel/randomize_va_space
./g09/g09 tasks/xxx.gif &

%%LAZYBLOG_INLINE_0%%

四、安装 GaussView

.bashrc 末尾加上以下内容:

export GV_DIR=/home/yourusername/gv/
export LIBPATH=/home/yourusername/gv/lib
export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/yourusername/gv/lib
PATH=$PATH:/home/yourusername/gv/

五、常见错误

1. forrtl: No such file or directory

没有创建 scratch 目录,或者目录路径设置不对。这是 Gaussian 的输出目录。

2. Warning: omp_set_num_threads (4) greater than available cpus (2)

这是 gif 文件设置不对:CPU 的核数为 2,却设成了 4。打开任务文件,把 CPU 个数改回电脑实际拥有的数量即可。

3. Segmentation fault

错误信息可能如下:

Erroneous write during file extend. write -1 instead of 4096
Probably out of disk space.
Write error in NtrExt1: Bad address
Segmentation fault

解决办法:

sudo echo 0 > /proc/sys/kernel/randomize_va_space

最好写进 /etc/rc.local 文件(Ubuntu 系统;其他系统写进相应文件),令其开机自动加载该命令,省时省力。

4. ntrex1: Bad file descriptor

错误信息可能如下:

Error: segmentation violation
rax 0000000000000000, rbx 00007ffffffdecb0, rcx ffffffffffffffff
rdx 00000000000029b8, rsp 00007ffffffdebc8, rbp 00007ffffffdecc0
rsi 000000000000000b, rdi 00000000000029b8, r8 00002aaaaaaf2300
r9 0000000000000000, r10 00007ffffffde990, r11 0000000000000202
r12 00000000ffffffff, r13 000000000061c830, r14 0000000000000001
r15 0000000000010000
-- traceback not available
Aborted (core dumped)

这是 gif 文件 %chk 设置错误造成的。Linux 下没有 Windows 下的分区和目录结构,例如:

%chk=D:\he-test-c.chk

把分区号去除即可,例如:

%chk=he-test-c.chk

5. 运行 g09 后提示 Gaussian 目录权限过高

运行 g09 后出错,查看 log 文件,信息如下:

Entering Gaussian System, Link 0=g09
Input=1.com
Output=1.log
Files in the Gaussian directory are world accessible.
This must be fixed.

原因是 g09 文件夹权限太高。如果整个目录改成 777,就有可能出现这个问题。解决办法是除了 scratch 目录以外,均用 755 或者 750 等权限。因此前面建议用更改用户组的办法来实现权限管理。

Leave a Reply