このページでは,UnixペースのコンピュータシステムでGaussianを実行するために必要となるオペレーティングシステム(OS)のコマンドについて説明します。他のオペレーティングシステムで同じことを行うためにはプログラム付属の説明書を参照してください。この説明では,プログラムはすでにインストールされてあるものとします。一番最後のセクションにGaussian 03 プログラムの全リンクを記載してあります。
Gaussianを実行するためには,以下のことを行います。
このページでは,基本的なGaussianインプットファイルが作成されてあるものとし,上記した項目のうち残りの3つについて説明します。
Gaussianでは,計算の過程で,幾つかのスクラッチファイルが用いられます。これらには:
デフォルトでは,これらのファイルはGaussianプロセスのプロセスID から付けられたファイル名になり,GAUSS_SCRDIR環境変数(UNIX)で指定された,スクラッチディレクトリに保存されます。また,このディレクトリにはname.inpというファイルもできます。これはプログラムが用いる内部インプットファイルです。環境変数が設定されていない場合には,Gaussianプロセスの作業ディレクトリ(カレントディレクトリ)が用いられます。
デフォルトでは,これらのファイルは計算が成功に終われば削除されます。しかしながら,他のGaussianジョブで用いる,可視化ソフトで利用する,失敗したジョブを再スタートする等で,チェックポイントファイルを消さずに保存しておきたい場合もあるかもしれません。そのためには,チェックポイントファイルに名前を付けることで可能となります。つまり,チェックポイントファイルに対して明確なファイル名または場所を,Gaussianインプットファイル内の%Chkコマンドで指定します。次に例を示します:
%Chk=water
このコマンドをインプットファイルの最初(ルートセクションの前,詳細は3章を参照)に記述すると,water.chkという名のチェックポイントファイルが,通常生成されるファイル名より優先され,結果としてファイルはジョブ終了時に保存されます。このケースでは,ファイルは作業ディレクトリに存在することになります。しかし,次のようなコマンドを指定すると,ファイル名とともにディレクトリの位置も指定できます:
%Chk=/chem/scratch2/water
スクラッチディレクトリのディスクスペースが限られているが,システム側でさらに別のスペースが利用できる場合には,スクラッチファイルを複数のディスクに分けて置くことも可能です。次のようなコマンドで,他のスクラッチファイルの名前と場所を指定できます
%RWF=path <Read-Writeファイル>
%Int=path <積分ファイル>
%D2E=path <積分導関数ファイル>
一般的に,read-writeファイルは非常に大きくなります。よってread-writeファイルは非常によく別の位置が指定されるファイルの1つです。
Read-Writeファイルや積分ファイル,積分導関数ファイルを2つ以上のディスク(またはファイルシステム)に分割して保存するためには,別の構文で指定します。以下に%RWFコマンドに対する構文を示します:
%RWF=loc1,size1,loc2,size2,
…
ここで, 各locはディレクトリの位置かファイルのパス名で,各sizeはその場所におけるファイルセグメントの最大サイズです。各locに対してディレクトリだけを指定した場合には,Gaussianは自動的にユニークなファイル名を生成します。UNIXシステムでは,(ファイル名でなく)ディレクトリ指定の際は,末端にスラッシュを入れなければなりません。
デフォルトでは,サイズはワード単位になります。値に(間にスペースはいれずに)KB, MB, GBを付けることで,それぞれKB, MB, GB単位で指定することができます。また,KW, MW, GWを用いるとそれぞれキロワード,メガワード,ギガワード単位で指定できます。ただし,
1MB = 10242 バイト = 1,048,576 バイトです(1,000,000 バイトにはなりません)
サイズ指定パラメータに-1の値を指定すると,利用可能なスペースを全て用います。0にすると,存在するセグメントの現在のサイズを用います。-1は最後のファイルを指定するときのみに有用であり,これがデフォルトです。
例えば,次のコマンドでは,Read-Writeファイルを3つのディスクに分割します:
%RWF=/dalton/s0/,60MW,/scratch/,800MB,/temp/s0/my_job,-1
ファイルセグメントの最大サイズはそれぞれ480 MB, 800 MB, 制限なしです。Gaussianは最初の2セグメントについては名前を生成し,3番目のセグメントに対してはmy_jobという名前をつけます。ディレクトリ指定では末端がスラッシュであることに注意してください。
現在のUNIX実装の制限のために,-1を用いる際には注意が必要です。-1にすると,そのシステムの全残りディスク容量までファイルを拡張しようとするかもしれません。また-1を用いると,リスト内の他の追加ファイルセグメントを常に用いようとする副作用もあります。
デフォルトでは,名前がつけられていないスクラッチファイルはGaussianの終了時に削除され,名前が付いたファイルは保存されます。%NoSaveコマンドを用いると,このデフォルト動作を変えることができます。このコマンドをインプットで指定する際,インプットファイル中%NoSaveコマンドより前で名前が付けられたスクラッチファイルは,計算終了時に(名前がつけられていないスクラッチファイルとともに)削除されます。しかし,%NoSaveコマンドより後で%コマンドで名前が付けられたファイルがある場合,それらは保存されます。例えば,以下に示すケースでは,チェックポイントファイルの名前と,Read-Writeファイルの名前とディレクトリ場所を指定していますが,Gaussianジョブ完了時にはチェックポイントファイルだけが保存されることになります:
%RWF=/chem/scratch2/water ここのファイルは削除される
%NoSave
%Chk=water ここのファイルは保存される
Gaussianシステムには,プログラム実行用のユーザー環境が設定された初期設定ファイルがあります。そのファイルは以下の通りです:
$g03root/g03/bsd/g03.login
C shell
$g03root/g03/bsd/g03.profile
Bourne shell
g03root環境変数はユーザーによって設定されている必要があります。したがって,Gaussianユーザーは,自分のlogin もしくは.profileファイルに以下のような行を含めておくのが慣習となっています。
login
files:
setenv g03root
location
source $g03root/g03/bsd/g03.login
.profile
files:
g03root=location export g03root
. $g03root/g03/bsd/g03.profile
これらが正しく設定されていれば、g03コマンドでGaussian 03を実行できます(下記参照)。
%Memコマンドを用いることにより,Gaussianで用いる動的メモリの量をコントロールします。デフォルトでは,6 メガワード用いられます。この値は,n 倍精度ワードを指定することで変更することが可能です:
%Mem=n
たとえば,以下のようなコマンドを指定すると64 メガバイトのメモリを用います。
%Mem=8000000
%Memの値には, KB, KW, MB, MW, GB, GW といった単位も指定できます(間にスペースは入れません)。たとえば,以下のようなコマンドを指定すると,動的メモリ量を64MBまでとします:
%Mem=64MB
非常に大きなdirect SCF計算には,少なくとも3N2 ワードのかなり大きなメモリアロケーションが必要となります。ここで,N は基底関数の数です。f関数を含んだ振動数およびpost-SCF計算では,可能なら6 MWとる必要があります。ある程度のサイズの計算で6 MW以上用いても(つまり,500基底関数以下のdirect SCF),ほとんどのシステムではパフォーマンスの向上ははかれません。
警告: システム上で利用可能な物理メモリ量以上メモリを指定すると,パフォーマンスが非常に悪化します
Gaussianが限られた物理メモリのマシンで用いられた場合,たとえばデフォルトの48 MBでさえ利用できないような場合,デフォルトのアルゴリズムやデフォルトメモリアロケーションはインストール作業中に適切に設定されます。Gaussianを効率的に用いるための詳細については,このページを参照してください。
全インプットとリソース指定が用意されると,プログラムを実行する準備ができたことになります。Gaussian 03 は2つのコマンドスタイルのどちらかを用いてインタラクティブに実行することができます:
g03 job-name
g03 <input-file >output-file
最初の形式では,job-name.com というインプットを読み, job-name.logというアウトプットに出力します。job-nameが指定されなかった場合,標準入力から読み込み,標準出力に出力され,またこれらは通常のUNIX形式でリダイレクトあるいはパイプを用いることが可能です。どちらのコマンド形式でもバックグラウンドで実行させる場合には,通常のshellコマンドと同様に&を用います。
スクリプトを作成し,その中でGaussian 03を実行するようにしておく方法もあります(ここでの例では,C shellを用います)。1つ目の方法は,シェルスクリプト内に上記のようなg03コマンドを入れることです。2つ目の方法は,実際のGaussianインプットを<<コンストラクトを用いてシェルスクリプト内に埋め込むものです:
#!/bin/csh
g03 <<END >water.log
%Chk=water
#RHF/6-31G(d)
water energy
0 1
O
H 1 1.0
H 1 1.0 2 120.0
END
echo “Job done. ”
<< の後にある文字列が現れる前までの行が全て,g03コマンドのインプットになります。
最後に, 複数のGaussianジョブを続けて実行されるようなループを作成することもできます。たとえば,以下のようなスクリプトでは,Gaussianインプットファイルを全てコマンドライン引数として指定して実行し,動作に関するログはStatusという名のファイルに保存されます:
#!/bin/csh
echo “Current Job Status:” > Status
foreach file ($argv)
echo “Starting file $file at `date`” >> Status
g03 < $file > $file:r.log
echo “$file Done with status $status” >> Status
end
echo “All Done.” >> Status
以下に示すようなかなり複雑なスクリプトでは,Gaussianインプットファイルを,スクリプトファイル内の部分的なインプットから,オンザフライ(on-the-fly)で作成します。ファイルリストはスクリプトのコマンドライン引数として与えます。そのファイルらは完全なルートセクションは指定しないでおきます。つまりルートセクションは単に#記号だけか,その分子系に必要な特別なキーワードを含む#行を指定し,方法,基底関数や計算タイプは指定しないでおきます。
このスクリプトでは,各部分的なインプットファイルに対して2ステップジョブ(Hartree-Fock最適化を行い,次にMP2シングルポイント(一点)エネルギー計算)を作成します。またスクリプトは,実行するコマンドと,スクリプト実行時に指定される各ファイルの内容から構成されます。 後者は Gaussian 03 @ファイルインクルードメカニズムを用いています。
#!/bin/csh
echo “Current Job Status:” > Status
foreach file ($argv)
echo “Starting file $file at `date`” >> Status
g03 <<END> $file:r.log
%Chk=$file:r
# HF/6-31G(d) FOpt
@$file/N
–Link1–
%Chk=$file:r
%NoSave
# MP2/6-31+G(d,p) SP Guess=Read Geom=AllCheck
END
echo “$file Done with status $status” >> Status
end # end of foreach
echo “All Done.” >> Status
UNIXシステム上でNQSがサポートされていれば,NQSバッチ機能を用いてGaussianを実行することもできます。subg03コマンドを用いると(初期設定ファイルで定義されています),インプットファイルをバッチキューに投入します。このコマンドは次のような構文です:
subg03 queue-name job-name [-scrdir dir1] [-exedir dir2] [-p n]
キュー名とジョブ名の2つのパラメータが必要です。インタラクティブに実行するのと同様に,インプットはjob-name.comから,アウトプットは job-name.logになります。NQSログファイルはjob-name.batch-log.に送られます。オプションパラメータとして, -scrdir と -exedirがあり,これらはそれぞれデフォルトのスクラッチまたは実行ディレクトリを上書きするのに用います。これら以外のパラメータは,NQSのオプションとなります。特に,-p nと指定すると,キュー内の優先度をnとします。これは,開始時の優先度(1が最低)であり,実行時の優先度には影響を与えません。
インタラクティブセッションからNQSジョブを投入するためには,以下のようなファイルを作成しておきます(ファイル名はname.job):
# QSUB -r name -o name.out -eo
# QSUB -lt 2000 -lT 2100
# QSUB -lm 7mw -lM 7mw
g03 <name.com
ここで, nameは各自の計算にあわせて変える必要があります。最初の行は,実行するジョブの名前と,アウトプットファイルの名前を設定し,エラーもアウトプットファイルに出力されるようにします。時間のパラメータは異なってますが,これはジョブのクリーンアップ(たとえば,ジョブが時間制限を超えてしまった場合のチェックポイントファイルのアーカイブ)が追加でできるようにしてあるためです。メモリパラメータは実行の際の初期スケジューリングと動的メモリ使用量の決定の両方に使われます。
このジョブを,コマンドを実行することにより投入します:
$ qsub name.job
アウトプットは,カレント作業ディレクトリに出力されます。
次の表に,Gaussian 03のコンポーネントプログラム(linkと呼ばれます)と,その主な機能のリストを示します。
L0 | プログラムの初期化,オーバーレイの制御 |
---|---|
L1 | ルートセクションの処理,実行するリンクのリスト構築,スクラッチファイルの初期化 |
L101 | タイトルと分子指定の読込 |
L102 | FP最適化 |
L103 | 極小やTS,STQN遷移状態探索のBerny最適化 |
L105 | MS最適化 |
L106 | 分極率・超分極率用の力・双極子の数値微分 |
L107 | Linear-synchronous-transit (LST)遷移状態探索 |
L108 | ポテンシャルエネルギー面探索 |
L109 | Newton-Raphson最適化 |
L110 | 振動数生成用のエネルギー2次数値微分 |
L111 | 分極率・超分極率計算用のエネルギー2次数値微分 |
L113 | 解析的微分を用いたEF最適化 |
L114 | EF数値最適化(エネルギーのみを使用) |
L115 | 固有反応座標(IRC)を用いた反応経路追跡 |
L116 | 数値的自己無撞着反応場(SCRF) |
L117 | Post-SCF SCRF |
L118 | トラジェクトリ計算 |
L120 | ONIOM計算の制御 |
L121 | ADMP計算 |
L122 | Counterpoise計算 |
L202 | 座標の再配向,対称性の計算,変数のチェック |
L301 | 基底関数情報の生成 |
L302 | 重なり,運動,ポテンシャル積分の計算 |
L303 | 多極子積分の計算 |
L308 | 双極子速度,Rx∇ 積分の計算 |
L310 | primitive形式でのspdf 2電子積分計算 |
L311 | sp 2電子積分計算 |
L314 | spdf 2電子積分の計算 |
L316 | 2電子積分の出力 |
L319 | 近似スピン軌道カップリング用の1電子積分の計算 |
L401 | 初期MO推測作成 |
L402 | 半経験的および分子力学計算の実行 |
L405 | MCSCF計算の初期化 |
L502 | SCF方程式の反復的解法(従来型,UHF & ROHF, 全ダイレクト法,SCRF) |
L503 | ダイレクト最小化を用いたSCF方程式の反復的解法 |
L506 | ROHFまたはGVB-PP計算の実行 |
L508 | 2次収束SCFプログラム |
L510 | MC-SCF |
L601 | 電子密度およびその関連解析(多極子モーメントを含む) |
L602 | 1電子プロパティ(ポテンシャル,場,場のグラジェント) |
L604 | グリッド点に対するMOまたは電子密度の評価 |
L607 | NBO解析の実行 |
L608 | 非反復DFTエネルギー |
L609 | Atoms in Moleculesプロパティ |
L701 | 1電子積分の1,2次導関数 |
L702 | 2電子積分の1,2次導関数(sp) |
L703 | 2電子積分の1,2次導関数(spdf) |
L716 | 最適化や振動数用の情報処理 |
L801 | 2電子積分変換の初期化 |
L802 | 積分変換の実行(N 3 in-core) |
L804 | 積分変換 |
L811 | 積分導関数変換および MP2 2次導関数寄与の計算 |
L901 | 反対称化2電子積分 |
L902 | Hatree-Fock波動関数の安定性の決定 |
L903 | 旧式のin-core MP2 |
L905 | Complex MP2 |
L906 | Semi-direct MP2 |
L908 | OVGF (閉殻) |
L909 | OVGF (開殻) |
L913 | post-SCFエネルギー,グラジェント項の計算 |
L914 | CI-Singles, RPA, Zindo励起状態,SCF安定性 |
L915 | 5次量の計算(MP5, QCISD(TQ), BD(TQ)用) |
L916 | 旧式のMP4, CCSD |
L918 | 波動関数の再最適化 |
L1002 | CPHF方程式の反復解法;様々なプロパティの計算(NMRを含む) |
L1003 | CP-MCSCF方程式の反復解法 |
L1014 | 解析的CI-Singles2次導関数の計算 |
L1101 | 1電子積分導関数の計算 |
L1102 | 双極子導関数積分の計算 |
L1110 | Fxへの2電子積分導関数寄与 |
L1111 | 2 PDMとpost-SCF導関数 |
L1112 | MP2 2次導関数 |
L9999 | 計算とアウトプットの終了処理 |
平日9:30~17:30 (土曜日、日曜日、祝祭日、年末年始、夏期休暇は、休日とさせていただきます。)