AkaiKKRでバンドギャップの測り方

AkaiKKR(machikaneyama)にはバンドギャップの大きさを数値として出力する機能がないように思えます。そこでBlochスペクトル関数にローレンツ関数をフィッティングすることにより、ギャップのエネルギーを計算してみました。このような方法が、どの程度物理的に意味があるのかは、難しいところですが。

001_20150928230014732.png

Fig.1: AkaiKKRによるGaAsのバンド構造の計算結果。Γ点のバンドギャップはグラフから目視で読み取る限り0.6Ry程度。



バンドギャップを目視で読みだす


ecaljなどでは、バンドギャップの大きさが数値として出力される機能があります。しかしながらAkaiKKR(machikaneyama)にはバンドギャップの大きさを数値として出力する機能がないように思えます。もちろん状態密度やバンド図を描いて目視で読み取ることは可能です。例えばGaAsはΓ点にVBM(Valence Band Mzximum)とCBM(Conduction Band Minimum)を持つ直接遷移型の半導体です。Fig.1はAkaiKKRによって計算されたΓ点付近のバンド構造で VBM は -0.03 Ry あたり CBM は 0.05 Ry あたりにあるのでバンドギャップは約 0.08 Ry だと読み取ることができます。(なおこの場合のエネルギー基準点 E=0 は必ずしも半導体のフェルミ準位(絶対零度における化学ポテンシャル)ではありません。金属の場合は問題なくフェルミ準位になりますが、半導体の場合はバンドギャップの間の「どこか」以上の事は言えないと思います。)

所詮LDAやGGAの範囲で決めたバンドギャップなので細かいことは気にしても仕方ないかもしれません。とは言うものの目視ではなくもうちょっと「ちゃんとした風」な値の出し方があった方が良いと思うときもあります。そんなわけで今回はBlochスペクトル関数にローレンツ関数をフィッティングしてピークの中心値を求めてみました。

計算方法


今回はspc計算の入力方法が、古いバージョンのAkaiKKRの方がやりやすいので(少なくともspc計算には)最新版(August 26, 2015)ではなく、それより以前のバージョン(May 22, 2015)を使用します。

最初に通常のgo計算を行います。以下はgo計算のための入力ファイルで、サンプルの入力ファイルを原子球近似(asa)としたものです。

c----------------------GaAs----------------------------------
go data/gaas
c------------------------------------------------------------
c brvtyp a c/a b/a alpha beta gamma
fcc 10.684 , , , , , ,
c------------------------------------------------------------
c edelt ewidth reltyp sdftyp magtyp record
0.001 1.5 sra mjwasa nmag 2nd
c------------------------------------------------------------
c outtyp bzqlty maxitr pmix
update 4 200 0.035
c------------------------------------------------------------
c ntyp
4
c------------------------------------------------------------
c type ncmp rmt field mxl anclr conc
Ga 1 1 0.0 2 31 100
As 1 1 0.0 2 33 100
Vc1 1 1 0.0 0 0 100
Vc2 1 1 0.0 0 0 100
c------------------------------------------------------------
c natm
4
c------------------------------------------------------------
c atmicx atmtyp
0 0 0 Ga
0.25 0.25 0.25 As
0.5 0.5 0.5 Vc1
0.75 0.75 0.75 Vc2
c------------------------------------------------------------


次にspc計算のための実行ファイルをコンパイルします。
まず source/specx.f の msex を大きめの値に変更します。今回は msex=401 としました。更に source/cemesr.f の data ref/0.75d0/ を data ref/0.5d0/ に変更します。これらの変更ののち make します。
前者はdos計算やspc計算のエネルギー分解能を決めるパラメータです。後者はewidthのうち、どれだけの割合をフェルミ準位より下に割り当てるかを指定するパラメータです。

前述のとおりGaAsのバンドギャップはΓ点にあるのでBlochスペクトル関数はΓ点だけ計算します。エネルギーの範囲もバンドギャップを含んでさえいればいいので小さめに変更します。

c----------------------GaAs----------------------------------
spc data/gaas
c------------------------------------------------------------
c brvtyp a c/a b/a alpha beta gamma
fcc 10.684 , , , , , ,
c------------------------------------------------------------
c edelt ewidth reltyp sdftyp magtyp record
0.001 0.2 sra mjwasa nmag 2nd
c------------------------------------------------------------
c outtyp bzqlty maxitr pmix
update 4 200 0.035
c------------------------------------------------------------
c ntyp
4
c------------------------------------------------------------
c type ncmp rmt field mxl anclr conc
Ga 1 1 0.0 2 31 100
As 1 1 0.0 2 33 100
Vc1 1 1 0.0 0 0 100
Vc2 1 1 0.0 0 0 100
c------------------------------------------------------------
c natm
4
c------------------------------------------------------------
c atmicx atmtyp
0 0 0 Ga
0.25 0.25 0.25 As
0.5 0.5 0.5 Vc1
0.75 0.75 0.75 Vc2
c------------------------------------------------------------
c kvector
0.0 0.0 0.0
c------------------------------------------------------------


すると data/gaas_up.spc にエネルギーとBlochスペクトル関数が書きだされます。

002_2015092823001346f.png

Fig.2: GaAsのΓ点のBlochスペクトル関数(赤)とローレンツ関数によるピークのフィッティング(緑と青)。


この数値データのピーク位置を読み取るだけでも良いのですが、もうひと手間かけてローレンツ関数にフィッティングしました。

\begin{equation}
f(x)=\frac{a_1}{1 + a_3 (x - a_2 )^2}
\end{equation}

その結果ピークの中心値は CBM が 0.0516617 Ry で VBM が 0.0297679 Ry となりました。したがってバンドギャップは 0.0814296 Ry となりました。

003_20150928230013664.png

004_20150928230013b79.png
Fig.3-4: それぞれのピークへのフィッティング


何が問題なのか?


Fig.3-4に示したようにAkaiKKRを用いて計算したBlochスペクトル関数は、エネルギーに広がりを持っています。しかし、本来なら規則構造の完全結晶の場合、エネルギーの幅を持たないデルタ関数的なピークになるはずです。このようなエネルギーの広がりがある(持たせてある)理由は第5回CCMSハンズオン(ソフトウェア講習会): AkaiKKRチュートリアル 1. KKR法のP29-30に書いてある通り、数値計算上の理由です。

規則構造の完全結晶だけなら、入力ファイルの edelt を十分小さくとれば、エネルギーの広がりは小さくなっていくので解決できます。問題は、不規則性の影響によってもエネルギーに広がりができるという事です。

不規則構造に関しても CBM や VBM に相当するBlochスペクトル関数のピークに対してフィッティングをすることによってピークの中心値を求めることはできると思います。しかし、数値計算的な理由からピークがぼやけている規則構造の場合と不規則性からエネルギーに不確定性が出ている場合とでは、意味が異なります。

関連エントリ




参考URL




付録


このエントリで使用したファイルを添付します。ファイル名末尾の".txt"を削除して、"_"を"."に変更すれば使えるはずです。(参考:ねがてぃぶろぐの付録)


参考文献/使用機器




フィードバック



にほんブログ村 その他趣味ブログ 電子工作へ

 ↑ 電子工作ブログランキング参加中です。1クリックお願いします。


コメント・トラックバックも歓迎です。 ↓      


 ↓ この記事が面白かった方は「拍手」をお願いします。


tag: AkaiKKR machikaneyama KKR 半導体 バンドギャップ 

comment

Secret

FC2カウンター
カテゴリ
ユーザータグ

LTspiceAkaiKKRmachikaneyamaScilabKKRPSoC強磁性CPAPICOPアンプecalj常微分方程式モンテカルロ解析状態密度トランジスタodeDOSインターフェース定電流スイッチング回路PDS5022半導体シェルスクリプト分散関係レベルシフト乱数HP6632AR6452A可変抵抗トランジスタ技術温度解析ブレッドボードI2C反強磁性確率論数値積分セミナーバンドギャップバンド構造偏微分方程式非線形方程式ソルバ熱設計絶縁ISO-I2Cカオス三端子レギュレータLM358GW近似マフィンティン半径A/DコンバータフォトカプラシュミットトリガLEDPC817C発振回路数値微分直流動作点解析サーボカレントミラーTL431アナログスイッチUSB74HC4053bzqltyVESTA補間電子負荷アセンブライジング模型BSch量子力学単振り子2ちゃんねるチョッパアンプLDA開発環境基本並進ベクトルFFT標準ロジックブラべ格子パラメトリック解析抵抗SMPMaxima失敗談ラプラス方程式繰り返し位相図スイッチト・キャパシタ熱伝導状態方程式キュリー温度gfortranコバルトTLP621不規則合金Quantum_ESPRESSO六方最密充填構造ランダムウォーク相対論ewidthスピン軌道相互作用FETQSGWVCAcygwinスレーターポーリング曲線GGA仮想結晶近似PWscfシュレディンガー方程式LM555ハーフメタル固有値問題NE555最小値ガイガー管QNAPUPS自動計測ダイヤモンドマントルTLP552格子比熱最適化MCU井戸型ポテンシャル最大値xcrysdenCIF条件分岐詰め回路フェルミ面差し込みグラフスーパーセルfsolveブラウン運動awk過渡解析起電力三角波第一原理計算FXA-7020ZRWriter509Ubuntuテスタ熱力学データロガーTLP521OpenMPubuntu平均場近似MAS830LトランスCK1026PIC16F785PGA2SC1815EAGLEノコギリ波負帰還安定性ナイキスト線図MBEOPA2277P-10フィルタCapSenseAACircuitLMC662文字列固定スピンモーメントFSMTeX結晶磁気異方性全エネルギーc/a合金multiplotgnuplot非線型方程式ソルバL10構造正規分布等高線ジバニャン方程式初期値interp1fcc面心立方構造ウィグナーザイツ胞半金属デバイ模型電荷密度重積分SIC二相共存磁気モーメント不純物問題PWgui擬ポテンシャルゼーベック係数ZnOウルツ鉱構造edeltquantumESPRESSOフォノンリジッドバンド模型スワップ領域BaO岩塩構造ルチル構造ヒストグラム確率論マテリアルデザインフラクタルマンデルブロ集合キーボードRealforceクーロン散乱三次元疎行列縮退化学反応関数フィッティング最小二乗法Excel直流解析PCTS-110TS-112日本語パラメータ・モデル等価回路モデルcif2cell入出力陰解法熱拡散方程式HiLAPW両対数グラフCrank-Nicolson法連立一次方程式specx.fifort境界条件片対数グラフグラフの分割円周率ヒストグラム不規則局所モーメントGimpシンボル軸ラベル凡例線種トラックボール

最新コメント
リンク

にほんブログ村 その他趣味ブログ 電子工作へ