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カウンター
カテゴリ
ユーザータグ

LTspiceAkaiKKRmachikaneyamaScilabKKRPSoCOPアンプPICCPA強磁性常微分方程式モンテカルロ解析odeトランジスタ状態密度インターフェーススイッチング回路ecaljPDS5022DOS定電流半導体シェルスクリプト乱数レベルシフトHP6632Aブレッドボード分散関係温度解析R6452Aトランジスタ技術I2C可変抵抗反強磁性セミナー数値積分確率論偏微分方程式バンド構造非線形方程式ソルババンドギャップ絶縁熱設計シュミットトリガLEDA/Dコンバータ三端子レギュレータLM358ISO-I2CGW近似カオスフォトカプラマフィンティン半径TL431数値微分PC817Cアナログスイッチ直流動作点解析発振回路USBサーボカレントミラー74HC4053パラメトリック解析LDAbzqltyチョッパアンプ量子力学FFT2ちゃんねるアセンブラBSch開発環境電子負荷ブラべ格子イジング模型補間基本並進ベクトル標準ロジック単振り子キュリー温度繰り返しMaxima状態方程式失敗談相対論スピン軌道相互作用FETランダムウォーク熱伝導六方最密充填構造コバルトewidthTLP621GGAQSGW不規則合金位相図抵抗SMPcygwinラプラス方程式スレーターポーリング曲線gfortranスイッチト・キャパシタ詰め回路TLP552三角波格子比熱TLP521条件分岐LM555MCUNE555QNAPマントルテスタ過渡解析FXA-7020ZRダイヤモンドデータロガーガイガー管自動計測Writer509UPSシュレディンガー方程式ブラウン運動awk差し込みグラフ熱力学平均場近似仮想結晶近似VCAfsolve井戸型ポテンシャルVESTA起電力スーパーセルOpenMP第一原理計算ubuntu固有値問題L10構造OPA2277interp12SC1815fccウィグナーザイツ胞面心立方構造フィルタジバニャン方程式ヒストグラム確率論マテリアルデザインspecx.f等高線正規分布PGAフェルミ面非線型方程式ソルバ初期値固定スピンモーメントスワップ領域ルチル構造リジッドバンド模型edeltquantumESPRESSO岩塩構造BaOSIC二相共存ZnOウルツ鉱構造フォノンデバイ模型c/aノコギリ波全エネルギーFSMTeXgnuplotmultiplotハーフメタルCapSense半金属合金結晶磁気異方性Ubuntu文字列入出力TS-110TS-112疎行列Excel直流解析ヒストグラム円周率不規則局所モーメントトラックボールPC等価回路モデルパラメータ・モデルキーボードRealforce三次元マンデルブロ集合フラクタル化学反応重積分縮退日本語最小二乗法関数フィッティングGimpMAS830LHiLAPW熱拡散方程式両対数グラフナイキスト線図負帰還安定性陰解法Crank-Nicolson法P-10クーロン散乱境界条件連立一次方程式片対数グラフEAGLEPIC16F785LMC662トランスシンボルCK1026線種凡例MBEAACircuitグラフの分割軸ラベルifort

最新コメント
リンク

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