以下の方法は g03 と g09 のどちらにも使えます。
一、解凍
まずファイルを解凍します。私のファイル名は G09.B01.LINUX_E64-930X.tgz で、ファイルはデスクトップにあります。実際に操作するときは、自分の環境に合わせたファイルディレクトリとファイル名を入力してください。Tab キーで補完できます。
tar -xvf Desktop/G09.B01.LINUX_E64-930X.tgz
注意:
- ファイルが完全に解凍されているか確認してください。私が初めてインストールしたときは、原因は不明ですが
exe拡張子のファイルがすべて解凍されておらず、そのためインストールがずっと失敗していました。もう一度解凍したら直りました。 - できるだけ
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 ディレクトリを作成します。
三、実行
最後の Error は、私が Ctrl+C を押してプログラムを終了したためです。
実行時に sudo でコマンドを使って permission denied と表示される場合は、su でスーパーユーザー権限を取得する必要があります。
まずスーパーユーザーのパスワードを設定します。端末で以下のコマンドを入力し、その後パスワードを入力します:
sudo passwd root
次に以下のコマンドを入力し、先ほど設定したパスワードを入力します:
su -
これで root のルートディレクトリ /root に入ります。g09 ディレクトリを置いている場所、つまりユーザーディレクトリ /home/yourusername に切り替える必要があります。
cd /home/username
以下のコマンドを入力します。1 つ目は Segmentation fault(セグメンテーションフォルト)を避けるためのものです。このコマンドは su の下でしか実行できず、sudo の下では権限不足(Permission denied)と表示されます。このコマンドは /etc/rc.local に追加して、起動時に自動実行することもできます。2 つ目は実行コマンドで、./g09/g09 は私の g09 ディレクトリ内にある g09 ファイルのアドレスです。その中の tasks は私のタスクファイル gif を保存しているディレクトリです。コマンド末尾に & を付けるとバックグラウンドで実行できます。
echo 0 > /proc/sys/kernel/randomize_va_space
./g09/g09 tasks/xxx.gif &
四、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 などの権限にすることです。そのため前述の通り、ユーザーグループを変更する方法で権限管理を行うことを推奨しています。
