Gaussianの実行

このページでは,UnixペースのコンピュータシステムでGaussianを実行するために必要となるオペレーティングシステム(OS)のコマンドについて説明します。他のオペレーティングシステムで同じことを行うためにはプログラム付属の説明書を参照してください。この説明では,プログラムはすでにインストールされてあるものとします。一番最後のセクションにGaussian 03 プログラムの全リンクを記載してあります。

Gaussianを実行するためには,以下のことを行います。

  • 行いたい計算を記述したGaussianインプットの作成
  • 様々なスクラッチファイルの場所の指定
  • 必要リソースの指定
  • プログラム実行の開始(インタラクティブ(対話)またはバッチモードのどちらかで)

このページでは,基本的なGaussianインプットファイルが作成されてあるものとし,上記した項目のうち残りの3つについて説明します。

スクラッチファイルの取り扱い方と位置の指定

Gaussianでは,計算の過程で,幾つかのスクラッチファイルが用いられます。これらには:

  • チェックポイントファイル: name.chk
  • Read-Writeファイル:  name.rwf
  • 2電子積分ファイル: name.int
  • 2電子積分導関数ファイル: name.d2e

デフォルトでは,これらのファイルは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を効率的に用いるための詳細については,このページを参照してください。

UNIXシステム上でのGaussianの実行

全インプットとリソース指定が用意されると,プログラムを実行する準備ができたことになります。Gaussian 03 は2つのコマンドスタイルのどちらかを用いてインタラクティブに実行することができます:

g03 job-name
g03 <input-file >output-file

最初の形式では,job-name.com というインプットを読み, job-name.logというアウトプットに出力します。job-nameが指定されなかった場合,標準入力から読み込み,標準出力に出力され,またこれらは通常のUNIX形式でリダイレクトあるいはパイプを用いることが可能です。どちらのコマンド形式でもバックグラウンドで実行させる場合には,通常のshellコマンドと同様に&を用います。

スクリプトとGaussian

スクリプトを作成し,その中で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

NQSを用いたバッチ実行

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 Links

次の表に,Gaussian 03のコンポーネントプログラム(linkと呼ばれます)と,その主な機能のリストを示します。

L0プログラムの初期化,オーバーレイの制御
L1ルートセクションの処理,実行するリンクのリスト構築,スクラッチファイルの初期化
L101タイトルと分子指定の読込
L102FP最適化
L103極小やTS,STQN遷移状態探索のBerny最適化
L105MS最適化
L106分極率・超分極率用の力・双極子の数値微分
L107Linear-synchronous-transit (LST)遷移状態探索
L108ポテンシャルエネルギー面探索
L109Newton-Raphson最適化
L110振動数生成用のエネルギー2次数値微分
L111分極率・超分極率計算用のエネルギー2次数値微分
L113解析的微分を用いたEF最適化
L114EF数値最適化(エネルギーのみを使用)
L115固有反応座標(IRC)を用いた反応経路追跡
L116数値的自己無撞着反応場(SCRF)
L117Post-SCF SCRF
L118トラジェクトリ計算
L120ONIOM計算の制御
L121ADMP計算
L122Counterpoise計算
L202座標の再配向,対称性の計算,変数のチェック
L301基底関数情報の生成
L302重なり,運動,ポテンシャル積分の計算
L303多極子積分の計算
L308双極子速度,Rx∇ 積分の計算
L310primitive形式でのspdf 2電子積分計算
L311sp 2電子積分計算
L314spdf 2電子積分の計算
L3162電子積分の出力
L319近似スピン軌道カップリング用の1電子積分の計算
L401初期MO推測作成
L402半経験的および分子力学計算の実行
L405MCSCF計算の初期化
L502SCF方程式の反復的解法(従来型,UHF & ROHF, 全ダイレクト法,SCRF)
L503ダイレクト最小化を用いたSCF方程式の反復的解法
L506ROHFまたはGVB-PP計算の実行
L5082次収束SCFプログラム
L510MC-SCF
L601電子密度およびその関連解析(多極子モーメントを含む)
L6021電子プロパティ(ポテンシャル,場,場のグラジェント)
L604グリッド点に対するMOまたは電子密度の評価
L607NBO解析の実行
L608非反復DFTエネルギー
L609Atoms in Moleculesプロパティ
L7011電子積分の1,2次導関数
L7022電子積分の1,2次導関数(sp)
L7032電子積分の1,2次導関数(spdf)
L716最適化や振動数用の情報処理
L8012電子積分変換の初期化
L802積分変換の実行(N 3  in-core)
L804積分変換
L811積分導関数変換および MP2 2次導関数寄与の計算
L901反対称化2電子積分
L902Hatree-Fock波動関数の安定性の決定
L903旧式のin-core MP2
L905Complex MP2
L906Semi-direct MP2
L908OVGF (閉殻)
L909OVGF (開殻)
L913post-SCFエネルギー,グラジェント項の計算
L914CI-Singles, RPA, Zindo励起状態,SCF安定性
L9155次量の計算(MP5, QCISD(TQ), BD(TQ)用)
L916旧式のMP4, CCSD
L918波動関数の再最適化
L1002CPHF方程式の反復解法;様々なプロパティの計算(NMRを含む)
L1003CP-MCSCF方程式の反復解法
L1014解析的CI-Singles2次導関数の計算
L11011電子積分導関数の計算
L1102双極子導関数積分の計算
L1110Fxへの2電子積分導関数寄与
L11112 PDMとpost-SCF導関数
L1112MP2 2次導関数
L9999計算とアウトプットの終了処理
  • キャンペーン情報
    現在開催されているお得なキャンペーン情報はこちらから。
    詳細
  • ご購入前のお問合せ
    フォームにご入力いただければ後ほど営業よりご連絡させていただきます。
    詳細
  • 見積り依頼
    フォームにご入力いただければ後ほど営業よりご連絡させていただきます。
    詳細
CONTACT

お問い合わせ

お客様に最適な製品をご提案いたします。まずは気軽にお問い合わせ下さい。
075-353-0120

平日9:30~17:30 (土曜日、日曜日、祝祭日、年末年始、夏期休暇は、休日とさせていただきます。)