「金」のクラスターを作図せよ、というのが問題ですが、ここでは鉄を例として作図してみます。一番大きいものは、「直径 2 nm の球形粒子を切り出せ」ということですから、あらかじめ一辺 2 nm (= 20 Å) 以上の立方体形の鉄原子の結晶構造を作り、そこから丸く切り出せばよいでしょう。
鉄の場合、単位格子の一辺は 2.867 Å ですから、一辺 20 Å 以上にするには、(20/2.867) = 6.98 なので、7 回単位格子を繰り返せばよいのですが、はじっこの鉄原子がないので、余裕をみて 8 回繰り返しましょう。
前に作ったエクセルファイルを利用するなどして、鉄の単位格子を 8 回繰り返したファイルを作成します。
x, y, z の各方向に 8 回繰り返すとなると、8 × 8 × 8 = 512 回!繰り返さねばなりません。少し楽をすることを考えます。
n進数の考え方を使って、平行移動の計算を行う
整数化された平行移動のベクトルは、例えば、
(0, 0, 0)から始まって(0, 0, 1), (0, 0, 2), (0, 0, 3) … といって (0, 0, 7) と、まず z 方向に 8 回繰り返します。
続いて y 方向 に 1 づつずらしたパターンを
(0, 1, 0), (0, 1, 1), (0, 1, 2), (0, 1, 3) … (0, 1, 7),
(0, 2, 0), (0, 2, 1), (0, 2, 2), (0, 2, 3) … (0, 2, 7),
(0, 3, 0), (0, 3, 1), (0, 3, 2), (0, 3, 3) … (0, 3, 7),
⋅
⋅
(0, 7, 0), (0, 7, 1), (0, 7, 2), (0, 7, 3) … (0, 7, 7),
と 8 回繰り返します。
今度は x 方向に 1 ずらし、
(1, 0, 0), (1, 0, 1), (1, 0, 2), (1, 0, 3) … (1, 0, 7)
とやるわけですが、これは 8進数 と同じパターンです!
10進数 を n 進数に変換した各桁の数値は、エクセルの mod 関数と int 関数を使って計算できます。
mod(数値, 除数)
数値を除数で割った余りを返す
int(数値)
数値を最も近い整数に切り捨てる
A列に 0~511 までの 512 個の数値を入れ、
B列 (x方向の平行移動値, 8進数の3桁目)
= mod(int(A4/8^2),8)
C列 (y方向の平行移動値, 8進数の2桁目)
= mod(int(A4/8^1),8)
D列 (z方向の平行移動値, 8進数の1桁目)
= mod(int(A4/8^0),8)
としてコピーすれば、平行移動の部分は一気にできます 1)7 進数の場合は、8 のところ (2 箇所) を 7 に変えます。 。
鉄の場合は単位格子中の原子は 2 個ですから、作った 512 行分 を下にコピーし、単位格子内の位置のベクトルを(0.5, 0.5, 0.5)に変えればよいですね。これで総計 1024 原子分のファイルができます。
各原子の、立方体中心からの距離を求める
上記の立方体の中心座標は、概ね、繰り返しの 4 回目 (2.867 Å × 4) より、 (11.468, 11.468, 11.468) あたりだと思われます。エクセルのシート上で、各原子の、立方体の中心からの距離を求めましょう。三平方の定理から
とすれば距離を求めることができます 2)エクセルでは、2 乗の計算は ˆ2、ルートの計算は ˆ(1/2) または =SQRT() で行うことができます。 。
距離の小さい順に並べなおす(ソート)
ここでエクセルのソート機能を使って、行を距離の小さい順に並べます。
下記のように、並びなおしたい部分(4行目より下全部)を選択した状態で、上部メニューから [データ]-[並び替え] を選びます。
出てきたウィンドウで、最優先されるキーに [列L](距離) を、順序に [小さい順](昇順) を選び、[OK] を押します。
これで、L列 (距離) の小さい順に、行ごとにデータが並びなおされます 3)最初の行(4行目)にある鉄原子は立方体中心からの距離が 0 Å。すなわち、ちょうど中心にあることがわかります。続いて、距離 2.483 Å に 8 個の原子 (5~12行目) があることがわかります。これは体心立方格子の最隣接原子数 8 と対応しています。。
これで例えば、直径 1 nm の球形に切り出したい場合は、距離が 0 から 5 Å までの行を選んで、 .xyz ファイルを作成すれば図は出来上がりです。(1 行目の原子数は修正する必要あり)
「表面」にある原子の数を見積もる
問題では、「表面」にある原子の数を見積もる(数える) 必要があります。
これは厳密には難しいですが、上のエクセルファイルの「中心からの距離」を使い、表面から原子1個分の厚みの範囲にある原子数を数えてみてはどうでしょうか。
鉄の Atomic 半径は 1.26 Å のようなので4)vesta で、半径の種類を指定するウィンドウ中で Radius として値を見ることができます。、直径は 2.52 Å。先ほど直径 1 nm のクラスターを切り出した際には、中心から 0~5 Å の距離の原子を取り出しましたから、そのうち 2.48~5 Åの範囲(厚み 2.52 Å)にあるものを数えると表面「近く」にある原子の数になっていると思います。
ここで決めた「厚み 2.52 Å」が妥当かどうかは、実際のモデル図で確かめてみるとよいと思います。ここで「表面に存在している原子」とした鉄原子を、モデル図上で色を付けるなどして、明らかに表面にあるのに数えられていないとか、明らかに表面にはない(外から見えない)のに表面原子として数えられているとか、がないかを調べます。
各原子の色は vesta 左メニューで、通常 [Style]となっているタグを [Objects]に切り替え、C L S V と出ている C を設定することで変えることができます 5)ちなみに、 C は Color, L は Label(ラベル, 文字), S は Select(選択), V は Visible(表示)の設定です。。
脚注
↑1 | 7 進数の場合は、8 のところ (2 箇所) を 7 に変えます。 |
↑2 | エクセルでは、2 乗の計算は ˆ2、ルートの計算は ˆ(1/2) または =SQRT() で行うことができます。 |
↑3 | 最初の行(4行目)にある鉄原子は立方体中心からの距離が 0 Å。すなわち、ちょうど中心にあることがわかります。続いて、距離 2.483 Å に 8 個の原子 (5~12行目) があることがわかります。これは体心立方格子の最隣接原子数 8 と対応しています。 |
↑4 | vesta で、半径の種類を指定するウィンドウ中で Radius として値を見ることができます。 |
↑5 | ちなみに、 C は Color, L は Label(ラベル, 文字), S は Select(選択), V は Visible(表示)の設定です。 |