40
Supplement to Osaka2k DOS 大学・ 2013 Department of Computational Nanomaterials Design ISIR, Osaka University

白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

  • Upload
    others

  • View
    0

  • Download
    0

Embed Size (px)

Citation preview

Page 1: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

Supplement to Osaka2k

「DOS計算」

白井光雲

大阪大学・産業科学研究所

2013年9月6日

Department of Computational Nanomaterials Design

ISIR, Osaka University

 

Page 2: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

目 次

1 はじめに 2

2 pwbcd計算 22.1 DOS構造の結果 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 42.2 簡易表示 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 6

3 tetrahedron法による全DOSの計算 6

4 tetrahedron法 ー pdosdrの使い方 94.1 pwbcd . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 94.2 pdosdr . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 124.3 aydosp . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 154.4 pDOSの表現の仕方 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 16

5 Case study I - Si中のCu不純物の例 165.1 セルフコンシステント計算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . 175.2 pwbcdによるDOS計算 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17

6 case study II -スピンの入った計算 20

7 DOS計算における kメッシュの問題 237.1 pdosdrのメッシュに合わせる . . . . . . . . . . . . . . . . . . . . . . . . . . 237.2 ブラべー格子個別にみる kメッシュの切り方 . . . . . . . . . . . . . . . . . . 24

7.2.1 FCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 257.2.2 BCC . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 267.2.3 C-center . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 277.2.4 Hex . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 287.2.5 Rhombohedral . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 30

7.3 pwbcdと pdosdrの入力のまとめ . . . . . . . . . . . . . . . . . . . . . . . . 317.4 pdosdrのオプション . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 31

8 繰り返し固有値最小化によるDOS計算 328.1 入力パラメータ . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 328.2 graphiteの例 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 32

9 pwbcdにおけるDOS計算のオプション 36

A label of m components 37

0

Page 3: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

B colors in aydosp 37

1

Page 4: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

1 はじめに

セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS計算などが可能となる。これらの計算を行う時ブリルアン・ゾーンが具体的にどうなっているかの知識が必要で、例えば FCCのブリルアン・ゾーンは図 1のようになっていることを知っていないといけない。ブリルアン・ゾーンを自分で描きたいのであればMathematicaのノートブックMakeBZ.nbで書ける。

g1g2

g3

L

Γ

KWX

U

図 1: FCCのブリルアン・ゾーン

バンド計算、DOS計算などはプログラムpwbcdで計算する。pwbcdに関する入出力ファイルの関係は図 2のようになっている。計算の後のデータを表示するためのプログラム pdosdr

は柳瀬章の作成によるものを用いている(入力部だけ Osaka2kに合わせている)。まずそれらの計算の元となっているセルフコンシステント電荷のデータ pwm *.rhoが必要である。k点サンプリングのデータ inip *.kptなどは必要ないが、ポテンシャルデータ型を規定するinip *.inpが必要となる。バンド計算、DOS計算とも同じ入力ファイル bcd.paraを使うが、中身が違うのでそれぞれ band.para、dos.paraとして作っておき、計算する時 bcd.paraとリネームして使うのが便利である。

2 pwbcd計算DOS計算用の入力ファイル bcd.paraは

JobType

dos

Input file name

si.prim

number of division (nkdiv)

8

number of levels you want to draw (NBUP) usually NEPC

12

scan zone only (iscan)

1

print control (ilp)

2

Page 5: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

ps.file

dos_si.out

dos_fort.2

bcd.para

pdosdr.inp

aydosp.inp

pwbcd

pwm_si.rho

inip_si.inp si.prim

fort.2

fort.13

pdosdr

aydosp

図 2: DOS計算の流れ。pwbcdから pdosdrや aydospまでのファイルの引き渡し。

1

use symmetry (isymm)

1

energy unit (ienun=0 for Ry, 1 for eV)

0

となる。以下そこに現れるパラメータの意味を挙げる。

JobType ジョブタイプ = dosxtl.name 結晶名nkdiv k線の分割数NBUP 描くバンド数iscan デバグのためのオプション。1:デフォルトilp プリントオプション 1:デフォルトisymm 対称化オプション  1:対称化する、0:しないienun エネルギー単位  0: Ry、1: eV

ここで一番重要な入力はDOSを計算するときのゾーンの分割数である。それを nkdivに入力する。計算に取り入れるバンドの数(NBUP)は平面波の数(NHDIM)より小さければ何でも良いのだが、典型的には価電子バンド数の2倍、つまり基本単位格子あたりの電子数を取ればよい。しかしアルカリ金属のように基本格子あたりの電子数が1とか2の場合は、あまりにもバンド数が少なくなるので、少し多めにとっておいたほうが良い。その他のパラメータは主にデバグ用であるので上の例のままで良い。

3

Page 6: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

pwbcdはDOS計算結果を dos *.tblあるいは fort.2に出力する。それをプロットするには、簡単には線スペクトルそのままの dos *.tblをMathematicaのノートブックDOSshow.nbに掛ければ良い。より高度な処理として、既約表現ごとに分けられた線スペクトルデータ fort.2を pdos(最新バージョンは pdosdr)に掛け、tetrahedron法 [?]により滑らかな DOS曲線を得ることができる。

DOS計算における k点の取り方は、基本逆格子G1、G2、G3で作られる平行六面体を、一様に nkdiv分割する。例えば nkdiv=4とすると、G1方向にはG1単位で、

0,14,

24,

34

と 4点取られることになる。Monkhorst-Packの kサンプリングの時と異なり、ゾーン中心から始まることに注意。それらのうちブリルアン・ゾーンの外にはみ出たものは、自動的にその中に折り返される。また対称性で結ばれる点は消され、平行六面体は既約ゾーンに縮小される。従って最終的に決められた k点には重みがつくことになる。

pwbcdはそれらの k点、一点一点でハミルトニアンを対角化し固有値を下から並べて出力する。対角化の際、対称化オプション isymm=1としてあると、あらかじめ平面波は対称化される。最後に全電子を下のレベルから順番に詰め、フェルミレベルEFを割り出す。

SGI   pwbcd では、SGI マシンではコンパイラーオプションを付けるとき、オプティマイズレベルは基本レベル(-O)以上に上げないようにして欲しい。TSPACEがときに壊れることがある。また、-staticも付けたほうが安全だ。

2.1 DOS構造の結果

DOSスペクトルの結果は dos *.tblあるいは fort.2に書き出される。その結果を見る前に、計算条件がファイル dos *.outに書かれているので、まずそれをチェックする。見出し

==================== The calculation parameters ===================

の後には計算条件がリストされる。それに続いて見出し

================ K space segmentation =======================

の後には k点サンプリングに関する情報があるで、確認すること。上の入力の場合、初めに8点作られるが、対称性により次の3点

Number of sampling points (NKPTS) 3

No NM c p DK Nstr WTK in/out

1 GM 0 0 0/ 2 0 0 0/ 4 0.0000 1 0.12500 1

2 L -1 1 1/ 2 2 0 0/ 4 0.1688 4 0.50000 2

3 X 0 0 2/ 2 2 2 0/ 4 0.1949 3 0.37500 2

sum check over wtk = 1.000000

4

Page 7: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

にまで簡約される。k点の名前、conventional、primitive baseの表現が与えられた後、その大きさ(DK)、星の数(Nstr)、重み(WTK)、ゾーンの中か外かの指標(TSPACE参照)と並べられる。

その後、k点一点一点について、平面波を対称化して、既約表現ブロックごとに対角化する過程が記述される。前にも触れたが、pwmを始めとする「OSAKA2000」のプログラム群は基本的に primitive baseで書かれており、対称化するために conventional baseで書かれたTSPACEサプルーチンをコールしているため、その間の変換、逆変換が何度も挿入されている。それが正しく進行しているか途中経過のモニターをしている。一般ユーザーは無視してもらって結構である。

最後にフェルミレベルEFを探索して締めくくる。

=================== determin Ef =================================Determine the Fermi level

energy --- (eV)Fermi energy = 6.2896

at 1 th-kpoint 0 0 0/ 4Total piled up number = 8.000000

Number of electrons = 8Sorting of HOMOValence Top: 6.2896 at 1 2 2 0/ 4Sorting of LUMOConduction Bottom: 7.1785 at 3 0 0 0/ 4Gap= 0.8889 from 0 0 0/ 4 to 2 2 0/ 4

final distribution of the valence bandskn IP2 - IP3 E2 - E3 Occ2 - Occ3

1 3 3 - 4 3.17028 - 3.17028 2.00000 - 2.000002 2 3 - 4 4.91918 - 4.91918 2.00000 - 2.000003 1 2 - 4 6.28963 - 6.28963 2.00000 - 2.00000Ef= 6.28963 nv= 3 kf= 1 del_n= 0.00000

Nel= 8.0000

Ef= 6.2896

刻まれたメッシュの分解能の中でエネルギーギャップも求められている。ギャップは 0.8889[eV]でそれは、(000)の価電子帯上端から、(220)/4の伝導帯下端までということが示されている。次に価電子帯上端の電子占有状態が示される。Siでは価電子帯は4本ある。従って縮退していなければ4番目のバンドが最上位占有バンドということになる。縮退がある場合は4本のうちいくつかが最上位占有バンドと見なされる。上のリストで、IP2から IP3までのバンドが最上位占有バンドである。E2とE3はそれぞれのエネルギーレベルである。この例では全て完全にエネルギーが等しく厳密に縮退しているが、前述したように、エネルギーがぴっ

5

Page 8: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

たり一致しなくとも、差がERESO以内であれば縮退しているとみなされる。この IP2からIP3までのバンドは均等に電子が割り振られる。また、電子がそれぞれの k点の IP3まで占有して全電子数が期待通り8個となっているかをNelでチェックする。最後にフェルミレベルの位置が出力される。

2.2 簡易表示

DOS構造を図示したい場合2つの選択がある。最初に、もっとも単純な線スペクトルについて述べる。簡単には線スペクトルデータ dos *.tblをそのままプロットすることである。このファイルは

1 -5.885658 0.1250001 6.289627 0.125000...2 -3.384971 0.500000...

というように k点の番号、エネルギーレベル、k点の重みをリストしている。MathematicaのDOSshow.nbはこのデータを読み、各線を適当な幅のGaussian分布に直し、全ての分布を重ね合わせてDOSを描く。その例を図 3(a)に示す。メッシュが荒いと見せかけの突起点がたくさん出るので、van Hove特異点を探すときなどは、k点のメッシュをかなり細かく刻まないとわからないことが理解できる。

3 tetrahedron法による全DOSの計算

tetrahedron 法 [?] はサンプリング点間のバンドを内挿して DOS 曲線を滑らかにする。pdosdrは pwbcdの出力ファイル fort.2を読み込んでこのことを実行する。fort.2のファイルフォーマットは??節で説明されるが、pdosdrで読み取られるように出力したものである。pdosdrはもともと別のバンドプログラム用だったので、DOSを書かせる考え方が若干違う。一番大きな違いは、いつものように pwbcdが primitive baseの k点サンプリングをしているのに対し、pdosdrは conventional baseのものであることだ。両者が一致する場合は問題ないが、FCC格子などの場合はユーザーがその間を調整する必要がある。先の Siの例だと、pwbcdでは k空間のメッシュを primitive baseで 2分割した。G1、G2、

G3が直交軸でないため、conventional baseでの (000)と (001)の他、(111)/2とその半分の点も現れた(2π/a単位)。一方、pdosdrは conventional baseであるので、直交軸a∗、b∗、c∗

を一様分割する。そのためここで分割数を2とすると、上の3点以外に、(100)/2、(110)/2などが現れる。これらの点に関しては pwbcdはサンプリングしていないので当然エラーとなる。

6

Page 9: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

nkdiv=4

nkpts=8

nkdiv=8

nkpts=30

σ=0.1

nkdiv=16

nkpts=149

nkdiv=32

nkpts=913

-10

0.5σ=0.05

-10

1

-10

0.5

-10

0.5

1

1.5σ=0.2

-10

1

2

3

1

2

1

1

2

nkdiv=4

nkpts=8

nkdiv=8

nkpts=30

nkdiv=16

nkpts=149

nkdiv=32

nkpts=913

0 10

(a) (b)

図 3: SiのDOS。(a)線スペクトルをGaussianでぼやかした例。(b)tetrahedron法で滑らかにさせた例。

7

Page 10: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

従って pdosdrでは分割数は半分の1とすべきである。この場合 pdosdr側では、サンプリングとして、(000)/1、(100)/1、(110)/1、(111)/1の4点と取る。対称性により、(111)/1は (000)/1と、(110)/1は (100)/1とそれぞれ等価となる。ということは pwbcdの3点のうち2点のみのデータを使い、(111)/2のデータは無駄になる。

使い方は、まず入力ファイル pdosdr.paraを以下のように用意する。

NONMSPIN-ORBIT1 1 1

0-10.0 20.0 0.28 1 8

初めは磁性に関するもので、今の場合上のようにする。次の3つの数字が k空間の分割数、NX、NY、NZである。上で注意したように pwbcdの分割点と整合性を持たせる。次の数字は 0とする。DOSを軌道による成分表示をするときに使う数字なので今は関係ない。次に来る3つの数字は、エネルギーの下限(ESTART)、上限(ENEND)、一つのセグメントの幅(DE)である。従ってエネルギースペクトルの点数は (ENEND-ESTART)/DE+1で与えられる。最後の数字はセル内の全電子数である。そして描くバンドの範囲をバンドの番号で指定する。上の例は下から 1番目のバンドをはじめにとり、8番目のバンドまでを取り込む。

No. En DD SS

... ... ... ...

fort.12

図 4: fort.12のデータ配列。

出力ファイル fort.12のデータ配列は図 4に示されるが、具体的には

SPIN 11 -10.0000 0.000 0.00002 -9.8000 0.000 0.0000

150 19.8000 1.689 27.1343151 20.0000 1.438 27.4481electron number= 8 EF= 6.80000000000000

のように最初と、最後のコメント行に挟まれ、線スペクトルデータがリストされる。各行はエネルギーメッシュの番号、エネルギー(En)、DOSの値(DD)、そのエネルギーまでのDOSの積分値(SS)の順でリストされる。

8

Page 11: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

このデータはやはりMathematicaのノートブックPDOSshow.nbで図示化できる。fort.12の最初と最後のコメント行を外しPDOSshow.nbに持っていく。図 3(b)に例が示される。メッシュ点の数が少ない場合もDOS曲線は滑らかになることがわかる。それでも van Hove特異点を正確に求めるにはやはり多くのメッシュ点が必要であることには変わりない。

4 tetrahedron法 ー pdosdrの使い方

もともと pdosdrは全DOSを書くためだけのプログラムではない。部分DOSを描くことを目的としたものである。次にこの本来の機能を使うことを行ってみる。この際いくつかのパラメータの引き渡しに注意が必要となるので、まず全体の流れをつかんでもらうため計算パラメータの受け渡しを図 5で示す。

JobType dos ... nkdiv 8 ... OPTION BEGIN decompDOS ON OPTION END

======================== Decomposition of DOS parameters maxcmp : 8 ncmp0dos in pdoddr.inp contracted decomposition by nkat= 2 NO ik at l 1 1 ga 0 2 1 ga 1 5 2 as 0 6 2 as 1 The actual n of lm components calculated = 4 N of Bloch functions with G block 3

gaas. NONMSPIN-ORBIT 4 4 4 8 MAXCMP 4 NCOMP 1 Ga2s 2 Ga4p 5 As4s 6 As4p -0.6 1.0 0.001 8 1 12

61 -0.6 1.0 150.0 120.0 1.0 10.0 0.376 1 4 1 2 3 4 pDOS of GaAs

renumbering

図 5: Flow of the parameters for pDOS calculation

4.1 pwbcd

部分DOSの計算には、前節の pwbcdへの入力ファイル bcd.paraの最後にオプションを指定する。

OPTION BEGIN

9

Page 12: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

decompDOS ONOPTION END

これにより pwbcdはDOSを原子軌道に分解する。初期設定ではしない。原子軌道に分解するのにポテンシャルを構築するのと同じくらいの計算時間がかかるからである。ファイル dos gaas.outのDOS計算の部分の初めに、分解の条件が書かれている。

=========================

Decomposition of DOS

parameters

maxcmp : 8

The array dimension for pdos

Write this number for ncmp0dos in pdoddr.inp

contracted decomposition by nkat = 2

NO ik at l

1 1 ga 0

2 1 ga 1

5 2 as 0

6 2 as 1

The actual n of lm components calculated = 4

N of Bloch functions with G block 3

Total number of Bloch functions = 15

1 1 - 1

2 2 - 9

3 10 - 15

Type of atomic orbital:

psuedo-wavefunction

と、初めに分解した部分DOSの全種類数(maxcmp)が出力される。基本的には各原子ごとに(nkatごとに)、s、p、d、f と4種類に分解され出力される。したがって、デフォルトでは

maxcmp = nkat× 4 (1)

である。ここの部分には、もともと pdosdrが全電子計算に付随するものとして書かれたことが反映する。擬ポテンシャルではどの原子もこのような s、p、d、f の4種類の軌道を使っているわけではなく、多くは s、pの二つである。その場合は d、f 軌道は形式的に出力するが、値は全て 0である。そこで次の行以下に、実際に擬ポテンシャルとして部分DOSを計算した軌道をリストしてある。つまりGa4s、Ga4p、As4s、As4pの4つの原子軌道に分解される。その出力ファイルにおける番号が、1、2、5、6となる。分解される順番はここに並べられた順である。そしてその順でファイル fort.12、fort.13に出力される。ラベル ik

はそれらの原子の番号である。fort.13のデータ配列は図 6に示される。データはブロックごとに値だけのシーケンシャルファイルである。ファイル dos gaas.outでは、引き続き、原子軌道の質が記述される。まず原子軌道 ϕa

lm

の規格性が試される。つまり⟨ϕa

l′m′ |ϕalm

⟩が計算され、それがどれくらい δl′l,m′mと異なる

かが調べられる。

Normalization factor

Normality of atom 1

1.36E-01 6.11E-20 5.90E-20 6.10E-20

2.33E-20 2.67E-02 1.34E-19 7.35E-19

2.82E-20 1.34E-19 2.67E-02 1.01E-18

2.69E-20 7.35E-19 1.01E-18 2.67E-02

10

Page 13: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

DD

pDOS

fort.13

D1

Block No.

0

1

2

3

D2

D3

図 6: fort.13のデータ配列。

Normality of atom 2

9.50E-02 1.61E-19 1.63E-19 1.56E-19

4.69E-20 5.17E-02 3.93E-19 1.34E-18

4.83E-19 3.93E-19 5.17E-02 2.11E-18

4.41E-20 1.34E-18 2.09E-18 5.17E-02

は、行列要素⟨ϕa

l′m′ |ϕalm

⟩を spxpypz の順で並べたものである。見て分かる通り、非対角成

分は0で原子軌道の直交性は非常に良い。しかし対角成分は1となっていない。次に、GaとAs異種原子間での spxpypz 軌道の重なり積分

⟨ϕa

l′m′ |ϕblm

⟩が試される。

Orthgonality

Combination atom 1 - 2

8.55E-02 9.31E-11 9.31E-11 9.31E-11

9.86E-11 7.66E-03 3.69E-10 3.69E-10

9.86E-11 3.69E-10 7.66E-03 3.69E-10

9.86E-11 3.69E-10 3.69E-10 7.66E-03

異なる原子に属する原子軌道は直交していないはずである。それにも関わらずこの結果は、非対角成分は非常に良い精度で0となっていることを示している。どういうことだろうか?

原子軌道の直交性 もともとの原子軌道は異なる原子同士では直交していないはずである。それにも関わらず上で見たように非対角成分は0となっている。その理由は軌道の対称性にある。異なった二つの原子に属するそれぞれ a、b原子軌道の間の行列要素Eabは強結合近似の記述では Slater Koster表現で与えられる。例えば、a、b原子軌道として s、p軌道であれば

Es,x = αVspσ (2)

ここに (α, β, γ)は二つの原子の間の方向余弦である。原子位置を明示的に示すとEs,x(R1,R2)となる。もちろんこれが 0になることは一般的には無い。結晶中では、原子位置RはR = Rl + Rbと、単位胞の位置Rlとその中での基本構造原子の相対位置Rbの和で表される。これを便宜上、(lb)、あるいは (lmn, b)と記そう。ここに l = (lmn)は単位胞のインデックスである。pwbcdの中では原子座標として基本構造原子Rbの全てを分解している。しかし単位胞の位置Rlは区別せず(これは当たり前である。そ

11

Page 14: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

A

B

図 7: (Left) a combination of atom A and B. (Right) atomic orbital representation in acrystal

うしないと無限個の組み合わせが必要となる)、その lに関する和、いわゆるブロッホ和だけを計算している。zincblendeの場合単位胞に2個の原子を含み、この原子軌道分解ではその2個の原子は区別している。しかしそのEs,x(1, 2)と言う場合、Es,x((000, 1), (000, 2))を計算しているのではない。等価の他の単位胞から来ているものものも全て含む、すなわち

Es,x = Es,x((0, 1), (000, 2)) + Es,x((0, 1), (1̄1̄0, 2))+

Es,x((0, 1), (1̄01̄, 2)) + Es,x((0, 1), (01̄1̄, 2)) (3)

である。この和のため式(2)の方向余弦は打ち消しあって和は0となる。このように単位胞の中で見ると、一見独立した原子軌道のように思えるものでも、並進対称性により隣の単位胞の原子とも結ばれ、結果として原子軌道としての直交性がなくとも結晶の対称性の理由により直交性が現われることがしばしばある。これを避けて孤立原子のときの性格を引き出したかったら、大きなスーパーセルを用いて、隣の単位胞の原子との相互作用を弱くするというアイデアがある。

4.2 pdosdr

pdosdrの使い方は以下のようになる。入力ファイル pdosdr.inpは、

gaas.NONM

4 4 4841 Ga4s2 Ga4p5 As4s6 As4p-0.6 1.0 0.0018 1 12

12

Page 15: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

などとする。第 4.1節の pwbcdの出力との対応を見るべきである。この意味は表 1のようにまとめられている。前にも述べたように、もともと pdosdrは全電子計算に付随するものとして書かれている。Osaka2kに移植するとき、入力インターフェースはできるだけ元のものと同じになるように努めたが、それでもいくらか入力フォーマットを変更せざるを得なかった。まず扱う結晶の名前を最初に入れた。

-0.6 -0.4 -0.2 0.0 0.2 0.4 0.6 0.8 1.0

Energy \Ry.\

1

2

3

4

5

Sta

tes/

Ry

.

pDOS of GaAs

Ga4s

Ga4p

As4s

As4p

図 8: Partial DOS of GaAs.

部分 DOSの成分数に関しては上の例のように、MAXCMPと NCOMPの二つを指定しなければならないのは不便であるが、これは古い FORTRANで記述するときの妥協線である。部分DOSへの分解のため取っているディメンジョンは式(1)のようになっている。つまり、今の例GaAsであれば、Ga、Asそれぞれについて s、p、d、f の4種類、合計8種類である。これが MAXCMPに指定すべき数である。しかし実際に擬ポテンシャルとして部分 DOSを計算するのは、Ga4s、Ga4p、As4s、As4pの4つだけである。それらをこの例のように明示的に指定し、その数を NCOMPに入れる。ここに、部分DOS(pDOS)を描くときの原子軌道のラベルを知る必要がある。通常それは*.primの中の原子の種類順に行われる。今の例では

Number of atom species2No Name Zat Zval1 ga 31 32 as 33 5Kind of atoms 2

Number of atoms 2L.L. AND U.U. VALENCE ELEMENT

13

Page 16: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

表 1: input form of pdosdr.inp. When MAXCMP=0, specification NCOMP is not re-quired.

descriptionNAME name of the crystal with a periodMAGNET specify the magnetic state

(NONM, MAGN, SPIN)NX, NY, NZ segments of BZMAXCMP dimension of decomposed orbitals(NCOMP number of selected orbitals

followed by each name of selected orbitals)ESTART, ENEND, DE energy scale

begin at E =ESTART end at E =ENENDwith spacing DE

NELEC, NB1, NB2 number of electronsspanning from band NB1 to NB2

1 1 3.0000 1 ga2 2 5.0000 2 as

となっているので、Ga、Asの順となる。原子の種類というのはプログラム中では nkatという変数で表されるところの既約原子の種類数を意味する。しかしこれだとスーパーセルでは非常に大きな数となり、成分分解が大変になるので nkatがある程度大きくなると1、nspecで表されるところの元素の種類について割り振られる。次に各の原子に関して pから f 軌道の順に並べられる。dos *.outの出力ファイルで確認すると、

Number of atom speciesDecomposition of DOSparametersmaxcmp : 8contracted decomposition by nkat = 2NO ik at l1 1 ga 02 1 ga 15 2 as 06 2 as 1

のように原子軌道に通し番号が割り振られる。pdosdr.inpで指定する番号はこの通し番号である。pdosdrの出力ファイル fort.13はDOSをエネルギー順に書き下している。はじめに全

DOSを、次に pdosdr.inpで指定された pDOSをその順にリストする。スピンがあるとき

1nkmax0dosによって指定される。その初期値は 6である。

14

Page 17: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

はスピンアップに対しての全DOSそして要求があればそれの pDOSをリストする。次にスピンダウンに関してその手順を繰り返す。

4.3 aydosp

aydospは pdosdrの出力(特に fort.13)を受け、それをPSファイルに図示化する。その入力ファイル aydosp.inpは

61-0.6 1.0 150.0 120.0 20.0 5.0 0.376 14 1 2 3 4DOS of GaAs

のようにする。

表 2: input form of aydosp.inpdescription

IFIL specify file numberEO, EM, minimum and maximum of energy

XM, YM, scale of x- and y- axes (mm)DDOS, DOSM, the tick and full scale of DOSEF, ISPIN Fermi level and spin status

NLINE, JLINE(NLINE) number of pDOS linesfollowed by each pDOS specification

D title

ここでDOS成分の番号付けについて注意が必要である。今度の番号は pdosdrの出力ファイル fort.13に現れる番号である。つまり pdosdr.inpで指定される番号と違うので注意が必要だ。出力ファイル fort.13ではいつでも最初のDOSは全DOSである。これを 0番目と数える。NLINE, JLINE(NLINE)の行を例示すると次のようになる。

no SPIN1 0 -> 1 data; total DOS only2 0 2 -> 2 data; total DOS and a partial DOS of #23 1 3 4 -> 3 data: 3 partial DOSs of #1, 3, and 4SPIN2 0 1 -> 2 data: up and down total DOSs

最終的なDOS図は図 8に示されている。

15

Page 18: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

-0.6 -0.4 -0.2 0.0 0.2 0.4 0.6 0.8 1.0

Energy \Ry.\

1

2

3

4

5

Sta

tes/

Ry

.

pDOS of GaAs sum of abs^2

-0.6 -0.4 -0.2 0.0 0.2 0.4 0.6 0.8 1.0

Energy \Ry.\

1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20

Sta

tes/

Ry

.

pDOS of GaAs sqrt sum

図 9: Comparison of two ways of pdos. The left is the sum of square of the matrix element,while the right is the sum of absolute value of the elements.

4.4 pDOSの表現の仕方

ところで pDOSの表現の仕方にはいろいろ任意性がある。例えば式(??)で求められる⟨ψk|ϕκ

lm⟩はもちろん複素数なので、そのままでは実数座標にはプロットできない。どうするか。まず考えられるのが、その絶対値自乗 |⟨ψk|ϕκ

lm⟩|2を取ることである。これまでのものは(例えば図 8)、実際このように取っている。さらにmを分解しないときは、∑

m

|⟨ψk|ϕκlm⟩|2 (4)

をプロットしていることになる。しかしこれを∑m

|⟨ψk|ϕκlm⟩| (5)

と自乗しない形に選ぶこともできる。解釈の違いだけである。図 9にそれらを比較してある。定義の違いだけでどちらでも本質的に同じである。以降は、定義として一番自然な自乗和を取っている。

5 Case study I - Si中のCu不純物の例

今度は別の種類の計算例を示す。部分DOSを描く多くの場合の状況は、固体中の不純物の作るバンドを知りたいというときである。その目的ではホスト原子によるスーパーセルが取られそこに不純物原子が一個入れられるというのが一般的な配置である。このような

16

Page 19: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

場合、含まれる原子全てに関して部分DOSを描く必要はない。目的とする不純物だけのものと、残りのホスト原子全てのものを比較できれば十分である。またスーパーセルのサイズが大きくなると、まともにDOS計算(pwbcdにより)を行うことが困難となるので、何とかセルフコンシステント計算の中でDOSを計算したい。そのような例としてシリコン中のCu不純物の作るバンドを見てみよう。取り上げるスーパーセルは Si8Cuである。このスーパーセルがシリコン中のCu不純物の状態を正しく反映するとは言い難いが、ここでは物理的な正当性は議論しない。

5.1 セルフコンシステント計算

取り上げる Si8Cuは元々の完全シリコン結晶に、格子間位置 T サイトに置いたものである。Cuは結晶データー si8cu.primで9番目の原子である。

セルフコンシステント計算が終わったときの価電子バンド上端の状態は

========== Energy sort at Fermi level ============

# kn spn ie Eks Occ

valence band

1 1 1 22 0.55250 1.00000

2 2 1 22 0.55250 1.00000

3 4 1 22 0.55250 1.00000

4 3 1 22 0.55250 1.00000

All the bands are fully occupied

Therefore, Egap is undetermined.

となっている。

5.2 pwbcdによるDOS計算

この状態から出発してDOSを描かしてみる。入力ファイル bcd.paraのオプションで

OPTION BEGIN

decompDOS ON

OPTION END

とやると、pwbcdはDOS計算において成分分解を始める。このときの原子軌道成分のラベル付けは

Decomposition of DOS

parameters

maxcmp : 8

contracted decomposition by nspec = 2

NO ik at l

1 1 si 0

2 1 si 1

5 2 cu 0

6 2 cu 1

7 2 cu 2

17

Page 20: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

のようになる。このときの MAXCMPが 8となっているのは、このような大きな nkatのときは、MAXCMPは式(1)で決められるのではなく、nkatのところを nspecに置き換えたもの(今の例では 2)で与えられるからである。さらに

OPTION BEGIN

decompDOS ON

mdecomp0dos ON

targetatom0dos=

9

OPTION END

とすることで、lだけでなくm成分まで分解する。このときは全ての原子にとっていたのではデーターが肥大化するので、興味ある原子(大抵は不純物原子)についてとれば十分である。それを変数 targetatom0dosで指定するのである。今の例ではCu原子、すなわち9番目の原子を上のように指定する。原子軌道成分のラベル付けは

Decomposition of DOS

parameters

maxcmp : 9

contracted decomposition by nspec = 2

decomposition up to m levels

NO ik at l

concerned only in the atom 9

1 1 cu 0

2 1 cu 1

3 1 cu 2

のようになる。このときは MAXCMPの値は不純物原子のみに限定されるので、9となる。

-0.6 -0.4 -0.2 0.0 0.2 0.4 0.6 0.8 1.0

Energy \Ry.\

50

100

150

200

Sta

tes/

Ry

.

DOS of Cu in Si

-0.6 -0.4 -0.2 0.0 0.2 0.4 0.6 0.8 1.0

Energy \Ry.\

1

2

Sta

tes/

Ry

.

Partial DOS of Cu in Si

-2

-1

0

1

2

図 10: Total DOS of Cu in Si obtained by pwbcd, along with projected DOS on each m

component of Cu3d orbitals.

さて実際に pwbcdにより DOS計算を行ってみる。以上の事項を念頭に置きながら入力ファイル bcd.paraを以下のように設定する。

18

Page 21: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

JobType

dos

Input file name

si8cu.prim

number of division (nkdiv)

4

number of levels you want to draw (NBUP) usually NEPC

44

scan zone only (iscan)

0

print control (ilp)

1

use symmetry (isymm)

1

energy unit (ienun=0 for Ry, 1 for eV)

0

OPTION BEGIN

decompDOS ON

mdecomp0dos ON

targetatom0dos=

9

OPTION OFF

その結果 pwbcdは DOS計算を行い最後にフェルミ準位を割り出す。それは以下のようになる。

========================= FindEf ==============================

Nel0prim = 43

fixocc = 2.00000E+00

N of electrons 43 are occupied in the ascending order in energy.

N of occupation processe1097

residual of electron num 0.000000

Degeneracy = 2 at the Fermi level

=== Fermi Sort Summary ===

Fermi_Level = 0.730775 (Ry)

at 51 th k-point R 2 2 2/ 4 (p) 2 2 2/ 4 (c)

Valence Top

= 0.730776 (Ry)

at 51 th k-point R 2 2 2/ 4 (p) 2 2 2/ 4 (c)

Conduction Bottom

= 0.730777 (Ry)

at 51 th k-point R 2 2 2/ 4 (p) 2 2 2/ 4 (c)

Energy Gap

= 0.000001 (Ry)

with energy resolution for degeneracy 1.00E-03 (Ry)

=======================================================================

Accumulated CPU time:

175577.576 (s) on five

DOS図を描くにはさらに処理しなければならない。pwbcdの出力ファイル fort.2をまずpdosdrにより tetrahedron法により内挿計算をする。その入力ファイル pdosdr.inpは

NONMSPIN-ORBIT

si8cu.

4 4 4

9

5

19

Page 22: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

5 Cud1

6 Cud2

7 Cud3

8 Cud4

9 Cud5

-0.6 1.0 0.001

43 1 30

とする。k点分割は当然 pwbcdの分割と同じにすべきである。部分DOSとして Cu3dの5成分を取り出すことをしてする。MAXCMPが 9となっていることに注意すべきである。これは pwbcdの出力する部分DOSの成分が、Cuに関して、s、p、dそれぞれをmで分解した形で全部で 9あることをいっている。ここではこのうち d軌道成分だけが興味あるので、その 5つの成分だけを取り出している。この計算出力のうち fort.13 を用いてポストスクリプトによる DOS 図を描くものが

aydospである。その入力ファイル aydosp.inpは

61

-0.6 1.0 150.0 120.0 1.0 2.0 0.724 1

5 1 2 3 4 5

Partial DOS of Cu in Si

とする。最終的な DOS図は図 10のようになる。Cuがなければ 0.47 Ryくらいが価電子帯上端である。Cu を入れたことによりギャップ状態がなだらかに埋まっている。m で分解したCu3dの部分DOSがその右側に示されている。付録Aで示されるように、m = 0, 2が dγ、m = −2, −1, 1が dϵ軌道に対応する。図から読み取れることは、まずCuの 3d軌道は、おおまかにはホストの Si原子と結ばれ、エネルギースペクトルで 0.5 Ry以下で結合軌道を、それ以上で反結合状態を形成する。dγ

成分は、結合軌道は 0.22 Ryくらいに、その上、0.4 Ry付近に dϵの結合軌道が現れている。反結合状態では、逆に反結合状態 dϵが初めに 0.66 Ry付近に、次ぎに dγ の反結合状態が0.7 Ry現れている。これは今の配置 T サイトでは、Cud軌道はOctahedron配置の分子場の影響の方が大きく、結合・反結合状態のエネルギー分裂が大きいことを示している。

6 case study II -スピンの入った計算DOS図を描くときも、まず元となるDOS計算を pwbcdで済ませておく。その入力ファイル bcd.paraは例えば

JobTypedosInput file namefe.primnumber of division (nkdiv)8number of levels you want to draw (NBUP)12scan zone only (iscan)

20

Page 23: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

1print control (ilp)1use symmetry (isymm)1

のようにする。

0.0 0.2 0.4 0.6 0.8 1.0 1.2 1.4 1.6 1.8 2.0

Energy \Ry.\

10

20

30

40

50

Sta

tes/

Ry

.

DOS of Fe

図 11: DOS diagram of Fe. Both of down (solid line) and up (dashed line) bands aredisplayed.

バンド計算のときと同じように、以後のデータ処理に必要なファイル fort.2が出力される。このデータファイルを用いて DOSを描くのが pdosdrである。Osaka2kのマニュアルではスピンなしの場合だけが説明されていたが、ここではスピンを含んだ場合を説明する。入力ファイル pdosdr.inpは

MAGN4 4 4

00.2 2.0 0.0018 1 10

とする。この意味は

kind of calc. : NONM or MAGN or SPIN4 4 4 : the number of segment for BZ0 : the number of components in

drawing partial DOS0.2 2.0 0.001: the energy scale (Ry),

21

Page 24: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

plot from E=0.2 to 2.0 with an interval 0.0018 1 10 : the number of electron = 8,

the bottom band = 1, the top band = 10

である。pdosdrは tetrahedron法によりDOSを描くための内挿を行い、エネルギーに対するDOSを二次元データとしてファイル fort.12、fort.13出力する。本当に PostScritで DOSを描くとき、このうち fort.13の方を用いて aydospを掛ける。fort.13では、スピンがあるときははじめにアップの成分、次にダウンの成分が分けて出力される。その入力ファイルaydosp.inpは

610.0 2.0 150.0 120.0 10.0 50.0 1.0408 22 0 1DOS of Fe

のようにする。 このファイルの意味するところは

IFILE : File number for the output postscript fileEmin, Emax, x-size (mm), y-size (mm), EF, ISPINNLINE, JLINE(I)TITLE

である。このうち、ISPINはスピンが無いときは 1、あるときは 2とセットする。スピンがあるとき、かつアップ・ダウン両方を描きたいときは次の行の NLINEを 2として、その後に2つのDOSのデータブロックを 0、1と指定する。0がアップ、1がダウンに対応する。図 11にはこうして得られたスピンを含んだDOSが描かれている。

22

Page 25: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

7 DOS計算におけるkメッシュの問題pwbcdのネィティブな kメッシュは primitive unit cellに対してきられており、そのため

TSPACEのメッシュの切り方を踏襲する pdosdrとは整合性に問題が出てくる。そこでブラヴェー格子ごとにメッシュの切り方に関する変換則を知らねばならない。それが非常に煩わしいので,そこで pwbcdでもTSPACEのメッシュの切り方を組み込み、ユーザーが選択できるように

ts_segBZ ON

というオプションを用意した。TSPACEの組み込みメッシュ計算ルーチンは TSKPGNであるので、これを callする。図 12参照。はじめはこれで問題が解決すると思っていたが、使ってみるとそんな単純なものではなかった。何といっても pdosdrに採用されている kメッシュ計算ルーチン KPSETは実際のところ TSKPGNとは全く別のものである。

Osaka2kprimitive base

conventional base

TSKPGN

KPSET

mesh routine

default

ts_segBZ ON

TSPACE

PDOSDR

KSEGMT

feedback by option

図 12: 各プログラムの kメッシュ計算方法。

こういうことでブラヴェー格子ごとに対策をとっているようでは、とても一般ユーザーは使えるようにはならない。究極の策として,後ろの方からつまり pdosdrの kメッシュ計算ルーチン KPSETに全てを合わせるオプションを用意し、複雑な場合はそれを用いることを薦めることとした。

7.1 pdosdrのメッシュに合わせる

ts segBZ ONとして、メッシュの切り方をTSPACEのものに合わせてさえも、pwbcdとpdosdrのメッシュ入力は若干違う。こういうことでは、ユーザーは困るばかりである。pdosdrのメッシュの切り方は、これまで述べられたようにそもそもBZの取り方自体も違い、これと整合性を持たせることは容易ではない。そこで、pdosdrのアルゴリズムを解析して複雑なやり方を模倣するより、pdosdrのメッシュをデータファイルに落とし、そのメッシュを強制的に pwbcdに適用するやり方を施した。pdosdrの入力ファイル pdosdr.inpで、最初に計算する結晶名を入れるが、通常は例えば Siの場合であれば

23

Page 26: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

si.prim

とする。このうちの primは実際には無視される。これを

si.test

としてやると、pdosdrは実際はDOS計算をせずに、pdosdrの中の k点メッシュのデータだけを計算し出力する。そうすると、出力ファイル pdosdr.outでは

GENERATED KPOINT IN KPSET

NO KX, KY, KZ, ICC IN

1 0 0 0 6

2 0 0 1 6

3 0 0 2 6

4 0 0 3 6

5 0 1 0 6

...

196 6 6 3 6

と、k点メッシュのリストが書かれる。このリストをタイトルの部分は省き、正味数値リストの部分だけを

1 0 0 0 6

2 0 0 1 6

3 0 0 2 6

4 0 0 3 6

5 0 1 0 6

...

196 6 6 3 6

と取出し、kpt dos.datとファイル名を付ける。このファイルを、pwbcdの計算に返す。このときの入力ファイル bcd.paraのオプションに

manual_BZseg ON

196

としてやれば、pwbcdはこのデータファイルにある k点サンプリングを忠実に実行する。

7.2 ブラべー格子個別にみる kメッシュの切り方

こうしてプログラムが k点サンプリングの世話をしてくれるが、何れにせよ、ユーザーはどのような切り方をしているか知らなければならないだろう。オプション ts segBZ ONを入れたとき pwbcdは TSKPGNを使う。以下に,TSKPGNの基本原則と、KPSETのアルゴリズムを対比させながら説明する。

TSPACEの kメッシュを与える具体的なルーチンは

TSKPGN(nkdiv1,nkdiv2,nkdiv3,KKM,ICC,NK)

24

Page 27: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

である。bcd.paraで、defaultで入力を求められる単一パラメータ kdivはこのルーチンの引数 nkdiv1,nkdiv2,nkdiv3に同一に引き渡される。nkdiv1,nkdiv2,nkdiv3を別々に入れたければオプション入力することになる2。TSKPGNの入力において、入力値 n=nkdivの意味は、逆格子ベクトルの半分を n等分するという意味である。実際には、逆格子ベクトルにそってフルゾーンで 2n個の分割点を作る。切り方は

−n − 22n

,−n − 42n

, · · · ,n

2n

のようになる。TSKPGNはそのようにして切り出されたメッシュ点のうち対称性として独立したセットだけを抜き出す。例えば、bcd.paraで kdiv = 2と入力してやると、TSKPGNは

{-1, 0, 1, 2}/4

とメッシュを切る。対称性が全くない結晶で、3方向とも同じメッシュ数で入力すると、全部で 43 = 64点となるが、実際のところ対称性のない場合でも −kは省かれ 36点の計算となる(64/2 = 32点でないことに注意)。これに対して、pdosdrのメッシュは入力数 n=nkdivに対してフルゾーンを n分割する。

TSKPGNの場合に比べて2倍違うことに注意。上の例に対応する pdosdrのメッシュには NKとして

4 4 4

と入力してやらねばならない。これが基本である。問題はFCCなどの単純格子でないもの、基本逆格子が a∗、b∗、c∗と一致しない場合である。

7.2.1 FCC

FCCでは a∗軸での基本逆格子は 2である(2π/a単位)。したがって逆格子ベクトルの大きさで 1のものまで走査すればよい.bcd.paraで、(n =nkdiv)の値を入れると、TSKPGN

は 2n個のメッシュ点を−n − 1

n,−n − 2

n, · · · ,

n

n

のように切る。例えばO7

hで kdiv = 2とセットしてやると、

No NM c p DK Nstr WTK eq rev

1 GM 0 0 0/ 4 0 0 0/ 4 0.0000 1 0.03125 1 0

2 DT 2 0 0/ 4 0 1 1/ 4 0.3061 6 0.18750 1 0

3 SM 2 2 0/ 4 1 1 2/ 4 0.4329 12 0.37500 1 0

4 L 2 2 2/ 4 2 2 2/ 4 0.5302 4 0.12500 2 0

5 X 4 0 0/ 4 0 2 2/ 4 0.6122 3 0.09375 2 0

6 W 4 2 0/ 4 1 2 3/ 4 0.6845 6 0.18750 4 0

2このとき入力される nkdiv1,nkdiv2,nkdiv3,gcmの最後の数 gcmは無視される。この数は TSKPGN を使わないデフォルト設定、つまり ts segBZ OFFの場合使われるもので、nkdiv1,nkdiv2,nkdiv3の最大公倍数を入れる。

25

Page 28: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

の6点となる。対称性により負の値の点は完全に取り除かれている。これに対応する pdosdrのメッシュには NKとして

2 2 2

と入力する。このときの pdosdrのつくるメッシュは

GENERATED KPOINT IN KPSET

NO KX, KY, KZ, ICC IN

1 0 0 0 2 1

2 1 0 0 2 2

3 1 1 0 2 3

4 1 1 1 2 4

5 2 0 0 2 5

6 2 1 0 2 6

7 2 1 1 2 3

8 2 2 0 2 5

9 2 2 1 2 2

10 2 2 2 2 1

と、6点全てを利用する。

7.2.2 BCC

この場合も、a∗軸での基本逆格子は 2である(2π/a単位)。したがって、bcd.paraで、(n =nkdiv)点のメッシュ点を与えると、TSKPGNは

−n − 1n

,−n − 2n

, · · · ,n

n

のように切る。例えば、O9

hでは kdiv = 4と入力してやると、

{0, 1, 2, 3, 4}/4

とメッシュを切る。全部で 43 = 64点となるが、実際のところは対称性により減る。

No NM c p DK Nstr WTK eq rev

1 GM 0 0 0/ 4 0 0 0/ 4 0.0000 1 0.01563 1 0

2 SM -1 -1 0/ 4 0 0 -1/ 4 0.3736 12 0.18750 1 0

3 DT -2 0 0/ 4 1 -1 -1/ 4 0.5283 6 0.09375 1 0

4 XY -2 -1 1/ 4 1 0 -2/ 4 0.6470 24 0.37500 1 0

5 N -2 0 2/ 4 2 0 -2/ 4 0.7471 6 0.09375 2 0

6 G -3 0 1/ 4 2 -1 -2/ 4 0.8353 12 0.18750 2 0

7 P -2 2 2/ 4 3 -1 -1/ 4 0.9150 2 0.03125 4 0

8 H 4 0 0/ 4 -2 2 2/ 4 1.0566 1 0.01563 6 0

と8点までに減る。これに対応する pdosdrのメッシュの与え方は NKとして

2 2 2

と入力する。これに対する pdosdrのメッシュの切り方は

26

Page 29: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

GENERATED KPOINT IN KPSET

NO KX, KY, KZ, ICC IN

1 0 0 0 2 1

2 1 0 0 2 3

3 1 1 0 2 5

4 1 1 1 2 7

1 2 0 0 2 8

2 1 0 0 2 3

3 1 1 0 2 5

4 1 1 1 2 7

となり、この場合、pwbcdの与えた8点全てを使っているわけではないことが分かる(2、4,6が抜けている)。だからといって、pwbcdに kdiv = 2と入力すると

{0, 1, 2}/2

とメッシュを切るが、独立した k点は

No NM c p DK Nstr WTK eq rev

1 GM 0 0 0/ 2 0 0 0/ 2 0.0000 1 0.12500 1 0

2 N -1 0 1/ 2 1 0 -1/ 2 0.7471 6 0.75000 2 0

3 H 2 0 0/ 2 -1 1 1/ 2 1.0566 1 0.12500 6 0

の3点で、ここには (110)/2が抜けてしまう。

7.2.3 C-center

この場合は、c∗方向に対しては、SCと同じ扱いで、2n点のメッシュを−(n−1)/2n, · · · , n−1, n/2nのように切る。a∗、b∗ 方向に対しては、2n点のメッシュを −2(n − 1), · · · , 2(n −1), 2n/2nのように取る。例えば Cmcaでは、kdiv = 2と入力してやると、

No NM c p DK Nstr WTK eq rev

1 GM 0 0 0/ 8 0 0 0/ 8 0.0000 1 0.03125 1 0

2 DT 0 4 0/ 8 2 2 0/ 8 0.1583 2 0.06250 1 0

3 LD 0 0 2/ 8 0 0 2/ 8 0.1898 2 0.06250 1 0

4 XP 0 4 2/ 8 2 2 2/ 8 0.2472 4 0.12500 1 0

5 Y 0 8 0/ 8 4 4 0/ 8 0.3167 1 0.03125 2 0

6 H 0 8 2/ 8 4 4 2/ 8 0.3692 2 0.06250 2 0

7 Z 0 0 4/ 8 0 0 4/ 8 0.3796 1 0.03125 2 0

8 B 0 4 4/ 8 2 2 4/ 8 0.4113 2 0.06250 2 0

9 T 0 8 4/ 8 4 4 4/ 8 0.4943 1 0.03125 4 0

10 SM 4 0 0/ 8 2 -2 0/ 8 0.5023 2 0.06250 1 0

11 S 4 4 0/ 8 4 0 0/ 8 0.5266 2 0.06250 2 0

12 YP 4 0 2/ 8 2 -2 2/ 8 0.5369 4 0.12500 1 0

13 D 4 4 2/ 8 4 0 2/ 8 0.5598 4 0.12500 2 0

14 A 4 0 4/ 8 2 -2 4/ 8 0.6295 2 0.06250 2 0

15 R 4 4 4/ 8 4 0 4/ 8 0.6491 2 0.06250 4 0

とメッシュを切る。これに対応する pdosdrのメッシュの与え方は NKとして

2 2 2

と入力する。これに対する pdosdrのメッシュの切り方は

27

Page 30: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

0a*

b*

図 13: k-point mesh of hexagonal system.

GENERATED KPOINT IN KPSET

NO KX, KY, KZ, ICC IN

1 0 0 0 2 1

2 0 0 1 2 7

3 0 1 0 2 2

4 0 1 1 2 8

5 1 0 0 2 10

6 1 0 1 2 14

7 1 1 0 2 11

8 1 1 1 2 15

9 2 0 0 2 5

10 2 0 1 2 9

11 2 1 0 2 2

12 2 1 1 2 8

となり、この場合、pwbcdの与えた 15点全てを使っているわけではないが、その差は大きくない。

7.2.4 Hex

この場合の TSKPGNのメッシュの切り方は例外である。実際のところをやって見る。bcd.paraで kdiv = 2とセットしてやると、TSKPGNは、たとえばD4

6hでは

No NM c p DK Nstr WTK eq rev

1 GM 0 0 0/ 12 0 0 0/ 12 0.0000 1 0.00694 1 0

2 LD 0 0 3/ 12 0 0 3/ 12 0.1241 2 0.01389 1 0

3 A 0 0 6/ 12 0 0 6/ 12 0.2483 1 0.00694 2 0

4 SM 3 0 0/ 12 3 0 0/ 12 0.3908 6 0.04167 1 0

28

Page 31: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

5 YP 3 0 3/ 12 3 0 3/ 12 0.4100 12 0.08333 1 0

6 T 2 2 0/ 12 2 2 0/ 12 0.4513 6 0.04167 1 0

7 R 3 0 6/ 12 3 0 6/ 12 0.4630 6 0.04167 2 0

8 XY 2 2 3/ 12 2 2 3/ 12 0.4680 12 0.08333 1 0

9 S 2 2 6/ 12 2 2 6/ 12 0.5151 6 0.04167 2 0

10 ZP 4 2 0/ 12 4 2 0/ 12 0.6893 12 0.08333 1 0

11 GN 4 2 3/ 12 4 2 3/ 12 0.7004 24 0.16667 1 0

12 ZB 4 2 6/ 12 4 2 6/ 12 0.7327 12 0.08333 2 0

13 M 6 0 0/ 12 6 0 0/ 12 0.7816 3 0.02083 2 0

14 U 6 0 3/ 12 6 0 3/ 12 0.7914 6 0.04167 2 0

15 TP 5 2 0/ 12 5 2 0/ 12 0.8135 6 0.04167 2 0

16 L 6 0 6/ 12 6 0 6/ 12 0.8201 3 0.02083 4 0

17 XB 5 2 3/ 12 5 2 3/ 12 0.8229 12 0.08333 2 0

18 SP 5 2 6/ 12 5 2 6/ 12 0.8506 6 0.04167 4 0

19 K 4 4 0/ 12 4 4 0/ 12 0.9025 2 0.01389 3 0

20 P 4 4 3/ 12 4 4 3/ 12 0.9110 4 0.02778 3 0

21 H 4 4 6/ 12 4 4 6/ 12 0.9361 2 0.01389 6 0

とメッシュを切る。z = 0面だけをみると、

(0 0), (3 0), (2 2), (4 2), (6 0), (5 2), (4 4)/12

の 7点となっていることが分かる。この分割のようすは図 13で見るほうが早い。この図を見ると、Hexagonalに関しては、

a∗、b∗を整数分割すると、六角形の頂点の座標(黒線で示される)が整数値とならず、これに対して tetrahedron法を適用することができなくなる。そのため分割点を赤線で示されるように取る。こうすればきっちり IWに対して tetrahedron法を適応することができる。上の例では、図から n = 2に対して、本来は 6点となるべきであるが、 (4 2)/12が含まれている.これは図 13からみると含まれているべきでない点である。どうやらバグのようだ。これに対応する pdosdrのメッシュには NKとして、実用的なことを述べれば、

2 2 2

でよい。このときの pdosdrのつくるメッシュは

Effective point group is D6h

NX,NY,NZ,ICC= 2 2 2 12

LCM,ICC,KDX,KDXX,KDY,KDZ= 12 12 3 1 2 3

GENERATED KPOINT IN KPSET

NO KX, KY, KZ, ICC IN

1 0 0 0 12 1

2 0 0 3 12 2

3 0 0 6 12 3

4 3 0 0 12 4

5 3 0 3 12 5

6 3 0 6 12 7

7 2 2 0 12 6

8 2 2 3 12 8

9 2 2 6 12 9

10 6 0 0 12 13

11 6 0 3 12 14

12 6 0 6 12 16

13 5 2 0 12 15

14 5 2 3 12 17

15 5 2 6 12 18

16 4 4 0 12 19

17 4 4 3 12 20

18 4 4 6 12 21

29

Page 32: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

と、21点よりは少ない。(4 2)/12が含まれていず、同一 c面の中では 8点なので、やはりこちらの方が正しい。

Hexagonalに関しては、点群の種類により pdosdrはよりきめ細かに分類しているようで、まだ全容はよく解析していない。

7.2.5 Rhombohedral

この場合ももう一つの例外である。ここに至ってはゾーンを何分割しているかということを明確にいうことができない。c∗軸方向に対してだけは、正確に 3/2の長さを n分割していることはいえるが、ab面内ではよく分からない。しかし正確ではないにしろ、やはり a∗、b∗軸とも、およそ 3/2の長さを nのように切っていることは確かだ。ただ、それがゾーン境界ではなく、それよりも余裕を取って大きく取っており、その間でメッシュ点を取り、しらみつぶしでゾーン内にあるものだけを取り込んでいるので、一体ゾーンを何分割しているかよく分からない。具体例を見よう。例えばD5

3dの場合、kdiv = 3と入力してやると、TSKPGNは

No NM c p DK Nstr WTK eq rev

1 GM 0 0 0/ 6 0 0 0/ 6 0.0000 1 0.04167 1 0

2 LD 0 0 3/ 6 1 1 1/ 6 0.1355 2 0.08333 1 0

3 LD 0 0 6/ 6 2 2 2/ 6 0.2710 2 0.08333 1 0

4 YP 3 0 0/ 6 2 -1 -1/ 6 0.3952 6 0.25000 1 0

5 Z 0 0 9/ 6 3 3 3/ 6 0.4064 1 0.04167 2 0

6 XP 0 3 3/ 6 2 2 -1/ 6 0.4178 6 0.25000 1 0

7 L 3 0 3/ 6 3 0 0/ 6 0.4178 3 0.12500 2 0

8 F 0 3 6/ 6 3 3 0/ 6 0.4792 3 0.12500 2 0

の8点を返す。これに対応する pdosdrのメッシュの与え方は NKとして

1 1 2

と入力する。そうすると pdosdrは次の8点

NO KX, KY, KZ, ICC IN

1 0 0 0 2 1 1

2 0 0 1 2 2 1

3 0 2 0 2 3 1 +( 0 1 -1)

4 0 2 1 2 5 1 +( 0 1 -1)

5 2 0 0 2 3 4 +( 1 0 1)

6 2 0 1 2 2 4 +( 1 0 1)

7 2 2 0 2 1 1 +( 1 1 0)

8 2 2 1 2 2 1 +( 1 1 0)

を返す。しかしこの場合、pwbcdの与えた8点全てを使っているわけではない。というより、使っているのは 1と 4の二点だけである。あとは捨てられるのみである。非常に無駄の多い計算である。

30

Page 33: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

7.3 pwbcdと pdosdrの入力のまとめ

ts segBZ ONとして、メッシュの切り方をTSPACEのものに合わせてさえも、pwbcdとpdosdrのメッシュ入力は違う。ここにそれをまとめる。

表 3: Conversion of Nkdiv. For the case of ”manual input”, manual input is recommendedby backwording pdosdr mesh.

Crystal pwbcd pdosdr notedefault ts segBZ

P 2n n 2n

F 2n n n

I 2n 2n n

C n n

Rhm 3n n × n × 2n manual inputHex 2n 2n manual input

三方晶では、√

2a <√

3cの場合を示したが、そうでない場合は違う値となるだろう。たぶんそれは六方晶の場合と同じ形をとると推定されるが、まだよくテストしていない。

7.4 pdosdrのオプション

今回,pdosdrのオプションを加えた.それは各バンドごとの電子占有数(フェルミ準位までの占有数の和、つまり伝導電子の数)を出力するためのオプションである。入力ファイル pdosdr.inpの最後の行に次の一行を加える。

mg.

NONMSPIN-ORBIT

6 6 6

0

-0.5 1.0 0.001

2 1 8

1 <= added option

すると、出力ファイル pdosdr.outの最後に、

-------------------

Calculation of D(EF)

DFAC, NSPIN,NBAND,NPOINT,NBLOCK,ISO

2.0000 1 8 196 1 1

NB1/NB2= 1 8 NE 1501

Ef= 0.00000 IFP

Ef0= 0.08400 0.08500 xp= 0.84913

IB D(EF)

ISPIN= 1

1 1.544514

2 0.455485

3 0.000000

4 0.000000

31

Page 34: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

5 0.000000

6 0.000000

7 0.000000

8 0.000000

のように電子の占有数(スピンがないときは 2が上限)がリストされる。

8 繰り返し固有値最小化によるDOS計算

従来よりバンド計算 pwbcdでは、直接対角化法を用いていた。そのため大きなサイズのスーパーセル(Npw が 10000を超えるようなサイズ)では、スーパーコンピュータでも許容メモリーを超え、そもそも走らせること自体ができなかったことが大きな問題であった。それに対して、直接対角化法を取らず、一つ一つの固有値を変分原理で解いてゆく方法が有効である。

8.1 入力パラメータ

DOS計算でも、固有値の最小化法を行うには、pwbcdの入力ファイル bcd.paraでオプションとして

OPTION BEGIN

eks_method=

1

OPTION END

を付け加えるだけである。収束パラメータの使い方もオプションで次のものを用意している。

iterMaxWfn=5

nPathCG=5

これは SCF計算における波動関数の繰り返し回数、また CGパスの回数である。

8.2 graphiteの例

graphiteの計算例は、直接対角化法とKS固有値最小化法の違いが際立って見える。なにしろNpwが大きくて(すなわちH行列サイズが大きく)、かつ必要とするバンド数Nbはそれよりはるかに小さいので、KS固有値最小化法のメリットが際立つことになる。平面波展開条件は

32

Page 35: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

-1.0 -0.5 0.0 0.5 1.0

Energy [Ry]

0

5

10

15

20

25

30

35

40

DO

S [

stat

e/R

y.c

ell]

DOS of Graphite

図 14: DOS of graphite. The black line shows the direct-minimization method, while thered line shows the eigenvalue-minimization method. Note that the red and black linesagree well, so that two lines are almost indistinguishable.

==================== PW_Expansion ==============================

Cutoff in the reciprocal space

am = 20.14560 (rel. units)

kcut = 10.00000 (ab^-1) with 2Pi

Ecut = 100.00000 (Ry)

UNIT of K 0.49639 (a.u.)

Planewave expansion

with NHDIM = 3964

である。DOS計算に用いたパラメータは

JobType

dos

Input file name

gr.prim

number of division (nkdiv)

9

number of levels you want to draw (NBUP) usually NEPC

20

scan zone only (iscan)

1

print control (ilp)

1

use symmetry (isymm)

1

energy unit (ienun=0 for Ry, 1 for eV)

0

OPTION BEGIN

ts_segBZ ON

33

Page 36: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

anisotrop_ksample=

12 12 6 12

iterMaxWfn=

20

OPTION END

である。このメッシュは、12× 12× 12に対応するが、実効的な k点数として 637点となる。最後のオプション ttiterMaxWfnは繰り返しKS最小化の繰り返し数である。

表 4: Performance of the iterative method to the direct diagonalizationmethod time memory

(s) (MB)direct diagonalization 258,013 1,749.0iterative minimization 6,073 31.6ratio 42.5 55.3

繰り返しによるKSレベルの最小化過程は dos *.sumの最後のほうに次のように示されている。

====================================

Energy convergence

iter del E largest nWrongOrder

---- ---------- ---------- ----------

1 0.1515E+01 0.1905E+01 7101

2 0.8188E-01 0.1384E+01 2038

3 0.1461E-01 0.6799E+00 1890

4 0.8692E-02 0.1300E+00 1866

5 0.6220E-02 0.9168E-01 1656

6 0.4115E-02 0.9078E-01 1415

7 0.2895E-02 0.7018E-01 1206

8 0.2002E-02 0.4904E-01 1046

9 0.1389E-02 0.3204E-01 942

10 0.9990E-03 0.2158E-01 873

11 0.7699E-03 0.1786E-01 799

12 0.6031E-03 0.1724E-01 742

13 0.4752E-03 0.1566E-01 690

14 0.3807E-03 0.1346E-01 667

15 0.3103E-03 0.1063E-01 628

16 0.2582E-03 0.1298E-01 605

17 0.2187E-03 0.1087E-01 580

18 0.1857E-03 0.7092E-02 558

19 0.1604E-03 0.4790E-02 534

20 0.1387E-03 0.4774E-02 524

ここに繰り返しステップごとに、前ステップからのエネルギー減少分の平均値、最大値の絶対値を示している。最後の列はエネルギー準位の順番が反転した回数である。表 4を見れば、KS固有値最小化法のメリットは明らかとなる。直接対角化法では実に 71

h 、まる 3日間かかったことになるのに対し、KS固有値最小化法は2時間足らずで完了している。使用しているメモリーも直接対角化法では 2 GB近くなり、G5のXserveでは走らない。

34

Page 37: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

実際に DOSを描かせても、図 14で示されるように、赤線黒線の違いはほとんどわからない程度で、やはり両者は良く一致している。

35

Page 38: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

9 pwbcdにおけるDOS計算のオプション

()内は default値。

decompDOS 部分DOSに分解する(OFF)lレベルまで

mdecomp0dos mレベルまでの分解(OFF)

contract0dos 部分DOS分解を短くまとめる(OFF)

targetatom0dos= 部分DOS計算で特定の原子についてだけ得たいときの原子識別番号1

addedOrb0dos= 部分DOS計算で追加したい原子軌道li 1

ts segBZ DOSのメッシュを TSPACEのものを使う(ON)

manual BZseg マニュアルで kメッシュを切る(ON)NK3DIM

cutoff0KC= 実空間のカットオフ1.0

anisotrop ksample= 異方的な kメッシュ2 1 3 6: この例は、kx、ky、kzに関する分割を指定している。最後の数 6は3つの分割数の最小公倍数を表す。プログラムはこの数を自動的には計算してくれない。

ihex special= hexagonalの場合の特別の kメッシュ1

eks method= 繰り返しエネルギー最小化法によるDOS計算(0)

iterMaxWfn= 波動関数に関する最大繰り返し数5

nPathCG= Conjugate gradientの繰り返し数5

36

Page 39: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

A label of m components

Osaka2kで使われる角運動量波動関数の定義を述べる。部分DOSのm成分はこの表に現れる順で出てくるので、部分DOSの解釈に当たっては、この表を参照する必要がある。

表 5: definition of real-valued spherical harmonics in Osaka2k. The normalization factoris ignored.

l m Ylm

0 0 11 -1 x

0 z

1 y

2 -2 xy

-1 zx

0 z2 − x2 − y2

1 yz

2 y2 − x2

3 -3 x(3y2 − x2)-2 xyz

-1 x(4z2 − x2 − y2)0 z(2z2 − 3(x2 + y2))1 y(4z2 − x2 − y2)2 z(y2 − x2)3 y(y2 − 3x2)

B colors in aydosp

aydospの中で使われている色と番号の対応を記しておく。

c 1:Black

c 2:Red

c 3:Green

c 4:Blue

c 5:Orange

c 6:lavender

c 7:pink

c 8:lime

c 9:yellow

c 10:bright Blue

37

Page 40: 白井光雲 大阪大学・産業科学研究所 - Osaka …koun/o2knano/docs/dosman.pdf1 はじめに セルフコンシステント(SFC)計算が終了すると、バンド計算、DOS

参考文献

[1] No. 38 「スピンの効果」

[2] No. 43 「スピン計算の実例 - Feの場合 - 」

38