GAMESS(非経験的分子軌道法)を使ってみよう (あくまで参考)
iインストールは結構神経質にやらなければできません。インストールは小輩にとって、ゲームみたいなものでした。
MOPAC7では遷移金属の計算が出来ず、ALの計算をsp軌道で計算していることを知って、d軌道までの計算ができるGAMESSをやってみたくなりました。
今から40年前、大学生/付属研究所の技官だった小輩にとってab initioは高根の花でした。研究室の人間で分子構造を簡略化してab
initioの計算をスーパーコンピュータで行ったと退官した後で聞きましたが、自宅のPCでできることは不思議な感じがします。
今まで、ATP以外でlinuxにインストールしたことがなかったので、何回かトラブルがありました。その失敗も書き込みました。
T インストール
00. PC環境 : 小輩が分子軌道法用に購入したPCは次の様な規格です(5万円弱でした(2014年);今、同じ規格のものは4万円弱のものも(2016年))
CPU : AMD-A4-7300, 2core, 3.8GHz(定格)
distribution : Debian ver.7.8.0.
0. Gamessは Fortran/C言語コンパイラと MathLibrary が必要。
コンパイラは1年前にインストールしていた(APTでインストール)。
小輩が使っているPCのCPUはAMDなのでAMDのMLであるacmlをインストールした。
@acmlのHPからgfortran用のacmlをダウンロードした。
http://developer.amd.com/tools-and-sdks/archive/compute/amd-core-math-library-acml/
A圧縮ファイルをユーザrootに移動(pathの問題を避けるため;GAMESSが問題なく動くようになったらユーザ領域にあるGAMESS関係のディレクトリ/ファイルは普段使わない所に遺跡として保管、さらに時期が充分に立ったらCD/DVDに移す)し、解凍。もう一段の圧縮ファイルがあってこれもユーザrootで解凍。
(解凍はDebianでファイル機能がソフトにリンクされているためファイル名をダブルクリックで解凍画面になる)
(ユーザrootとはPWなしでユーザがlinuxを始められる最初のディレクトリ、スーパーrootとはPWを入力して入れる最初のディレクトリ。ユーザrootはスーパーrootのディレクトリ「home」に当たる。これらの呼び方は小輩が勝手に呼んでいる名称。いろんなlinux関係のHPを見るとこれら2つのrootを1つの呼び方”root”としているものがあるので区別するため)
Bスーパーrootの端末を開いて、
(実は下記項目3でconfigを修正した時にMathLibrary名を聞いて来たので気がついて慌ててacmlをインストールしたのでgamessというディレクトリがすでにあった)
CD gamess
. /install-acml-5-3-1-gfortran-64bit-int64.sh
(install-acml-5-3-1-gfortran-64bit-int64.shはacmlインストール用シェル)
accept/unaccept?と聞いてくるので
accept
<return>
acml***pgi***、acml***open*** についても同様にinstallする
@〜Bでacmlがインストールされた(スーパーrootに
opt > acml5.3.1 のディレクトリができていた)。
LinuxにGAMESSをインストールする
1.ソースのダウンロード
@次のHPを開く。
http://www.msg.chem.iastate.edu/GAMESS/GAMESS.html
A最上方にある「GAMESS > DOWNLOAD」をクリックすると「ソースコードの配布」の頁が表示される。
文章中に赤字で「obtaining GAMESS」と書いた部分があり、ここをクリックする。
B「ライセンス agreement」の頁が表示される。文章をを読んだ後、「I
agree〜」をクリックする。
C使用者の mail address / version /使用PC、OS を入力する(AMDの64bitなので上から2つ目をチェック)
「submit request」をクリックする。
D1.Aの画面で「GAMESS>DOCUMENTS」をクリックするとGAMESSのマニュアルのリストが示される。
1〜6のpdfマニュアルをクリックしてダウンロードする。1〜4をまず読む。5〜6はインストール/プログラミングの時に有用なファイルとのこと。
E数日後、先方からダウンロードURL/ID/PWを書いたメールが来る。
(IDは誰でも「source」、PWについては今週中のPWと来週のPWが書かれている)
文章中に圧縮ファイル名があるのでここをクリック、IDとPWを聞いてくるので入力する。
小輩が使っているDebianではダウンロードソフトとリンクしているのでファイルを保存するかダウンロードと同時に展開するか聞いてくる。小輩はファイルを保存。
「ダウンロード」なるフォルダに圧縮ファイルが保存された。
2.ファイルの解凍
@圧縮ファイルを適当なディレクトリに移し、解凍する。
小輩が使っているDebianではユーザーrootではファイル名が解凍ソフトとリンクしているのでファイル名をダブルクリックすると解凍される。そこでgamessの動作が問題なくなるまではユーザーrootにgamess関連プログラムを置くことにした。
ディレクトリ「gamess」が出来、そのディレクトリの中に解凍されたディレクトリ/ファイルができている。PATHの内部表現では/home/yy/gamessにgamess関連プログラムが保存された(「yy」はユーザーroot名に小輩がつけたもの。aliasでは「ホームフォルダ-」)。
Aディレクトリgamess他、いくつかのディレクトリにREADMEファイルがあるので読む。
最重要なREADMEはディレクトリ「machines」に入っている「README.unix」。当ページ項目3以降の入力をこのREADME.unixの記述に沿って行う。
3.ソースファイルの修正
@「config」の実行
Debianではダブルクリックすると端末に行かないでも「実行」をクリックすると実行された。
→ 実行されてもファイルが出来なかった。端末で
chdir gamess (gamess関連プログラムが入っているディレクトリに移動する)
./config
とタイプインした所、ファイル/ディレクトリがないと出てきた。
configでcshを使っている。binの中を見るとcshがない。 →
csh をAPTでインストール
configが動き始めて聞いてきたので、各質問に対して以下のように入力(なるべくdefalt値にした)
<return>
linux64
<return> (/home/yy/gamess)
<return> (/home/yy/gamess)
<return> (00)
gfortran
4.7
<return>
acml
/opt/acml5.3.1
<return>
<return>
sockets
no
<return>
この設定でディレクトリgamessに'install.info'、ディレクトリtoolsに'actvte.x'ができていた。
APCの並列計算をする場合はDDIを修正しなければならないが、今回はconlddiをそのままコンパイルした。端末で次のように入力して実行した。
cd gamess/ddi
. /compddi
mv ddikick.x ..
端末画面の最後に「DDI compilation ended
successfully〜」と書かれていた
4.コンパイルとリンク
@コンパイル 端末で次の様に入力して実行した。
cd gamess
. /compall
コンパイルにちょうどコーヒーを淹れる位の時間(10分強)がかかった。
端末画像の最後に「done with all compilations」との記述があった。
Aリンク 端末で次の様に入力して実行した。
cd gamess
. /lked gamess 00
端末画像の最後に「The linking of GAMESS to binary gamess.00.x
was successful」の記述があり実行ファイル「gamess.01.x」がディレクトリgamessにできていた。
5.テスト
@エディタ"gedit"でrungmsを修正; Path/環境変数を確認しつつ小輩の設定に合わせて修正した
(Linux64以外のPC向けの部分は修正しなかった)
set SCR=/home/yy/scr/$USER
set USERSCR=/home/yy/scr/user
set GMSPATH=/home/yy/gamess
Arunallを実行
chdir gamess
./runall 00
Bディレクトリgamessに出力されたexam**.logに次のようなコメントがあった
...................................
DDI Process 0: shmget returned an
error.
Error EINVAL: Attempting to create
160525768 bytes of shared memory.
Check system limits on the size of
SysV shared memory segments.
..................................
C"readme.ddi"の中にSysV shared
memoryの修正方法の記述がありそれに沿って修正した。
即ち、スーパーrootで
nano /etc/sysctl.conf
でsysctl.confの最後の行にreadme.ddiに書かれている内容に準じて
kernel.shmmax = 3221225472 (小輩のPCのRAMは4GBなので3GB)
と入力して保存すると共にスーパーrootで
echo "3221225472" >
/proc/sys/kernel/shmmax
を実行し、上記5.Aを行った所errorのないexam**.logが出力された(疑問点はいくつかあったがとりあえず落着、)。
(/home/yy/scr/userの以前に失敗した時のlogファイルはスーパーrootでコマンドrm
*.*で消去しなければならなかった)
DGAMESSの少方法を確認して活用する段階になる。
以 上
U 制限
・計算可能なのは気相状態の spdfghi軌道エネルギー、spd軌道の原子核ハミルトン分析
・原子数: 2000個以下
詳細な制限(limitation)については解凍した時に出来たディレクトリgamessにあるintro.docのP30、またはGAMESSのHPから入手できるintro.pdfのp31を参照。
プログラムの中で制限を変更することも可能、大きくすることもできるし速度を上げるために小さくすることも可能とのこと。
V 参考本/URL
・「すぐできる量子化学計算ビギナーズマニュアル」 武次徹也編著 講談社 のGAMESS部分(Gaussianの記述がほとんど)
・
未完
トップページに戻る