flowchart LR
A["無限に続く結晶<br>原子 約 10²¹ 個"] -->|周期性で畳む| B["ひとつの箱<br>単位胞の中の原子"]
A -->|同じ規則で並べる| C["並進の規則<br>3本の格子ベクトル"]
B --> D["有限のデータで<br>結晶が決まる"]
C --> D
3 結晶を数件のデータで表す
無限に続く結晶を、計算機はどうやって有限のデータで「持つ」のか。
数の上で結晶を「置く」とは、いったい何を決めることなのか。
この章のゴール:シリコンの結晶を、単位胞・格子ベクトル・原子位置という数件のデータで表せるようになり、入力に書く ibrav や celldm がそのどれを指すかを言えるようになる。
第1章で、第一原理計算は「原子の配置を入れると、力・全エネルギー・電子の状態を返す変換器」だと分かった。だとすれば、何はともあれ変換器に配置を手渡さなければ何も始まらない。ところが困ったことがある。シリコンの結晶は、米粒ほどの一片にも原子が約 \(10^{21}\) 個も並んでいる。その座標を一つずつ打ち込むのは、人にも計算機にも到底かなわない。
それでも、第II部で開く入力ファイルは、たった数行で結晶ひとつを言い切ってしまう。なぜそんな芸当ができるのか。鍵は、結晶がもっている「繰り返し」にある。
1 周期性があれば、無限は数件で足りる
結晶という言葉が指しているのは、原子が規則正しく――同じ並びを保ったまま――どこまでも繰り返している状態である。タイルを敷きつめた床を思い浮かべるとよい。床全体を覚えるのに、タイルを一枚ずつ記憶する人はいない。「この一枚」と「縦横にこれだけずらして敷きつめる」という規則さえあれば、床はいくらでも再現できる。
結晶も同じである。空間のある点に見える原子の並びが、そこから決まった距離だけ平行移動した先でもそっくり同じなら、\(10^{21}\) 個の原子をすべて覚える必要はない。ひとつの「箱」の中身と、その箱を並べる規則――この二つに、すべてが畳み込まれている。
「数件」というのは、大げさな言い回しではない。後で具体的に見るように、シリコンなら箱の形を表す整数1つ、箱の大きさを表す長さ1つ、中身を表す座標2行――文字どおり数えるほどのデータで、結晶ひとつが決まってしまう。
ここで効いているのは、結晶がもつ並進対称性である。「決まった距離だけずらすと自分自身に重なる」という性質を、結晶は三つの独立な方向にもっている。だからこそ、無限に広い対象でありながら、格子定数という一つの長さでその大きさを代表できる。第1章で密度から \(a \approx 5.4\ \mathrm{\text{Å}}\) を見積もれたのも、裏でこの繰り返しを当てにしていたからにほかならない。
逆に、結晶でない並び――ガラスや液体――には、この正確な繰り返しがない。だから一片をまるごと書き下すしかなく、第一原理計算でも大きな箱に多数の原子を詰めて近似する羽目になる。結晶のありがたみは、まさにこの繰り返しが、記述を数件のデータにまで切り詰めてくれる点にある。
この畳み込みが、第一原理計算を有限の仕事に変える。変換器に渡すべき「どの原子がどこにあるか」は、無限の座標表ではなく、箱ひとつ分の原子と並進の規則で言い尽くせる。次は、その「箱」と「規則」を、数でどう書くかを決めよう。
2 単位胞と格子ベクトル
では「箱」を数で書く。箱の形と大きさは、3本のベクトル \(\mathbf{a}_1, \mathbf{a}_2, \mathbf{a}_3\) で決まる。この3本が箱の三辺を張り、箱を並べる規則もまたこの3本が与える。箱の角から隣の角へ飛ぶ平行移動は、3本を整数回ずつ組み合わせた
\[ \mathbf{R} = n_1\mathbf{a}_1 + n_2\mathbf{a}_2 + n_3\mathbf{a}_3 \qquad (n_1, n_2, n_3 \in \mathbb{Z}) \]
で書ける。整数 \(n_i\) を動かせば、箱のコピーが空間を隙間なく埋めていく。この \(\mathbf{R}\) が指す点の集まりを格子(lattice)、3本のベクトルを格子ベクトルと呼ぶ。
ひとつ、用語の区別をはっきりさせておきたい。格子点はあくまで数学的な点であって、そこに原子が居ると決まっているわけではない。原子は基底として、各格子点に「ぶら下げる」かたちで配る。格子(並びの規則)と基底(並びに載せる中身)を分けて持つ――この見方が、次の節でシリコンを置くときに効いてくる。
結晶を「置く」とは、煎じ詰めれば二つを決めることである。
- 格子ベクトル \(\mathbf{a}_1, \mathbf{a}_2, \mathbf{a}_3\)――箱の形と大きさ。
- 箱の中の原子の位置――格子の各点に、どんな原子をどう配るか。これを基底(basis)と呼ぶ。
この二つさえ決めれば、あとは並進の規則が結晶全体を生成してくれる。「数件のデータ」とは、まさにこの格子ベクトルと基底のことだ。
結晶を「置く」とは、格子ベクトル(箱の形と大きさ)と基底(箱の中身)の二つを決めることである。残りの無限は、並進の規則が引き受ける。
立方体の箱なら話は単純で、\(\mathbf{a}_1 = (a,0,0)\), \(\mathbf{a}_2 = (0,a,0)\), \(\mathbf{a}_3 = (0,0,a)\) と、一辺の長さ \(a\) ひとつで形も大きさも決まる。ただし、箱の選び方には自由がある。同じ結晶でも、繰り返しの最小単位まで切り詰めた小さな箱(プリミティブ胞)を選んでもよいし、対称性が目に見えて分かりやすい大きめの箱(立方体の慣用胞)を選んでもよい。どちらも同じ結晶を敷きつめる。次の節で、シリコンがこの自由をどう使うかを見よう。
3 ダイヤモンド構造のシリコンを置く
シリコンがとるのは、ダイヤモンドと同じ構造である。これを「格子」と「基底」に分けて読むと、骨格は面心立方格子(FCC; face-centered cubic)、基底は2個の原子、と分解できる。
面心立方格子は、立方体の8つの角と6つの面の中心に格子点が立つ並びである。慣用される立方体の箱の中に、格子点が何個分入るかを数えよう。角の点は隣り合う8つの箱で分け合うので \(1/8\) ずつ、面の中心は2つの箱で分け合うので \(1/2\) ずつ数える。したがって
\[ 8 \times \frac{1}{8} + 6 \times \frac{1}{2} = 1 + 3 = 4 \]
で、立方胞には格子点が4個分入る。各格子点に2原子の基底を載せるから、立方胞の中の原子は \(4 \times 2 = 8\) 個。第1章で「立方単位胞には原子が8個入る」と置いた、あの8がこれである。見積もりの前提は、いまや構造から導けるものになった。
箱の大きさのほうも、第1章の見積もりと輪のようにつながる。立方胞の体積は \(a^3 = (5.431)^3 \approx 160\ \mathrm{\text{Å}^3}\)。これを8原子で割れば、原子1個あたり約 \(20\ \mathrm{\text{Å}^3}\) ――第1章で密度から出した「原子1個 約 \(20\ \mathrm{\text{Å}^3}\)」に、そっくり戻ってくる。構造(8原子)・実験値(\(a\))・密度(原子体積)の三つが、ここで矛盾なく閉じている。
flowchart TB
L["FCC格子<br>並びの骨格"] --> X["ダイヤモンド構造の<br>シリコン"]
B["2原子の基底<br>(0,0,0) と (1/4,1/4,1/4)a"] --> X
X --> C1["立方単位胞<br>4格子点 × 2 = 8原子"]
X --> C2["プリミティブ胞<br>1格子点 × 2 = 2原子"]
基底の2原子は、片方を箱の角 \((0,0,0)\) に、もう片方を箱の対角線を \(1/4\) だけ進んだ \(\left(\tfrac14,\tfrac14,\tfrac14\right)a\) に置く。2原子はどちらも同じシリコンである(種類が違えば、それは閃亜鉛鉱型という別の構造になる)。この2原子をFCC格子の各点に配れば、ダイヤモンド構造のシリコンができあがる。
\(\left(\tfrac14,\tfrac14,\tfrac14\right)a\) という半端な位置には、ちゃんと意味がある。この基底のとり方は、FCC格子をもう一枚、対角線方向に \(1/4\) だけずらして重ねたものに等しい。おかげで、どのシリコン原子も4つの隣と正四面体の向きに手を結ぶ。この4本手の結合のしかたこそ、後にシリコンが金属ではなく半導体になる理由に深くかかわる。それがどう効いてくるかは、第9章で見る。
一方、繰り返しの最小単位――プリミティブ胞――を選ぶと、格子点は1個分、体積は立方胞のちょうど \(1/4\) になる。基底は2原子だから、最小の箱に入るシリコンはわずか2原子である。シリコンの結晶を正直に書き切るのに要る原子は、たったの2個。これが、無限の結晶が数件のデータに畳める、ということの実体である。
小課題 2.1
面心立方格子の立方単位胞に、格子点が4個分入ることを自分の手で確かめよ。そのうえで、ダイヤモンド構造のシリコンの立方単位胞に原子が8個入る理由を、「格子」と「基底」の言葉で一文にまとめよ。
解答例
角の8点はそれぞれ8つの立方体に共有されるので \(8 \times \tfrac18 = 1\) 個分、面心の6点はそれぞれ2つの立方体に共有されるので \(6 \times \tfrac12 = 3\) 個分。合わせて4個分が、この立方胞に属する格子点である。シリコンはこのFCC格子(4格子点)に2原子の基底を載せた構造なので、立方胞には \(4 \times 2 = 8\) 原子が入る。
つまり第1章で前提にした「8原子」は、天下りの数ではなく、FCCの格子点の数と基底の原子数の積だったわけだ。
4 ibrav と celldm ― 構造を物理として読む
ここまでで、結晶を置くのに要るデータがそろった。箱の形(FCC)、箱の大きさ(一辺 \(a\))、箱の中身(2原子の基底)。Quantum ESPRESSO の入力ファイルは、これをほとんどそのままの順で宣言する。命令の暗記としてではなく、構造の供述書として一行ずつ読めばよい。
箱の形は ibrav という整数で宣言する。これはブラヴェ格子(取りうる格子の型)の通し番号で、ibrav=2 が面心立方を指す。たった一つの整数で「箱はFCCの形だ」と言い切れるのは、FCCと決まれば3本の格子ベクトルの向きが約束として埋まるからである。だから3本のベクトルを手で打ち込まずに済む。
箱の大きさは celldm で与える。celldm(1) が格子定数 \(a\) に当たる長さで、単位はボーア(bohr)である。なぜオングストロームではなくボーアかと言えば、Quantum ESPRESSO が原子単位系で計算しているからだ。長さはボーア、エネルギーはリュードベリ(Ry)で返ってくる。そこで、\(1\ \mathrm{bohr} = 0.529\ \mathrm{\text{Å}}\)、\(1\ \mathrm{Ry} = 13.606\ \mathrm{eV}\) という二つの換算を控えておこう。計算機がボーアとリュードベリで返してくる値を、なじみのある \(\mathrm{\text{Å}}\) と eV へ直すのに、この先繰り返し使うことになる。
実際の &system 区画には、たとえば次のような行が並ぶ。ibrav=2(箱はFCC)、celldm(1)=10.26(一辺はこの長さ)、nat=2(中の原子は2個)、ntyp=1(原子の種類は1)。続く ATOMIC_POSITIONS で、さきほどの2原子の基底を置く。ibrav=2 は内部でFCCのプリミティブ胞を使うので、必要な原子は2個で済む――前節で見た「最小の箱に2原子」が、そのまま計算の軽さになっている。
基底の置き場所も、そのまま入力に移せる。ATOMIC_POSITIONS (crystal) のもとで2原子を \((0,0,0)\) と \(\left(\tfrac14,\tfrac14,\tfrac14\right)\) と書けば、格子に対する割合の座標として、さきほどの基底がそっくり再現される。箱の形(ibrav)、箱の大きさ(celldm)、箱の中身(ATOMIC_POSITIONS)――入力ファイルは、この章で組み立てた三点セットを、ほとんどそのまま文章に起こしただけのものだ。
では celldm(1) の値を、自分の手で出してみよう。
小課題 2.2
シリコンの実験値 \(a = 5.431\ \mathrm{\text{Å}}\) を celldm(1) の値(ボーア単位)に換算せよ。換算には \(1\ \mathrm{bohr} = 0.529\ \mathrm{\text{Å}}\) を使う。出した値を逆に \(\mathrm{\text{Å}}\) へ戻し、実験値と合うことも確かめよ。
解答例
長さをボーアで測り直すだけだから、\(\mathrm{\text{Å}}\) の値をボーアの大きさで割る。 \[ \text{celldm(1)} = \frac{a}{1\ \mathrm{bohr}} = \frac{5.431\ \mathrm{\text{Å}}}{0.529\ \mathrm{\text{Å}}} \approx 10.26. \] 逆に戻すと \(10.26 \times 0.529 \approx 5.43\ \mathrm{\text{Å}}\) となり、実験値 \(5.431\ \mathrm{\text{Å}}\) とぴたりと合う。換算は単位の取り替えにすぎず、結晶そのものは 1 ミリも動いていない。
この celldm(1) ≈ 10.26(bohr)は、第4章で実際に書く入力ファイル si.scf.in の中にそのまま現れる。いま手で出した数が、計算機に渡す最初の一行になるわけだ。
よくある誤解
「単位胞は8原子の立方胞か、2原子のプリミティブ胞か、どちらか一方だけが正しいはずだ」と思いたくなる。けれど箱の選び方は、結晶を切り取る枠の取り方という約束事であって、結晶そのものを取り替えるわけではない。立方胞は対称性が目で見えて分かりやすく、プリミティブ胞は原子数が少なく計算が軽い。場面に応じて使い分ければよい。原子1個あたりのエネルギーも、格子定数も、後で出会うバンドギャップも、どちらの箱で測っても同じ値になる。箱ごとに変わるのは帳簿のつけ方――原子の数や、後の章で出てくる k 点メッシュの読み方――だけである。
5 この章のまとめ
無限の結晶を、計算機に渡せる数件のデータへ畳むことができた。
- 結晶は周期的だから、ひとつの箱(単位胞)+並進の規則(格子ベクトル)で言い尽くせる。無限の情報は、箱ひとつと規則の側に畳まれている。
- 結晶を「置く」とは、格子ベクトルと基底(箱の中の原子位置)の二つを決めることである。
- シリコンはダイヤモンド構造――FCC格子+2原子の基底。立方胞では \(4\times2=8\) 原子(第1章の前提そのもの)、プリミティブ胞では \(1\times2=2\) 原子。立方胞の体積 \(a^3 \approx 160\ \mathrm{\text{Å}^3}\) を8で割れば、第1章の「原子1個 約 \(20\ \mathrm{\text{Å}^3}\)」に戻る。
- 入力の
ibrav=2は「箱はFCCの形」、celldm(1)は「箱の大きさ」をボーアで宣言する。\(a=5.431\ \mathrm{\text{Å}}\) はcelldm(1) ≈ 10.26(bohr)に当たり、この数は第4章の入力でそのまま再会する。
これで、変換器に渡す配置の側は整った。スイッチを入れれば、計算機はこの 2 原子の箱について、大きな負の数――全エネルギー――をひとつ返してくる。だが、その数ひとつを、いったいどう読めばよいのか。それ単独で、私たちはシリコンについて何か言えるのだろうか。次章では、この「ひとつの全エネルギー」を手に取り、それが単独では多くを語らず、差をとってはじめて意味をもつ量であることを確かめにいく。