半導体と金属の違いは、フェルミ準位に状態があるかどうかです。 このとき、実は重要な前提があって、状態が連続的に存在している結果としてフェルミ準位にも状態があるとしています。 原子が無限個あるという熱力学極限をとると何の問題もありませんが、実際の数値計算では無限個の状態を扱うことは不可能なので、結果として状態が離散的となり、フェルミ準位ちょうどに存在する状態というのが 存在しなくなってしまいます。
金属を計算する場合は避けられない問題です。
解決策としては、状態のエネルギー準位をガウシアンなどを使って幅を持たせるという方法が使われます。 この幅の物理的な由来として、一電子グリーン関数から得られるスペクトル関数が電子相関や不純物によって散乱され、幅を持つことに対応します。
ここでは金属の典型例として、 Al(アルミニウム)について考えてます。
QuantumESPRESSOのウェブサイトからAlの擬ポテンシャルのファイルをダウンロードしてきます。 今回はAl.pz-vbc.UPFをダウンロードしました。
入力ファイルは次のようになります。
&control prefix = 'al', pseudo_dir = './', outdir = './tmp/', / &system ibrav = 2, celldm(1) = 7.50, nat = 1, ntyp = 1, ecutwfc =12.0, occupations='smearing', smearing='mp', degauss=0.06 / &electrons conv_thr = 1.0d-8 / ATOMIC_SPECIES Al 26.98 Al.pz-vbc.UPF ATOMIC_POSITIONS Al 0.00 0.00 0.00 K_POINTS automatic 6 6 6 1 1 1
(注意)チュートリアル計算のため、k点数が非常に少ないです。Alの場合は本当は 16 16 16 くらいは必要です。
変数 | 初期値 | 説明 |
---|---|---|
occupations | なし | 金属を計算する場合、smearingとすることによって状態を広がりを持ったものにすることができます。 |
smearing | gaussian | occupations='smearing'としたときに、広がりをもたせる方法。 |
degauss | 0 | 広がりの幅(単位はリュードベリ)。k点が多ければ広がりの幅は小さくできますが、k点が少ないと大きめにとる必要があります。広がりを大きくした場合は計算の精度が落ちます。 |
ここでsmearingに指定されているmpというのは
で提案された広がり方で、通常はこれを使います。 ほかに
で提案された広がりもあり、 この場合はmvと指定します。 広がりを普通のガウシアンにしたければgaussianと指定しますが、これはmvやmpに比べて収束が非常に遅くなります。
それではPWscfを実行します。 金属の場合は計算の収束にやや時間がかかりますが、今考えているAlは単純な構造なのでそんなに時間がかかりません。
$ pw.x < Al.scf.in > Al.scf.out
得られた結果は Al.scf.out に出力されます。 以下のように入力することでフェルミ準位が得られたことを確認できます。
$ grep -e Fermi Al.scf.out the Fermi energy is 8.2893 ev
バンド構造の計算方法は前節のSiの場合と同じです。 ただし occupations, smearing, degauss を削除してください。 フェルミ・エネルギーはSCF計算で得られた値を用います。
Alの場合、電子配置は [Ne] 3s2 3p1 で価電子数が3なので、スピンの縮退も考慮して2本目のバンドの半分まで電子が詰まっています。 つまり、最低2本あればよいのですが、普通、バンドは伝導バンドと複雑に入り交じっているので、バンドの数を多めに見積もる必要があります。
もし金属であるにもかかわらず入力ファイルにnbndが指定されていなければ、価電子帯のバンド数に、それの20%(最低4)を足したものが nbnd に自動的に指定されます。