1 FMO RHF MP2 MP2 RI MP2 RHF RHF 2

270  Download (0)

Full text

(1)

開発

1

開発者

2

開発履歴

(2)

1

開発者

石川 岳志

岐阜大学 人獣感染防御研究センター 計算創薬研究分野

管理 – プログラムの管理 – テキストの管理 プログラムの作成 – FMO 法のベースシステム – 分子積分 – RHF エネルギー – MP2 エネルギー – 軌道局在化 – 局在化 MP2 エネルギー – RI–MP2 エネルギー – RHF 動的分極率計算 – RHF エネルギー勾配および部分エネルギー勾配 – 構造最適化のベースシステム テキストの作成 – マニュアルの作成

(3)

2

開発履歴

2011.01

• ソースコードの公開開始

2010.10

• 部分エネルギー勾配 • 構造最適化ルーチン

2010.04

• バイナリの公開開始

2010.02

• RHF(動的分極率)

2009.04

• RI–MP2(エネルギー)

2008.10

• RHF(エネルギー勾配)

2008.07

• FMO 計算のベースシステム • 分子積分 • RHF(エネルギー) • MP2(エネルギー) • 軌道局在化 • 局在化 MP2(エネルギー)

(4)

3

論文

PAICS

を使用した場合、以下の論文を引用すること。

• Teoretical study of the prion protein based on the fragment molecular

orbital method, T. Ishikawa, T. Ishikura, and K. Kuwata, J. Comput. Chem.,

30 (2009) 2594–2601

PAICS

の開発に関連する論文。

• Fragment interaction analysis based on local MP2, T. Ishiskawa, Y. Mochizuki,

S. Amarai, T. Nakano, H. Tokiwa, S. Tanaka, and K. Tanaka, Theor. Chem. Acc.,

118 (2007) 937-945

• An application of fragment interaction analysis based on local MP2, T.

Ishikawa, Y. Mochizuki, S. Amari, T. Nakano, S. Tanaka, and K. Tanaka, Chem.

Phys. Lett., 463 (2008) 189-194

• Teoretical study of the prion protein based on the fragment molecular

orbital method, T. Ishikawa, T. Ishikura, and K. Kuwata, J. Comput. Chem.,

30 (2009) 2594–2601

• Fragment molecular orbital calculation using the RI–MP2 method, T.

Ishikawa and K. Kuwata, Chem. Phys. Lett., 474 (2009) 195–198

• Acceleration of monomer self-consistent charge process in fragment

molec-ular orbital method, T. Ishikawa and K. Kuwata, C.B.I.J., 10 (2010) 24–31

• Partial energy gradient based on the fragment molecular orbital method:

application to geometry optimization, T. Ishikawa, N. Yamamoto, and K.

Kuwata, Chem. Phys. Lett., 500 (2010) 149-154

(5)

コンパイルと計算の実行

1

コンパイル

2

計算の実行

(6)

1

コンパイル

1.1

ディレクトリ構成とファイル

配布物(

paics.zip

)のファイル構成は以下の通り。

• Makefile paics

プログラムをコンパイルするための Makefile。基本的にこのファイルは修正せず、make.inc を修正する。

• make.inc

Makefile にインクルードされるファイル。ユーザーの環境に合わせて修正する。

• make.sh

プログラムをコンパイルするためのスクリプト(bash)。

• clean.sh

コンパイル前の状態に戻すスクリプト(bash)。

• main.c

PAICS のメインプログラム。

• paics.run.sh

MPICH でジョブを流すための基本スクリプトの例。ユーザーの環境に合うように修正する。

• paics.run.lsf.sh

LSF(ジョブ管理システム)経由ででジョブを流すためのスクリプトの例。ユーザーの環境 に合うように修正する。

• man /

マニュアル(PDF)が格納されている。以下のファイルが存在する(これらは、PAICS の ホームページからも取得可能)。 development.pdf PAICS の開発 compile–and–execute.pdf コンパイルと計算の実行(このファイル) input.pdf 入力ファイルの記述 theory.pdf 理論との対応 variable.pdf ソースコードのマニュアル(グローバル変数)

(7)

• src /

ソースコードが格納されているディレクトリ。以下のような構成になっている。 include / ヘッダーファイル parallel control / 並列化制御に関連するソースコード memoryl control / メモリ制御に関連するソースコード paics / PAICS 全般に関するソースコード input / 入力に関連するソースコード output / 出力に関連するソースコード fmt / 誤差関数に関連するソースコード oneint / 1 電子積分に関連するソースコード oneint grad / 1 電子積分の微分に関連するソースコード eri / 電子反発積分に関連するソースコード eri grad / 電子反発積分の微分に関連するソースコード(未公開) esp / 環境静電ポテンシャルの計算に関連するソースコード projection / 射影演算子に関連するソースコード fragment / フラグメント全般に関するソースコード monomer scc / モノマー SCC 計算に関連するソースコード monomer / モノマー計算に関連するソースコード dimer es / ダイマー ES 計算に関連するソースコード dimer / ダイマー計算に関連するソースコード rhf / RHF 計算に関連するソースコード cmp2 / MP2 計算に関連するソースコード ri cmp2 / RI–MP2 計算に関連するソースコード localize / 軌道局在化計算に関連するソースコード lmp2 / 局在化 MP2 計算に関連するソースコード pol / 分極率計算に関連するソースコード(未公開) geom opt / 構造最適化に関連するソースコード(未公開) abmd / 分子動力学計算に関連するソースコード(未公開)

• basis /

基底関数のデータファイルが格納されているディレクトリ。以下のファイルが存在する。 user.dat ユーザー定義の基底関数データ sto3g.dat STO-3G の基底関数データ 631g.dat 6-31G の基底関数データ 631gdp.dat 6-31G**の基底関数データ cc-pVDZ.dat cc-pVDZ の基底関数データ

(8)

cc-pVTZ.dat cc-pVTZ の基底関数データ cc-pVQZ.dat cc-pVQZ の基底関数データ cc-pVDZso.dat cc-pVDZ( segmented–opt )の基底関数データ cc-pVTZso.dat cc-pVTZ( segmented–opt )の基底関数データ cc-pVDZri.dat RI 近似に使われる cc-pVDZ 用の補助基底のデータ cc-pVTZri.dat RI 近似に使われる cc-pVTZ 用の補助基底のデータ cc-pVQZri.dat RI 近似に使われる cc-pVQZ 用の補助基底のデータ

• sample /

入力ファイルのサンプルとそれらの実行結果が格納されているディレクトリ。以下のファイ ルが存在する。 h2o-4-ccpvdz.inp H2O の 4 量体の非 FMO 計算 h2o-4-ccpvdz.np1.out 上の計算の実行結果 fmo-h2o-4-ccpvdz.inp H2O の 4 量体の FMO 計算 fmo-h2o-4-ccpvdz.np1.out 上の計算の実行結果 c12h26-ccpvdz.inp C12H26の非 FMO 計算 c12h26-ccpvdz.np1.out 上の計算の実行結果 fmo-c12h26-ccpvdz.inp C12H26の FMO 計算 fmo-c12h26-ccpvdz.np1.out 上の計算の実行結果 gly5-ccpvdz.inp GLY5の非 FMO 計算 gly5-ccpvdz.np1.out 上の計算の実行結果 fmo-gly5-ccpvdz.inp GLY5の FMO 計算 fmo-gly5-ccpvdz.np1.out 上の計算の実行結果 fmo-prion-ccpvdz.inp プリオンの FMO 計算 fmo-prion-ccpvdz.np8.out 上の計算の実行結果 fmo-prion-gn8-ccpvdz.inp プリオンと GN8 の FMO 計算 fmo-prion-gn8-ccpvdz.np8.out 上の計算の実行結果

1.2

コンパイラとライブラリ

PAICS

は、

MPI

による並列プログラムなので、コンパイルには、

MPI

の環境が必要と

なる。また、

LAPACK

を用いているので、関連ライブラリをリンクできるシステムが要

(9)

1.3

コンパイル

1.

make.inc

」ファイルの修正 「

make.inc

」を各自のシステムに合わせて修正する。

• ROOT DIR

PAICS

のルートディレクトリを絶対パスで指定する。

• CC

MPI

コンパイラ(

C

言語)を指定する。

• LIB

必要なライブラリ(

LAPACK

関連)を指定する。

• PAICS INCDIR

インクルードファイルが格納されているディレクトリを指定する。通常は、 PAICS_INCDIR = ${ROOT_DIR}/src/include と指定されていればよい。

• CFLAGS

コンパイル時のフラグを指定する。通常は、 CFLAGS = -c -O3 -I{PAICS_INCDIR} と指定されていればよい。

• LFLAGS

リンク時のフラグを指定する。システムおよびコンパイラに依存するが、通常は特 に指定する必要は無い。

2.

make.sh

」を起動する ルートディレクトリにある「

make.sh

」を起動する。成功すれば、「

main.exe

」が作成さ れる。分子積分ルーチンのコンパイルにはかなり時間が掛かるので注意すること。配布物 を解凍した段階では、

make.sh

に実行許可が与えられていない可能性があるので、その場 合、以下のコマンドで実行許可を与えて、

make.sh

を起動する。 % chmod 755 make.sh

(10)

2

計算の実行

2.1

入力ファイルの作成

PAICS

で計算を行うには、計算手法、メモリ、

CPU

数、原子座標、フラグメント定義 などを記述した入力ファイル(テキスト形式)を作成する必要がある。生体分子の場合、原 子の数は数千、フラグメントの数は数百となり、直接入力ファイルを作成するのは困難で ある。そこで、

PAICS

では、入力ファイルの作成を支援するプログラム「

PaicsView

」 を提供している。

2.2

JOB の投入

以下のことに注意する。

環境変数

PAICS ROOT

PAICS

のルートディレクトリの絶対パスをセットしてお

く。この環境変数の値は実行中に取得され、基底関数のデータファイルを読む際に 使われる。

入力ファイルを引数として指定し、

main.exe

MPI

を通じて起動する。第一引数は 実行中に取得され、

MPI

ランク

0

CPU

がこのファイルを開き、入力ファイルに記 述された情報を取得する。

PAICS

を起動するスクリプトの例を図

1

に示す。

2.3

計算結果

PAICS

は、標準出力に計算結果を書き出すので、リダイレクションで計算結果をファ イルに保存する。計算が終わったら、

WARNING

が出ていないかを必ず確認する。

(11)

1: PAICS

を起動するためのスクリプトの例 < mpirun を直接起動する場合( paics.run.sh )> #!/bin/bash export PAICS_ROOT=/home/ishi/program/paics INP=$1 NCPU=$2 DIR=‘pwd‘

mpirun -np $NCPU $PAICS_ROOT/main.exe $DIR/$INP

以上のスクリプトを

% paics.run.sh [ 入力ファイル名 ] [ CPU 数 ] >& [ 出力ファイル名 ] & のように実行する。 < lsf を通じて起動する場合( paics.run.lsf.sh )> #!/bin/bash export PAICS_ROOT=/home/ishi/paics/paics-20080703-2 DIR=‘pwd‘ BSUB_DIR=$DIR INP_FILE=$1 OUT_FILE=$2 NCPU=$3 rm -f $BSUB_DIR/bsub.log rm -f $BSUB_DIR/bsub.out

bsub -o $BSUB_DIR/bsub.out -e $BSUB_DIR/bsub.log -n $NCPU \

"mpijob mpirun $PAICS_ROOT/main.exe $DIR/$INP_FILE >& $DIR/$OUT_FILE"

以上のスクリプトを

% paics.run.lsf.sh [ 入力ファイル名 ] [ 出力ファイル名 ] [ CPU 数 ] のように実行する。

(12)

3

テスト計算

3.1

テスト計算の実行

インストール後、

2

節の「計算の実行」を参考に、サンプルの入力ファイルを使ってテ スト計算を行うことを推奨する。この際、実行の手順やスクリプトの書き方などは、各自 の計算機システムに依存するので、多少の試行錯誤は必要となる。テスト計算は、プリオ ンタンパクに関するもの以外は、シングルコアでも実行可能である。参考として、実行時 間の例を以下に示す。これらは、

CPU

やメモリの指定を含め、サンプルの入力ファイルを 一切変更せずに計算を行った結果である。 • h2o-4-ccpvdz.inp – 12 原子、96 基底、フラグメント数 1 の非 FMO 計算(RHF、RI–MP2) – Core 2 Quad Q9650、コア当たり 2.0 GByte メモリの計算機で、1 コアのみ使用 – 計算時間:3.53 秒

• fmo-h2o-4-ccpvdz.inp

– 12 原子、96 基底、フラグメント数 4 の FMO 計算(RHF、RI–MP2)

– Core 2 Quad Q9650、コア当たり 2.0 GByte メモリの計算機で、1 コアのみ使用 – 計算時間:2.49 秒

• c12h26-ccpvdz.inp

– 38 原子、298 基底、フラグメント数 1 の非 FMO 計算(RHF、RI–MP2) – Core 2 Quad Q9650、コア当たり 2.0 GByte メモリの計算機で、1 コアのみ使用 – 計算時間:247.11 秒

• fmo-c12h26-ccpvdz.inp

– 38 原子、298 基底、フラグメント数 3 の FMO 計算(RHF、RI–MP2)

– Core 2 Quad Q9650、コア当たり 2.0 GByte メモリの計算機で、1 コアのみ使用 – 計算時間:271.02 秒

• gly5-ccpvdz.inp

– 38 原子、379 基底、フラグメント数 1 の非 FMO 計算(RHF、RI–MP2) – Core 2 Quad Q9650、コア当たり 2.0 GByte メモリの計算機で、1 コアのみ使用 – 計算時間:1183.19 秒

• fmo-gly5-ccpvdz.inp

– 38 原子、379 基底、フラグメント数 3 の FMO 計算(RHF、RI–MP2)

(13)

– 計算時間:988.21 秒 • fmo-prion-ccpvdz.inp – 1666 原子、16142 基底、フラグメント数 102 の FMO 計算(RHF、RI–MP2) – XeonE5429、コア当たり 2.0 GByte メモリの計算機で、8 コア使用 – 計算時間:107616.05 秒(29.9 時間) • fmo-prion-gn8-ccpvdz.inp – 1792 原子、16736 基底、フラグメント数 106 の FMO 計算(RHF、RI–MP2) – XeonE5429、コア当たり 2.0 GByte メモリの計算機で、8 コア使用 – 計算時間: 114628.66 秒(31.8 時間) [ 注意 ]

PAICS は、FMO 計算のみを想定しているので、通常の量子化学計算(非 FMO の計算)を実行

する場合は、フラグメント数が 1 の FMO 計算を実行することになる。非 FMO 計算の入力ファイ ルであるにもかかわらず、フラグメントの定義が記述されているのはこのためである。

3.2

実行結果の確認

計算結果の出力ファイルが配布物に含まれているので、テスト計算が終了した後、結果 を比較し正しく動作していることを確認する。 [ 注意 1 ] FMO 計算の場合、モノマー SCC 計算、モノマー計算、ダイマー ES 計算、ダイマー計算の順に計 算が進められる。モノマー計算が終了した時点で、FMO1 エネルギー(1 体のエネルギー)が出力 され、ダイマー計算が終了した時点で、FMO2 エネルギー(2 体のエネルギー)が出力される(こ れらの定義の詳細は、マニュアルの「理論との対応」を参照)。一方、非 FMO 計算の場合は、フラ グメント数が 1 の FMO 計算として扱われ、モノマー SCC 計算は行われず、モノマー計算が(環 境静電ポテンシャルが無い状態で)1 回だけ実行され、計算が終了する。出力ファイルを先頭から 眺めて、このような手順で計算が進んでいることを確認し、エネルギーなどが添付の計算結果と一 致していることを確かめて頂きたい。 [ 注意 2 ] PAICS では、モノマー SCC 計算のイタレーションの回数を減らすため、ダイナミックアップデー トを採用している。従って、並列のしかたで収束過程が異なり、モノマー SCC 計算のイタレーショ

(14)

ンの回数が変化する。(並列のしかたで収束過程が異なることに疑問をもつかもしれないが、ダイ ナミックアップデートの特徴であり、論文にも明記されている。基本的に、モノマー SCC 計算の 閾値に応じて、同じ電子密度に収束する。)また、PAICS のモノマー SCC 計算の収束の閾値は、 エネルギーで 10−6となっている。従って、最終的な計算結果は、通常の量子化学計算(非 FMO 計算)よりも若い桁数で差がでる可能性があり、添付の計算結果と比較する際は、注意して頂きた い。ただし、明らかに変な場合は、コンパイルや実行のしかたに問題があると考えるべき。(もち ろん、バグの可能性もあるので、解決できない場合は開発グループに連絡して下さい。)

(15)

入力

1

キーワード

2

原子と基底関数

3

フラグメント分割

(16)

1

キーワード

1.1

一般ルール

キーワードをを記述した後「スペース」「改行」のいずれかでで区切り、値を記述する。 [ 注意 ] × mpi_np = 4 ・・・・ このように=を使って値を指定してはいけない ○ mpi_np 4 ・・・・ 単にスペースで区切り値を指定する

1.2

並列関連

• mpi np [ int ]

各フラグメントもしくはフラグメントペアの計算に使われる CPU(コア)の数。例えば全 体の CPU(コア)数が 8 で、このキーワードで 2 が指定された場合、各フラグメントやフ ラグメントペアの計算が 2CPU(コア)で実行され、それらの計算が 4 並列で進められる。 従って、全体の CPU(コア)数をこの値で割り算した場合、必ず割り切れなければならな い。デフォルト値は 1。以下のキーワードを使い、モノマー SCC 計算、モノマー計算、ダイ マー計算に関して個別に指定することも出来る。また、全体の CPU(コア)数はプログラム 実行時に、MPI のオプションで指定される。FMO 計算の場合、フラグメントおよびフラグ メントペアの計算は 1 つの CPU(コア)で実行し、それぞれの計算を並列に実行するのが 最も並列効率が高い。従って、特別な理由が無い限り、この値は 1 に設定するべき。メモリ の制限などで、1CPU(コア)では実行不可能なサイズのフラグメントやフラグメントペア が存在する場合のみ、2 以上にする。(例えば、比較的大きなリガンド分子をフラグメント分 割せずに計算する場合など。)

• mpi np scc [ int ]

モノマー SCC 計算において、各フラグメントの計算に使われる CPU(コア)の数。指定さ れなければ、mpi np の値が使用される。mpi np 同様、全体の CPU(コア)数をこの値で割 り算した場合、必ず割り切れなければならない。PAICS では、モノマー SCC 計算にダイ ナミックアップデートを採用しているため、この値によってイタレーションの回数が変わる。 この値を全 CPU 数と同じ値に設定した場合、イタレーションの回数が最小になり、逆に、こ の値を 1 に設定した場合、イタレーションの回数が最大になる。一方、mpi np キーワードで 説明したとおり、並列効率は 1 に設定した場合が最も高い。

(17)

• mpi np mon [ int ]

モノマー計算において、各フラグメントの計算に使われる CPU(コア)の数。指定されなけ れば、mpi np の値が使用される。mpi np 同様、全体の CPU(コア)数をこの値で割り算し た場合、必ず割り切れなければならない。mpi np キーワードで説明したとおり、特別な理由 が無い限り 1 に設定する。

• mpi np dim [ int ]

ダイマー計算において、各フラグメントペアの計算に使われる CPU(コア)の数。指定され なければ、mpi np の値が使用される。mpi np 同様、全体の CPU(コア)数をこの値で割り 算した場合、必ず割り切れなければならない。mpi np キーワードで説明したとおり、特別な 理由が無い限り 1 に設定する。

• print rank [ int ]

標準出力にプリントする CPU のランク。デフォルトは 0。デバッグの時以外は、デフォルト のままでよい。

1.3

メモリ関連

• mem mbyte [ int ]

CPU(コア)当たりのメモリ使用量を MByte 単位で指定する。デフォルトは 128。ユーザー の計算機環境に合わせて、必ず指定するべき入力リスト(指定しなければ、1CPU 当たり 128Mbyte しか使わない。)システムに搭載している物理メモリから OS が使用する分を除い た値がベストだが、ある程度余裕をもって指定するのが良い。

1.4

PAICS 全般

• lprint [ int ]

PAICS 全体の出力フラグ。各計算の出力を個別に指定するフラグも存在し、そちらが指定 された場合は個別のフラグが優先される。

• coord unit [ int ]

(18)

0 : bohr

1 : オングストローム

デフォルトは 0 で「bohr」となっている。

• w result file [ char ]

結果を出力する際のファイル名に使われる文字列。絶対パスで指定する。1020 文字以内で指 定する。基本的に計算結果は標準出力に書き出されるので、必ず指定しなければならないわ けではないが、ログファイルやモノマー SCC の密度を書き出す場合は出力する必要がある。

• w log file [ int ]

ログファイルを作るか否かの指定。ファイル名は、「 [ w result file ] [ mpi rank ] . log 」と なる。以下のように整数で指定する。 0 : 作らない 1 : 作る デフォルトは 0。

• w scc [ int ]

モノマー SCC 計算の結果をファイルに書き出すか否かの指定。ファイル名は、「 [ w result file ] . scc 」となる。以下のように整数で指定する。 0 : 作らない 1 : 作る デフォルトは 0。

• r result file [ char ]

結果を読み込む際のファイル名に使われる文字列。絶対パスで指定する。1020 文字以内で指 定する。計算結果を書き出したファイルを読む場合に指定する必要がある。

• r scc [ int ]

モノマー SCC 計算の結果をファイルから読むか否かの指定。読まれた各フラグメントの密 度情報は、モノマー SCC 計算の初期密度として利用される。読み込むファイル名は、「 [ r result file ] . scc 」となる。以下のように整数で指定する。 0 : 読まない

(19)

デフォルトは 0。

• atom

原子と基底関数を指定するキーワード。必ず指定されるべきキーワード。指定のしかたは後 述。(atom キーワードの代わりに、nucleus キーワードと basis キーワードを使用することも 可能)。

• nucleus

(別名:

charge

) 原子(原子核)を指定するキーワード。このキーワードを用いた場合は、basis キーワードを 用いて基底関数を別に指定する必要がある。通常、基底関数と原子は同じ位置に置かれるの で、atom キーワードを使うことを推奨する。

• basis

基底関数を指定するキーワード。このキーワードを用いた場合は、nucleus キーワードを用い て原子(原子核)を別に指定する必要がある。通常、基底関数と原子は同じ位置に置かれる ので、atom キーワードを使うことを推奨する。

• fragment [ int ]

フラグメントの数を指定するキーワード。必ず指定されるべきキーワード。1 を指定すれば、 FMO 計算ではなく通常の量子化学計算(フラグメントの数が 1 の FMO 計算)が実行される。

• frag atom

フラグメント分割の定義を指定するキーワード。必ず指定されるべきキーワード。fragment キーワードで指定した数と同数の定義が記述されていなければならない。fragment キーワー ドで 1 が指定された場合も記述する必要がある。記述の方法は後述。

• frag def

(別名:

frag

フラグメント分割の定義を指定するキーワード。通常は、frag atom キーワードを用いる。(開 発初期はこのキーワードを使ってフラグメントを定義していたが、後に frag atom キーワー ドが導入された。)

• basis def

基底関数の定義を記述する際に使用されるキーワード。このキーワードを用いて、代表的な 基底関数のいくつかの定義を記述したファイルが用意されている。、ユーザーが新たに基底 関数を定義することも可能。指定の方法は後述。

(20)

• ex point charge

外部静電ポテンシャルとして作用する点電荷を指定するキーワード。以下のように、点電荷 の数を指定した後、電荷の値と座標を、通し番号を付けて記述する。 ex_point_charge [ 点電荷の数 ] 1 [ 電荷の値 ] [ x 座標 ] [ y 座標 ] [ z 座標 ] 2 [ 電荷の値 ] [ x 座標 ] [ y 座標 ] [ z 座標 ] . . .

• position

空間の位置を指定するキーワード。以下のように、位置の数を指定した後、座標を通し番号 を付けて記述する。このキーワードで指定された位置は、電子密度、静電ポテンシャル、電 場などの物理量を計算する際に参照される。 position [ 位置の数 ] 1 [ x 座標 ] [ y 座標 ] [ z 座標 ] 2 [ x 座標 ] [ y 座標 ] [ z 座標 ] . . .

1.5

積分関連

• eri tv [ double ]

積分計算の際の、Kabによるスクリーニングの閾値を指定。デフォルト値は 1.0E−12。

• eri cauchy tv [ double ]

積分計算の際の、コーシー・シュバルツの不等式によるスクリーニングの閾値を指定。デフォ ルト値は 1.0E−10。

• eri use gen [ int ]

4 中心電子反発積分の計算に、一般ルーチンを使うか否かを指定。以下のように整数で指定 する。

(21)

デフォルトは 0。通常、一般ルーチンを使用することは無い(デバッグ用)。

• eri 3cen use gen [ int ]

3 中心電子反発積分の計算に、一般ルーチンを使うか否かを指定。以下のように整数で指定 する。 0 : 特化ルーチンを使用 1 : 一般ルーチンを使用 デフォルトは 0。通常、一般ルーチンを使用することは無い(デバッグ用)。

1.6

FMO 法全般

• scc maxit [ int ]

モノマー SCC 計算における、イタレーションの最大値。デフォルトは 999。

• scc tv 1 [ double ]

モノマー SCC 計算の収束判定の閾値の 1 つ。すべてのモノマーエネルギーの変化が、この 値よりも小さくなったところで収束と見なす。デフォルトは 1.0E−6。scc tv 1 と scc tv 2 の 両方の基準が同時に満たされたときに収束となる。

• scc tv 2 [ double ]

モノマー SCC 計算の収束判定の閾値の 1 つ。系全体の FMO1 エネルギーの変化が、この値 よりも小さくなったところで収束と見なす。デフォルトは 1.0E−6。scc tv 1 と scc tv 2 の両 方の基準が同時に満たされたときに収束となる。

• ldimer [ double ]

ダイマー ES 近似を適用する閾値。ファンデルワールス半径の倍数で指定する。フラグメン ト間の再近接の原子間距離がこの距離よりも大きいフラグメントペアには、ダイマー ES 近 似が適用される。デフォルトは 2.0 。

• lptc [ double ]

環境静電ポテンシャルの計算に点電荷近似を適用する閾値。ファンデルワールス半径の倍数 で指定する。フラグメント間の再近接の原子間距離がこの距離よりも大きいフラグメントか らの環境静電ポテンシャルの計算には、点電荷近似が適用される。デフォルトは 2.0。

(22)

• laoc [ double ]

環境静電ポテンシャルの計算に 3 中心積分の近似を適用する閾値。ファンデルワールス半径 の倍数で指定する。フラグメント間の再近接の原子間距離がこの距離よりも大きいフラグメ ントからの環境静電ポテンシャルの計算には、3 中心積分の近似が適用される。デフォルト は 0.0。

• projection tv [ double ]

結合の切断に伴う projection 演算子に掛かる正の数値」。デフォルトは 1.0E+6。

• cp corr [ int ]

結合を共有していないフラグメント間の IFIE に対して、counter-poise 法による BSSE の補 正を見積もるか否かの指定。以下のように整数で指定される。

1 : CP 補正を行う 0 : CP 補正を行わない

デフォルトは 0。RHF、MP2、RI–MP2 計算で BSSE の補正が計算される。BSSE の補正は、 対象のフラグメントペアを真空中に抜き出して(環境静電ポテンシャルの影響が無い状況で) 算出される。従って、正確な CP 補正が行われるわけではなく、BSSE の値を見積もる程度 と考えるべき。(1 にした場合は、BSSE の補正が適用されていない IFIE も出力される。)

• scc no dyn [ int ]

モノマー SCC 計算でダイナミックアップデートを使うか否かを指定。以下のように整数で 指定する。 1 : ダイナミックアップデートを使わない 0 : ダイナミックアップデートを使う デフォルトは 0(従ってダイナミックアップデートを行う)。ダイナミックアップデートと はモノマー SCC のイタレーションの回数を減らすための工夫であり、mpi np scc もしくは mpi np の値によって、収束までのイタレーションの回数が異なるという特徴がある。基本的 に、ダイナミックアップデートの使用に関わらず、得られる電子密度は(収束判定の範囲内 で)同じとなる。(他のプログラムでは採用されていないので、気になるようであれば 1 に 設定すれば良い。)

• pro loc tv [ double ]

(23)

びに自動的に生成する(他のプログラムでは、基底関数ごとにデーターベースとして保持し ている場合が多い)。従って、モノマー SCC 計算を実行する前に、結合の切断の数だけ、メ タン分子の RHF 計算を実行することになる。

• pro loc maxit [ int ]

projection 演算子を自動生成する際のイタレーション回数の最大値。デフォルト値は 999。変 える必要は無い(デバッグ用)。

• pro h basis [ char * ]

projection 演算子を自動生成する際に CH4分子の水素原子上に設置される基底関数の種類を 指定。デフォルトは STO-3G 001。変える必要は無い(デバッグ用)。

• frag calc pair [ int ] [ list ... ]

ダイマー計算を実行するフラグメントペアを指定するキーワード。通常、FMO 計算では全 てのダイマーペアの計算を実行するが、フラグメント間の相互作用エネルギー(IFIE)のみ が必要な場合は、対応するダイマーペアの計算だけで良い。(これを指定した場合は、トータ ルエネルギーや電子密度などの全体のプロパティは得られない)。以下のように指定する。 frag_calc_pair [ リストの数 ] [ リスト 1 ] [ リスト 2 ] . . . [ リスト ] にはフラグメントペアを指定する記述が入り、以下のように記述する。 例 1 : ifrag jfrag ---> ifrag と jfrag のペア

例 2 : ifrag jfrag1-jfrag2 ---> ifrag と jfrag1 から jfrag2 までのペア 例 3 : ifrag ALL ---> ifrag と全てのフラグメントペア

1.7

RHF 関連

• rhf chk [ int ]

RHF 計算を行うか否かを指定するフラグ。以下のように整数で指定。 1 : RHF 計算を行う

(24)

デフォルトは 1。

• rhf chk no int buff

RHF の際、積分を(可能な限り)メモリに保存し再利用するか否かを指定するフラグ。以下 のように整数で指定する。 1 : 積分値は一切保存せず毎回全ての積分を計算する 0 : 可能な限り積分値を保存し再利用する デフォルトは 0。通常はデフォルトのままで計算を行う(1 はデバッグ用)。

• rhf lprint 1 [ int ]

モノマー RHF 計算のプリントフラグ。-1 にすると推奨の出力になる。デフォルト値は-1。

• rhf lprint 2 [ int ]

ダイマー RHF 計算のプリントフラグ。-1 にすると推奨の出力になる。デフォルト値は -1。

• rhf maxit [ int ]

SCF イタレーションの最大数。デフォルト値は 999 。

• rhf ndiis [ int ]

DIIS のエラーベクトルを計算するために保持する FOCK 行列の数。デフォルト値は 4。全 てのモノマーおよびダイマーペアにこのキーワードで指定した値が適用される。

• rhf diis tv [ double ]

DIIS に切り替える閾値。エラーベクトルの最大値がこの値よりも小さくなったら DIIS を行 う。デフォルト値は 1.0。

• rhf orth [ int ]

基底関数の直交化を行う手法の指定。以下のように整数で指定する。 0 : 正準直交化 1 : 対称直交化 デフォルト値は 0。

• rhf init mo [ int ]

(25)

0 : HCORE 1 : 射影 デフォルト値は 1。FMO 計算の場合、モノマー SCC 計算の 1 回目のイタレーションの時だ け、初期軌道を作成する必要がある。2 回目以降のイタレーションでは、前回の解が初期軌 道として使用される。また、モノマー RHF 計算では、モノマー SCC 計算で得られた解が初 期軌道として使われる(この場合、初期軌道が解そのもの)。ダイマー RHF 計算では、各フ ラグメントのモノマー RHF 計算の解を合わせたものが初期軌道として使われる。

• rhf orth tv [ double ]

正準直交化の際に参照される重なり行列の固有値の閾値。デフォルト値は 1.0E−6。

• rhf eng tv [ double ]

収束の判定を行う際のエネルギーの閾値。デフォルト値は 1.0E−8。

1.8

MP2 関連(カノニカル MP2)

• cmp2 chk [ int ]

MP2 計算を行うか否かのフラグ。以下のように整数で指定する。 0 : 計算しない 1 : 計算する デフォルト値は 0。(こちらの MP2 ではなく、RI–MP2 を使用することを推奨する)。

• cmp2 lprint 1 [ int ]

のモノマー MP2 計算の出力フラグ。-1 だと推奨の出力になる。デフォルト値は-1。

• cmp2 lprint 2 [ int ]

ダイマー MP2 計算の出力フラグ。-1 だと推奨の出力になる。デフォルト値は-1。

• cmp2 th iajs [ double ]

MP2 の積分変換に使用される閾値の 1 つ。デフォルト値は 1.0E−8。

• cmp2 th iars [ double ]

MP2 の積分変換に使用される閾値の 1 つ。デフォルト値は 1.0E−8。

(26)

• cmp2 th pqrs [ double ]

MP2 の積分変換の際に使用される閾値の 1 つ。デフォルト値は 1.0E−8。

1.9

RI–MP2 関連

• ri cmp2 chk [ int ]

RI–MP2 計算を行うか否かのフラグ。以下のように整数で指定する。 0 : 計算しない 1 : 計算する デフォルト値は 0。RI–MP2 計算では補助基底が使用され、補助基底の種類は自動的に選択さ れる。現在は、cc–pVDZ、cc–pVTZ の補助基底のみ(それぞれ、cc–pVDZri、cc–pVTZri) が定義されており、 cc-pVDZri → cc-pVDZ、cc-pVDZso、6-31G、6-31G**の場合使用される。 cc-pVTZri → cc-pVTZ の場合使用される。

• ri cmp2 lprint 1 [ int ]

モノマー RI–MP2 のプリントフラグ。-1 で推奨の出力になる。デフォルト値は-1。

• ri cmp2 lprint 2 [ int ]

ダイマー RI–LMP2 のプリントフラグ。-1 で推奨の出力になる。デフォルト値は-1。

1.10

局在化 MP2 関連

• lmp2 chk [ int ]

局在化 MP2 計算を行うか否かのフラグ。以下のように整数で指定する。 0 : 計算しない 1 : 計算する デフォルト値は 0。PAICS の LMP2 は、高速化のためではなく、相互作用解析(FILM)を 実行するために実装されている。従って、フラグメントペア間のカットオフの閾値が厳しく 設定されており、計算には時間が掛かる。

• lmp2 lprint 1 [ int ]

(27)

• lmp2 lprint 2 [ int ]

ダイマー LMP2 のプリントフラグ。-1 で推奨の出力になる。デフォルト値は-1。

• lmp2 lprint loc 1 [ int ]

モノマー LMP2 の局在化に関するプリントフラグ。-1 で推奨の出力になる。デフォルト値は -1。

• lmp2 lprint loc 2 [ int ]

ダイマー LMP2 の局在化に関するプリントフラグ。-1 で推奨の出力になる。デフォルト値は -1。

• lmp2 loc [ int ]

局在化の手法の指定。以下のように整数で指定する。 0 : Pipek-Mezey 1 : Boys 2 : 局在化せず デフォルト値は 0。

• lmp2 max itr [ int ]

線形方程式のイタレーションの最大数。デフォルト値は 30。

• lmp2 th 1 [ double ]

ドメインの決定に使用される閾値の 1 つ。デフォルト値は 0.02。

• lmp2 th 1 dim [ double ]

ドメインの決定に使用される閾値の 1 つ。デフォルト値は 0.001。

• lmp2 th 2 [ double ]

軌道ペアの選択に使用される閾値の 1 つ。デフォルト値は 4.0。

• lmp2 th 2 dim [ double ]

軌道ペアの選択に使用される閾値の 1 つ。デフォルト値は 8.0。

• lmp2 th 3 [ double ]

積分変換に使用される閾値。デフォルト値は 0.004。

(28)

• lmp2 th 4 [ double ]

(29)

2

原子と基底関数

PAICS

では、原子と基底関数を

atom

キーワードを用いて、以下のように指定する。 ATOM [ 原子の数 ] [ 基底関数のタイプ ] [ 通し番号 ] [ 原子番号 ] [ 基底関数の定義名 ] [ X ] [ Y ] [ Z ] [ 通し番号 ] [ 原子番号 ] [ 基底関数の定義名 ] [ X ] [ Y ] [ Z ] . . 「基底関数のタイプ」は以下のように整数で指定する。 0 : カルテシアン型 ( d 軌道:6 成分、f 軌道:10 成分、g 軌道:15 成分 ) 1 : 球面調和型   ( d 軌道:5 成分、f 軌道: 7 成分、g 軌道: 9 成分 ) 「基底関数の定義名」は、あらかじめ定義してある基底関数の定義名を記述する。(詳細は、 このマニュアルの「基底関数の定義」の節を参照。)また、座標は、キーワード「

coord unit

」 で指定した単位で記述する。(

0

ならば

bohr

1

ならば

˚

A

となる。デフォルトは

0

なので、

coord unit

を指定しなければ

bohr

で記述することになる。)これらは、フリーフォーマッ

トでスペースで区切られる。水の

4

量体を、

6-31G**

で計算する場合は以下のようになる。 ATOM 12 0 1 8 6-31G**_008 -3.486380294 1.5449569318 0.1478975254 2 8 6-31G**_008 1.544970159 3.4861308505 -0.1479409891 3 8 6-31G**_008 3.486367066 -1.5449682702 0.1478956357 4 8 6-31G**_008 -1.544966380 -3.4861818731 -0.1479164227 5 1 6-31G**_001 -1.941778631 2.4631030463 0.0026323884 6 1 6-31G**_001 -4.427907990 2.2913874128 1.4636268988 7 1 6-31G**_001 2.463369497 1.9416217838 -0.0032125344 8 1 6-31G**_001 2.291661423 4.4286015198 -1.4628445522 9 1 6-31G**_001 1.941776741 -2.4631408409 0.0026342782 10 1 6-31G**_001 4.427775709 -2.2911795429 1.4638328790 11 1 6-31G**_001 -2.463452645 -1.9417635132 -0.0027797871 12 1 6-31G**_001 -2.291353397 -4.4281347574 -1.4633642269

(30)

3

フラグメント分割

FRAGMENT

キーワードでフラグメントの数を指定し、

FRAG ATOM

キーワードで各フ

ラグメントの定義を指定する。従って

FRAG ATOM

キーワードは、フラグメントの数だけ 記述されていなければならない。以下のよう記述する。 FRAGMENT [ フラグメントの数 ] FRAG_ATOM [ 電荷 ] [ 原子の数 ] [ 結合の切断に伴う追加の原子の数 ] [ 原子の通し番号を [ 原子の数 ] だけ並べる . . . ] [ 追加の原子の通し番号を [ 追加の原子の数 ] だけ並べる . . . ] FRAG_ATOM [ 電荷 ] [ 原子の数 ] [ 結合の切断に伴う追加の原子の数 ] [ 原子の通し番号を [ 原子の数 ] だけ並べる . . . ] [ 追加の原子の通し番号を [ 追加の原子の数 ] だけ並べる . . . ] FRAG_ATOM . . . 基本的には、各フラグメントの電荷、原子の数、結合の切断に伴う追加の原子の数を指定 し、原子の通し番号、追加の原子の通し番号を記述する。例として、

C

12

H

26を図

1

のよう に分割した場合を示す。 FRAGMENT 3 FRAG_ATOM 0 13 1 1 2 3 4 5 6 7 8 9 10 11 12 13 14 FRAG_ATOM 0 12 1 14 15 16 17 18 19 20 21 22 23 24 25 26 FRAG_ATOM 0 13 0 26 27 28 29 30 31 32 33 34 35 36 37 38

14

番目の炭素原子は

fragment1

の原子核ではないが、結合の切断に伴い

fragment1

に追 加される。(厳密には

14

番目の炭素原子の

+6

のうち、

+1

だけが追加される。)よって、

fragment1

における追加の原子は

14

番目の原子となる。同様に、

fragment2

には

26

番目の 原子が追加される。

fragment3

には追加される原子は存在しない。

(31)

1: C

12

H

26分子(

3

分割)の切断の定義。(図では水素原子を省略。数字は原子の通し 番号)。

C

C

C

C

C

C

C

C

C

C

C

C

1

5

8

11

14

17

20

23

26

29

32

35

(32)

4

基底関数の定義

PAICS

には以下の基底関数が定義されている。

基底関数 定義名 ファイル 原子番号

1 STO-3G STO-3G *** basis / sto3g.dat 1 ∼ 53

2 6-31G 6-31G *** basis / 631g.dat 1 ∼ 30

3 6-31G** 6-31G** *** basis / 631gdp.dat 1 ∼ 30

4 cc-pVDZ cc-pVDZ *** basis / cc-pVDZ.dat 1 ∼ 36

5 cc-pVTZ cc-pVTZ *** basis / cc-pVTZ.dat 1 ∼ 36

6 cc-pVQZ cc-pVQZ *** basis / cc-pVQZ.dat 1 ∼ 36

7 cc-pVDZso cc-pVDZso *** basis / cc-pVDZso.dat 1 ∼ 36

8 cc-pVTZso cc-pVTZso *** basis / cc-pVTZso.dat 1 ∼ 36

9 cc-pVDZri cc-pVDZri *** basis / cc-pVDZri.dat 1 ∼ 36

10 cc-pVTZri cc-pVTZri *** basis / cc-pVTZri.dat 1 ∼ 36

また、用意されている基底関数の以外に、独自に基底関数を定義することも可能で、入力 ファイル中で

BASIS DEF

キーワードを用いて以下のように記述する。 BASIS_DEF [ 定義名 ] [ シェルの数 ] [ 角運動量 ] [ 短縮数 ] [ 通し番号 ] [ 原始ガウス関数の係数 ] [ 原始ガウス関数の指数 ] . . [ 角運動量 ] [ 短縮数 ] [ 通し番号 ] [ 原始ガウス関数の係数 ] [ 原始ガウス関数の指数 ] . . [ 角運動量 ] [ 短縮数 ] . . 図

2

に炭素原子の

cc-pVDZ

の例を示す。ユーザーが基底関数の定義を追加するための定

義ファイル

user def.dat

も用意されている。

PAICS

を実行すると、上の基底関数定義ファ

イルと

uset def.dat

が自動的に読まれる。また、基底関数の定義を、インプットファイル

(33)

2:

炭素原子の

cc-pVDZ

の定義。 BASIS_DEF cc-pVDZ_006 6 0 8 1 0.0006920 6665.0000000 2 0.0053290 1000.0000000 3 0.0270770 228.0000000 4 0.1017180 64.7100000 5 0.2747400 21.0600000 6 0.4485640 7.4950000 7 0.2850740 2.7970000 8 0.0152040 0.5215000 0 8 1 -0.0001460 6665.0000000 2 -0.0011540 1000.0000000 3 -0.0057250 228.0000000 4 -0.0233120 64.7100000 5 -0.0639550 21.0600000 6 -0.1499810 7.4950000 7 -0.1272620 2.7970000 8 0.5445290 0.5215000 0 1 1 1.0000000 0.1596000 1 3 1 0.0381090 9.4390000 2 0.2094800 2.0020000 3 0.5085570 0.5456000 1 1 1 1.0000000 0.1517000 2 1 1 1.0000000 0.5500000

(34)

理論との対応

1 FMO−RHF(エネルギー) 2 FMO−RHF(密度) 3 FMO−MP2(エネルギー) 4 FMO−RI−MP2(エネルギー) 5 FMO−LMP2(エネルギー)

(35)

1

FMO–RHF

(エネルギー)

1.1

エネルギー

FMO 法におけるモノマーおよびダイマーの RHF 計算では、通常の Fock 演算子に「他のフラグ メントからの静電ポテンシャル演算子」と「結合の切断に伴う射影演算子」を加えた以下のような Fock 演算子を用いる(X は、フラグメントおよびフラグメントペアを示すインデックスで、モノ マー計算では X = I、ダイマー計算では X = IJ と考える)。 ˜ fX =fX+ X K6=X n u(K)+ v(K) o + PX (1.1) u(K)= X A∈K −ZA | RA− r1 | (1.2) v(K)= Z dr2 ρ K(r 2) | r1− r2| (1.3) ˆ PX= B X k | θXkihθXk| (1.4) ここで、u(K)は K 番目のフラグメントの原子核からの引力ポテンシャル演算子、v(K)は K 番目 のフラグメントの電子からの反発ポテンシャル演算子である(通常、これらを環境静電ポテンシャ ルと呼ぶ)。PXは結合の切断に伴う射影演算子である。また、fXは各フラグメントおよびフラグ メントペアに関する通常の Fock 演算子で、 fX = hX+ 2 JX− KX (1.5) hX= −1 2 2+ X A∈X −ZA | RA− r1 | (1.6) である。また、JXおよび KXは、それぞれクーロン演算子および交換演算子である。X に含まれ る基底関数を µ, ν · · · とし、各演算子の表現行列を、 HcoreXµν= h µ | hX| ν i (1.7)

(36)

uX(K) µν = h µ | uK| ν i (1.8) vX(K) µν = h µ | vK| ν i (1.9) PXµν = h µ | P | ν i (1.10) ˜ GXµν = h µ | 2JX− KX| ν i (1.11) と定義する。さらに、 VX(K)= uX(K)+ vX(K) (1.12) VX= X K6=X VX(K) (1.13) ˜ HcoreX = HcoreX+ VX+ PX (1.14) ˜ FX= ˜HcoreX+ ˜GX (1.15) の行列を定義する。また、 ˜fXによる Fock 方程式を解いて得られた分子軌道を、 ˜ ψiX = X µ ˜ CX µi φµ (1.16) と定義し、密度行列を、 ˜ DXµν= 2 X i ˜ CXµi C˜Xνi (1.17)

(37)

—————————— [ 注意 ] PAICS では、モノマー計算に関しては、分子軌道の数、軌道エネルギー、軌道係数行列を保存 するが、ダイマー計算に関しては、そのペアの計算が終わった時点で値を破棄する。 —————————— モノマーおよびダイマーのエネルギーは EHF X =1 2 T r n ˜ DX H˜ coreX+ ˜FX  o (1.18) と書ける。さらに、ここから環境静電ポテンシャルの寄与を取り除いたものを E0 HF とし、 E0 HFX= EHFX− T r n ˜ DXVX o (1.19) と定義する。全系の FMO1−RHF エネルギーおよび FMO2−RHF エネルギーは EHF f mo1= X I E0 HF I (1.20) EHF f mo2= X I<J EHF IJ− ( N − 2 ) X I EHF I (1.21) と書ける。EHFf mo2を書き換えると、 EHFf mo2 = X I EHFI+ X I>J  EHFIJ− EHFI− EHFJ  (1.22) となる。さらに E0 HF を用いて書き直すと、 EHF f mo2= X I E0 HF I+ X I>J  E0 HF IJ− E0 HFI− E0 HFJ  +X I T rnD˜IVIo+X I>J T rnD˜IJVIJo− T rnD˜IVIo− T rnD˜JVJo ! (1.23)

(38)

となり、 EHF f mo2= X I E0 HF I+ X I>J  E0 HF IJ− E0 HFI− E0 HFJ  +X I>J T rnD˜IJVIJo− T rnD˜I(J)VIJo− T rnD˜J(I)VIJo ! (1.24) となる。ここで、 ˜DI(J)は、IJ ペアの基底関数と同じ次元数の行列で、 µ ∈ I かつ ν ∈ I の場合I(J) µν= ˜DIµν それ以外の場合 D˜I(J)µν= 0 と定義される。さらに、∆ ˜DIJ ∆ ˜DIJ = ˜DIJ− ˜DI(J)− ˜DJ(I) (1.25) を定義すると、(1.24)は EHF f mo2 = X I E0 HF I+ X I>J  E0 HF IJ− E0 HFI− E0 HFJ  +X I>J T rn∆ ˜DIJ VIJo (1.26) となる。新たに ∆EHFIJ を、 ∆EHFIJ =  E0 HFIJ− E0 HFI− E0 HFJ  + T r n ∆ ˜DIJVIJ o (1.27) と定義すると、FMO2−RHF エネルギーは EHF f mo2 = X I E0 HF I+ X I>J ∆EHF IJ (1.28) となる。第 1 項は FMO1–RHF エネルギーなので、 EHFf mo2= EHFf mo1+ X I>J ∆EHFIJ (1.29) と書ける。従って、∆EHFIJ は FMO1–RHF エネルギーに対する 2 体の補正項となっており、こ

れをフラグメント間の相互作用エネルギーと考える。通常、この値は、inter fragment interaction energy(IFIE)もしくは pair interaction energy(PIE)と呼ばれる。各数値とプログラム中の変

(39)

1.2

環境静電ポテンシャルの近似

環境静電ポテンシャル行列(VX)は、他のフラグメントの原子核からの引力ポテンシャル(uX) と電子密度からの反発ポテンシャル(vX)の和として VX= X K6=X uX(K)+ X K6=X vX(K) (1.30) と計算される。uX(K)の項は X K6=X uX(K) µν = h µ | X K6=X X A∈K −ZA | RA− r1| | ν i (1.31) のように計算される。一方、vX(K)の項は 3 つの近似レベルで計算される。 1. 相手のフラグメントが作る電荷密度からの静電ポテンシャルを、近似を用いずに 4 中心積分 から計算する。 2. 相手のフラグメントが作る電子密度からの静電ポテンシャルを、3 中心積分の近似を用いて 計算する(esp-aoc 近似) 3. 相手のフラグメントが作る電子密度を原子核上のポピュレーションと近似し、静電ポテンシャ ルを計算する(esp-ptc 近似) ここで、vX(K)を各計算レベルからの寄与に分けて、 X K6=X vX(K)=X K4 v4X(K4)+ X K3 v3X(K3)+ X Kp vpX(Kp) (1.32) と記述する。 < 4 中心積分による環境静電ポテンシャルの計算 > (1.32)の v4X(K4)は、4 中心積分から計算される環境静電ポテンシャルである。K4番目のフ ラグメントの電子密度 ρK4(r) から、 X K4 v4X(K4)µν = X K4 h µ | Z dr2 ρ K4(r 2) | r1− r2 | | ν i (1.33)

(40)

のように計算される。ここで、ρK4(r) を、モノマー SCC 計算で得られた各フラグメントの密度行 列 DsX を用いて、 ρK4(r) = X λσ∈K4 ˜ DsK4λσφK4λ(r)φK4σ(r) (1.34) と記述する。よって、 X K4 v4X(K4)µν = X K4 X λσ∈K4 ˜ DsK4λσ( µν | λσ ) (1.35) となる。 < 3 中心積分の近似による環境静電ポテンシャルの計算 > (1.32)の v3X(K3)は、3 中心積分の近似を用いた環境静電ポテンシャルである。K3番目のフ ラグメントの電子密度 ρK3(r) から、 X k3 v3X(K3)µν = X K3 h µ | Z dr2 ρ K3(r 2) | r1− r2 | | ν i (1.36) のように計算される。ここで、ρK3(r) を、モノマー SCC 計算で得られた各フラグメントの密度行 列 DsX を用いて、 ρK3(r) = X λ∈K3  X σ∈K3 ˜ DsK3λσSσλ  φλφλ (1.37) と近似する。よって、 X K3 v3X(K3)µν = X K3 X λ∈K3  ˜ DsK3S  λλ( µν | λλ ) (1.38) となる。 —————————— [ 注意 ]

(41)

PAICS では、6 成分系の d 軌道以上の基底関数は規格化されていない(5 成分系の基底関数は 規格化されている)。通常、このことは特に注意される必要は無いが、(1.38)を計算する場合は規 格化因子を考慮して、 X K3 v3X(K3)µν = X K3 X λ∈K3  ˜ DK3S  λλ 1 h λ | λ i ( µν | λλ ) (1.39) としなければならない。 —————————— < 点電荷近似による環境静電ポテンシャルの計算 > (1.32)の vpX(Kp)は、点電荷近似による環境静電ポテンシャルである。モノマー SCC 計算で 得られた各フラグメントの電子密度を、原子核(B)上のポピュレーション(pcB)で近似し、そ れらから感じるポテンシャルとして、 X Kp vpX(Kp)µν = X Kp h µ | X B∈Kp pcB | RB− r1 | | ν i (1.40) と記述する。ここで出てきた各数値とプログラム中の変数との対応関係を表 1 および表 2 に記載 する。

1.3

ダイマー ES 近似

ダイマー ES 近似とは、十分に離れたフラグメントペアに関して、ダイマー RHF 計算を行わず に E0 HFIJを算出する近似法である。フラグメント間の静電的な相互作用のみを考慮して、以下の ように計算される。 E0 HF IJ = E0 HFI+ E0 HFJ +X A∈J Z −ZA ρI(r1) | RA− r1 |dr1+ X A∈I Z −ZAρJ(r1) | RA− r1 |dr1+ Z ρI(r 1)ρJ(r2) | r1− r2 | dr1dr2 (1.41) これを密度行列を用いて書き直すと、 E0 HFIJ = E0 HFI+ E0 HFJ + X µν∈I ˜ DI µνuI(J)µν+ X µν∈J ˜ DJ µνuJ(I)µν+ X µν∈I X λσ∈J ˜ DI µνJλσ( µν | λσ ) (1.42)

(42)

となる。また、ダイマー ES 近似を用いた場合、そのペアに関しては、 T rn∆ ˜DIJVIJo= T rnD˜IJVIJo− T rnD˜I(J)VIJo− T rnD˜J(I)VIJo= 0 (1.43) なので、(1.27)より、∆EHFIJは、 ∆EHFIJ=E0 HFIJ− E0 HFI − E0 HFJ (1.44) となる。よって、(1.42)を(1.44)へ代入すると、 ∆EHF IJ = X µν∈I ˜ DI µνuI(J)µν+ X µν∈J ˜ DJ µνuJ(I)µν+ X µν∈I X λσ∈J ˜ DI µνJλσ( µν | λσ ) (1.45) が得られる。ここで出てきた各数値とプログラム中の変数との対応関係を表 1 および表 2 に記載 する。

1.4

原子核を含めたエネルギー

(1.18)のモノマーおよびダイマーのエネルギーは電子エネルギーのみを考慮したものだが、原 子核のポテンシャルエネルギーを考慮すると、 ¯ EHF X =1 2 T r n ˜ DX H˜ coreX+ ˜FX  o + X (A<B) ∈X zAzB | RA− RB | + X K6=X X A ∈X X C∈K zAzC | RA− RC |+ X K6=X X A∈X Z −zAρK(r) | RA− r | dr (1.46) となる(上付の印は、原子核のエネルギーを含めた表式と電子のみのエネルギー表式を区別するた め)。第 2 項目が「X 内の原子核の核間反発」、第 3 項目が「X 内の原子核と他のフラグメントの 原子核との核間反発ポテンシャル」、第 4 項目が「X 内の原子核と他のフラグメントの電子との核 引力ポテンシャル」である。ここで、それぞれを、 ZuX= X (A<B) ∈X zAzB | RA− RB |  (1.47) ZuX−K= X X zAzC | RA− RC | (1.48)

(43)

ZeX−K = X A∈X Z zAρK(r) | RA− r |dr (1.49) と表す。(1.46)は、 ¯ EHFX= EHFX+ ZuX+ X K6=X ZuX−K+ X K6=X ZeX−K (1.50) となる。 他のフラグメントからの静電ポテンシャルの寄与を取り除いたモノマーエネルギーの和が FMO1– RHF エネルギーなので、 ¯ EHFf mo1 = X I E0 HFI + X I ZuI (1.51) と書ける。つまり、電子のみの FMO1–RHF エネルギー(第 1 項)に各フラグメント内の核間反発エ ネルギーの和(第 2 項)を加えたものが、原子核のポテンシャルエネルギーまで含めた FMO1–RHF エネルギーとなる。また、FMO2–RHF エネルギーは、 ¯ EHFf mo2= X I<J ¯ EHFIJ− (N − 2) X I ¯ EHFI (1.52) であり、これを計算すると、 ¯ EHF f mo2= X I<J EHF IJ− (N − 2) X I EHF I+ n X I ZuI+ X I<J ZuI−J o (1.53) が得られる。つまり、電子のみの FMO2–RHF エネルギー(第 1 項、第 2 項)に、系全体の核間 反発エネルギー(第 3 項、第 4 項)を加えたものが、原子核のポテンシャルエネルギーまで含めた FMO2–RHF エネルギーとなる。また、この式は、 ¯ EHFf mo2= ¯EHFf mo1+ X I<J  ∆EHFIJ+ ZuI−J  (1.54) と書け、第 2 項が 2 体の補正を表している。よって、IFIE は、 ∆ ¯EHFIJ = ∆EHFIJ+ ZuI−J (1.55) となる。つまり、電子のみの IFIE(第 1 項)にフラグメント間の核反発エネルギー(第 2 項)を 加えたものが、原子核のポテンシャルエネルギーまで含めた IFIE となる。

(44)

1.5

外部静電ポテンシャルが存在する場合

外部静電ポテンシャルが存在する場合、(1.1)の fock 演算子は、 ˜ fX =fX+ X K6=X n uK+ vKo+ PX+ v eX (1.56) となる。また、veX(r) の基底関数による表現行列を、 VeXµν = h µ | ve| ν i (1.57) とする。EHFX および E0 HFX は、(1.56)を用いた fock 方程式から得られた密度行列を用いて (1.19)および(1.18)のように定義される。従って、E0 HFXは X の内部エネルギーと外部静電 ポテンシャルとの相互作用エネルギーを含んでいる(つまり、他のフラグメントからの静電ポテン シャルのみ除外されている)。E0 HFXから、さらに外部静電ポテンシャルとの相互作用エネルギー を取り除いたものを、 E00 HF X= E0 HFX− T r n ˜ DXV eX o (1.58) と定義すると、(1.20)から、FMO1–RHF エネルギーは、 EHFf mo1= X I E00 HFI+ X I T r n ˜ DIVeI o (1.59) と書ける。第 1 項が内部エネルギーを示し、第 2 項が外部静電ポテンシャルとの相互作用エネル ギーを示している。FMO2–RHF エネルギーは(1.26)なので、E00 HFXを用ると EHFf mo2= X I E00 HFI+ X I>J  E00 HFIJ− E00 HFI− E00 HFJ  +X I>J T r n ∆ ˜DIJVIJ o +X I T r n ˜ DIVeI o +X I>J T r n ˜ DIJVeIJ o − T r n ˜ DIVeI o − T r n ˜ DJVeJ o! (1.60) となる。さらに、Veの場合は、単純に、 T rnD˜IV eI o = T rnD˜I(J)V eIJ o (1.61)

(45)

T r n ˜ DJV eJ o = T r n ˜ DJ(I)V eIJ o (1.62) なので、 EHFf mo2= X I E00 HFI+ X I>J  E00 HFIJ− E00 HFI− E00 HFJ  +X I>J T r n ∆ ˜DIJVIJ o +X I T r n ˜ DIVeI o +X I>J T r n ∆ ˜DIJVeIJ o (1.63) となる。第 1、2、3 項が内部エネルギーを示し、第 4、5 項が外部静電ポテンシャルとの相互作用 エネルギーを示している。さらに、(1.63)は、 EHF f mo2= EHFf mo1+ X I>J n E00 HF IJ− E00 HFI− E00 HFJ  +T r ∆ ˜DIJVIJ+ T r ∆ ˜DIJVeIJ  o (1.64) と書け、この式の第 2 項が 2 体の補正となっている。よって、外部静電ポテンシャルが存在する場 合の IFIE を、以下のように定義することができる。 ∆EHFIJ= E00 HFIJ− E00 HFI− E00 HFJ  +T r ∆ ˜DIJ VIJ+ T r ∆ ˜DIJVeIJ  (1.65) 外部静電ポテンシャルが存在しない場合は、E00 HFXは E0 HFXと同じ値で、VeXはゼロ行列な ので、(1.27)の定義と一致する。まとめると、 • FMO1–RHF の全エネルギーが(1.59)で、そのうち、内部エネルギーが第 1 項で、外部静 電ポテンシャルとの相互作用エネルギーが第 2 項。 • FMO2–RHF の全エネルギーが(1.63)で、そのうち、内部エネルギーが第 1、2、3 項で、外 部静電ポテンシャルとの相互作用エネルギーが第 4、5 項。 • IFIE は(1.65)。 である。ダイマー ES ペアに関しては、(1.63)の第 3 項と第 5 項、同様に(1.64)の中括弧の第 2 項と第 3 項がゼロになる。 < 原子核を含めたエネルギー >

(46)

外部静電ポテンシャルが存在すると、原子核もポテンシャルエネルギーを感じる。よって、原子 核のポテンシャルエネルギーまで考慮する場合、 X I ZI−ext (1.66) を追加する必要がある。ここで、ZX−extは、X の原子核が外部静電ポテンシャルから感じるポテ ンシャルエネルギーである。各数値とプログラム中の変数との対応関係を表 1 および表 2 に記載 する。

1.6

ダイマーペアの計算を制限した場合

全系を F1と F2に分け、F1のフラグメントのインデックスを I、J とし、F2のフラグメントの インデックスを K、L とする。この場合、FMO1–RHF のエネルギー表式(1.20)は、 EHF f mo1= X I E0 HF I+ X K E0 HF K (1.67) と書ける。また、FMO2–RHF のエネルギー表式(1.28)は、 EHFf mo2 = X I E0 HFI + X I>J ∆EHFIJ+ X I X K ∆EHFIK +X K E0 HFK+ X K>L ∆EHFKL (1.68) と書ける。今、F1のフラグメントを含むペアに関してはダイマー計算を実行するが、他のペアに関し ては実行しない場合を考える。このとき、(1.68)の第 5 項が計算されないため、全系の FMO2–RHF エネルギーを得ることはできない。しかし、 F1のフラグメント数  F2のフラグメント数 の場合、計算時間の多くが第 5 項の計算に使われるため、大幅に計算時間を減らすことができる。 これは、F1と F2間の相互作用解析が目的の場合には有効である。例えば、リガンドを F1としタ ンパクを F2とすると、全エネルギーを計算する場合に比べて 1/10 程度の時間で、リガンド−タン パク間の IFIE を全て計算することができる。 < 部分エネルギーの定義 >

(47)

(1.68)の第 1 項と第 2 項は、F1の内部エネルギーを表している。また、第 3 項は、F1が F2か ら感じる相互作用エネルギーを表している。そこで、F1の「部分エネルギー」を EHFf mo2(F1)= X I E0 HFI + X I>J ∆EHFIJ+ X I X K ∆EHFIK (1.69) と定義する。この表式は「部分エネルギー勾配」の定式化で使用される。

1.7

BSSE の補正

FMO 法では、環境静電ポテンシャルを含めた計算を行うので、CP 補正は単純ではない。また、 結合の切断がある場合は、切断部分の基底関数が二重に使用されるので、さらに困難となる。そこ で、「結合を互いにシェアしていないフラグメント間」の IFIE における BSSE の値のみを、「環境 静電ポテンシャルの影響を無視した真空中の計算から見積もる」ことにする。そのためには、通常 のモノマー計算およびダイマー計算に加えて、 モノマーJの位置にも基底関数を設置した真空中のモノマーIの計算 : EvacHFI (IJ) モノマーIの位置にも基底関数を設置した真空中のモノマーJの計算 : EvacHFJ (IJ) 真空中のモノマーIの計算 : EvacHFI 真空中のモノマーJの計算 : EvacHFJ の 4 つのエネルギー計算が必要になる。これらを用いると、フラグメントペアの BSSE は、 EHF −BSSE

IJ = ( EvacHFI (IJ)− EvacHFI ) + ( EvacHFJ (IJ)− EvacHFJ ) (1.70)

と見積もられる。よって、CP 補正された IFIE は

∆EHF −CPIJ= ∆EHFIJ− EHF −BSSEIJ (1.71)

となる。ここで出てきた各数値とプログラム中の変数との対応関係を表 1 および表 2 に記載する。

1.8

計算結果として出力される数値

(48)

• フラグメントの正電荷の中心 : + charge center モノマーSCC計算の結果に無関係に、原子核の位置が指定された段階で決まる値。各フラグメントご とに出力される。 • フラグメントの負電荷の中心 : - charge center モノマーSCC計算で得られた各フラグメントの電子密度から計算される。各フラグメントごとに出力 される。 <モノマー計算終了後> • モノマーエネルギー 1 : rhf ( E’ ) 原子核のポテンシャルエネルギーおよび外部静電ポテンシャルとの相互作用エネルギーを含めたモノ マーのエネルギー。環境静電ポテンシャルからの寄与は除外されている。 E0 HFI+ ZuI+ ZI−ext (1.72) • モノマーエネルギー 2 : rhf ( E” ) モノマーエネルギー1から、外部静電ポテンシャルとの相互作用エネルギーを取り除いた値。外部静電 ポテンシャルが存在しない場合は、モノマーエネルギー1と同じ値となる。 E00 HFI+ ZuI (1.73) • FMO1–RHF エネルギー 1 : total 原子核のポテンシャルエネルギーおよび外部静電ポテンシャルとの相互作用エネルギーを含めたFMO1– RHFエネルギー。 X I n E0 HF I+ ZuI+ ZI−ext o (1.74) • FMO1–RHF エネルギー 2 : internal FMO1–RHFエネルギー1から、外部静電ポテンシャルとの相互作用エネルギーを取り除いた値。外 部静電ポテンシャルが存在しない場合は、FMO1–RHFエネルギー1と同じ値となる。 X I n E00 HF I+ ZuI o (1.75)

Figure

図 1: C 12 H 26 分子( 3 分割)の切断の定義。(図では水素原子を省略。数字は原子の通し 番号)。 C C C C C C C C C C C C1 5 8 11 14 17 20 23 26 29 32 35

図 1:

C 12 H 26 分子( 3 分割)の切断の定義。(図では水素原子を省略。数字は原子の通し 番号)。 C C C C C C C C C C C C1 5 8 11 14 17 20 23 26 29 32 35 p.31
図 2: 炭素原子の cc-pVDZ の定義。 BASIS_DEF cc-pVDZ_006 6 0 8 1 0.0006920 6665.0000000 2 0.0053290 1000.0000000 3 0.0270770 228.0000000 4 0.1017180 64.7100000 5 0.2747400 21.0600000 6 0.4485640 7.4950000 7 0.2850740 2.7970000 8 0.0152040 0.5215000 0 8 1 -0.0001460 6

図 2:

炭素原子の cc-pVDZ の定義。 BASIS_DEF cc-pVDZ_006 6 0 8 1 0.0006920 6665.0000000 2 0.0053290 1000.0000000 3 0.0270770 228.0000000 4 0.1017180 64.7100000 5 0.2747400 21.0600000 6 0.4485640 7.4950000 7 0.2850740 2.7970000 8 0.0152040 0.5215000 0 8 1 -0.0001460 6 p.33
表 1: グローバル変数との対応(FMO−RHF エネルギー関連) 変数名 次元数 値 rhf mon energy d フラグメント数 E 0 HF I rhf mon trdv フラグメント数 T r n D I V I o rhf mon trdv e フラグメント数 T r n D I V e I o rhf mon energy vac cp フラグメント数 E vac HF I

表 1:

グローバル変数との対応(FMO−RHF エネルギー関連) 変数名 次元数 値 rhf mon energy d フラグメント数 E 0 HF I rhf mon trdv フラグメント数 T r n D I V I o rhf mon trdv e フラグメント数 T r n D I V e I o rhf mon energy vac cp フラグメント数 E vac HF I p.51
表 2: グローバル変数との対応(FMO−RHF エネルギー関連)

表 2:

グローバル変数との対応(FMO−RHF エネルギー関連) p.52
表 3: グローバル変数との対応(FMO−RHF の密度関連)

表 3:

グローバル変数との対応(FMO−RHF の密度関連) p.58
表 4: グローバル変数との対応(FMO−MP2 エネルギー関連)。SCS–MP2 の値を算出するために、 スピン平行からの寄与とスピン反平行からの寄与に分けて記録している。各数値のうち、 「 s 」で 終わっている変数がシングレットカップリングペアからの寄与で、 「 t 」で終わっている変数がト リプレットカップリングペアからの寄与。

表 4:

グローバル変数との対応(FMO−MP2 エネルギー関連)。SCS–MP2 の値を算出するために、 スピン平行からの寄与とスピン反平行からの寄与に分けて記録している。各数値のうち、 「 s 」で 終わっている変数がシングレットカップリングペアからの寄与で、 「 t 」で終わっている変数がト リプレットカップリングペアからの寄与。 p.64
表 5: グローバル変数との対応(FMO–RI–MP2 のエネルギー関連)。SCS–RI–MP2 の値を算出す るために、スピン平行からの寄与とスピン反平行からの寄与に分けて記録している。各数値のうち、 「 s 」で終わっている変数がシングレットカップリングペアからの寄与で、 「 t 」で終わっている

表 5:

グローバル変数との対応(FMO–RI–MP2 のエネルギー関連)。SCS–RI–MP2 の値を算出す るために、スピン平行からの寄与とスピン反平行からの寄与に分けて記録している。各数値のうち、 「 s 」で終わっている変数がシングレットカップリングペアからの寄与で、 「 t 」で終わっている p.68
表 6: グローバル変数との対応(FMO−LMP2 エネルギー関連)。

表 6:

グローバル変数との対応(FMO−LMP2 エネルギー関連)。 p.72
表 1: ang l6n と ang l6sum に格納されている値

表 1:

ang l6n と ang l6sum に格納されている値 p.85
表 2: sys l5n と sys l5sum に格納されている値

表 2:

sys l5n と sys l5sum に格納されている値 p.86
表 3: basis label [ ] [ i ] [ j ] [ k ] に格納されている文字列。

表 3:

basis label [ ] [ i ] [ j ] [ k ] に格納されている文字列。 p.96
表 38: 64 bit 環境での C 言語の変数型のサイズ。 char 1 バイト short int 2 バイト int 4 バイト long int 8 バイト double 8 バイト

表 38:

64 bit 環境での C 言語の変数型のサイズ。 char 1 バイト short int 2 バイト int 4 バイト long int 8 バイト double 8 バイト p.151

References

Related subjects :