Cubeファイルは、Gaussianが出力するファイルですが、CP2Kも出力することができます。
Cubeファイルとは、いわゆる「ボクセル(Voxel)」データのファイルで、2次元画像のピクセル(Pixel)を3次元に拡張したものです。
3次元空間の各点に数値を割り当てたもので、物理学を学んだ人なら「スカラー場」というと通りがよいでしょうか。
Cubeファイルは、テキストファイルですので、テキストエディタで開くことができます。
実際のCubeファイルを見ながら説明します。
またもピリミジンです。ピリミジンをxTB計算したときのHOMO(最高被占軌道)です。
私はGaussianを持っておりませんので、これはCP2Kで計算させたものです。
ちなみに入力ファイルは次のとおりです。
&FORCE_EVAL
&DFT
&QS
METHOD xTB
&END QS
&MO_CUBES
NLUMO 0
NHOMO 1
STRIDE 3
&END MO_CUBES
&END PRINT
&END DFT
&SUBSYS
&CELL
ABC 10.0 10.0 10.0
&END CELL
&COORD
C 5.3636995411 5.4155870025 5.8557358618
C 4.2295142259 4.6368996883 5.8557358618
C 4.7302939096 5.7073981474 5.8557358618
C 5.4084555279 4.7196319726 5.8557358618
N 4.1761642181 5.3143573337 5.8557358618
N 4.8425699093 4.3437140879 5.8557358618
H 5.8098184997 5.7218750357 5.8557358618
H 3.7837993708 4.3308892637 5.8557358618
H 4.6788657186 6.2458542177 5.8557358618
H 5.8924812754 4.4781803735 5.8557358618
&END COORD
&END SUBSYS
&END FORCE_EVAL
&GLOBAL
PROJECT py-cube
RUN_TYPE GEO_OPT
&END GLOBAL
このように、入力ファイルでは、
FORCE_EVAL > DFT > PRINT > MO_CUBES
で分子軌道のCubeファイルの出力の設定をします。
キーワードNLUMO、NHOMOで、Cubeファイルを計算させるLUMOとHOMOの数を指定します。
キーワードSTRIDEで、Cubeファイルの解像度を指定します。指定できるのは、正の整数です。大きいほど解像度が低くなります。1で解像度が最高です。ここでは説明のため3を指定してボクセル数を少なくしていますが、下の例ではSTRIDE 1で計算しています。
説明用に作成したため、3×3×3=27ボクセルしかありません。解像度が低すぎて表示させると美しくないです。
Cubeファイルの最初の二行はコメント行で、AvogadroやVMDなどのビューワで読み込んだときはスキップされます。
その次の行では、系の原子数と、原点の座標値が原子単位(Bohr)で表示されます。
Gaussianが出力するCubeファイルでは、原子数に負符号(ー)がついているときがあります。
その場合は、座標系はBohrでなくÅ(オングストローム)となります。
その次の3行は、「ボクセルの3次元各方向の繰り返し数」と、「ボクセルの三辺の長さ(Bohr)」が原子単位(Bohr)で示されます。
その次のブロックは、系の構造データです。
入力ファイルの構造データの繰り返しですが、元素記号の代わりに原子番号が使われます。
また各原子の電荷を表す列が1列増えています。CP2Kのこの例ではすべて0.000000ですが、Gaussianでは核電荷が表示されるようです。ビューワでの表示上はどちらでも構いません
またCP2Kの入力ファイルの座標値はÅですが、ここではBohrなので、1.8897倍されています。
その次からが、3次元空間上の値となります。
3次元各方向の繰り返し数を掛け算しただけデータがあります。この例では3×3×3=27個のデータがあります。
データの並びは、まずx=y=0として、z値を増やしていったときの位置の値が並んでいます。
z軸上で繰り返し数に達した後、x=0、y=1とy方向に1つ増やして、またz値の小さいほうから繰り返し数に達するまで並びます。
y方向も繰り返し数に達したら、次はx方向にずらした位置となります。
Avogadroの「ファイル(F)」→「開く(O)」からCubeファイルを開きます。
今回使うCubeファイルは、上にも示したピリミジンのHOMOですが、入力ファイルのSTRIDEを1として計算したものです。
普通に分子構造が表示されます。
次に「エクステンション(x)」→「Create Surfaces...」を選びます。
ダイアログが開くので「Surface Type」を「-Quickstep-」、「Color by」を「Nothing」または「-Quickstep-」にします。Iso Valueは適当に選ぶのですが、ここでは5E-4としています。
「Calculate」ボタンで等値面が計算されます。「Close」ボタンでダイアログを閉じます。
「表示タイプ」サブウィンドウの「サーフェス」チェックボックスへのチェックは自動で入ります。
こんな感じで表示されます。この例は、あまり格好よくないですね。
分子軌道のうち、正値は青色、負値は赤色で表示されています。
色の変更は、「サーフェス」チェックボックスの右横のレンチアイコンをクリックすると開く「サーフェス設定」で行うことができます。
Opacityのスライダを動かして半透明にすることもできます。
CP2Kエクサイズのエテン(エチレン)の例(エチレンはりんごやバナナを熟成させる植物ホルモンですね!)では、結構格好よい図が、Avogadroでも得られるのですすけどねえ・・・