ecaljでシリコンのバンド構造(GW近似)

LDA計算では、半導体のバンドギャップを過小評価するという欠点が広く認知されており、GW近似はこの問題点を改善することが期待されます。今回はecaljでシリコンのバンド構造を計算し、GW近似によりバンドギャップの大きさが改善されていることを確認しました。


001_20150917001717f58.png
Fig.1: シリコンのバンド構造。緑はGW近似による計算、赤はLDAによる計算。GW近似によりバンドギャップの大きさが改善されていることが分かる。



GW近似計算に必要なファイル


ecaljでシリコンのバンド構造(LDA計算)ではecaljを用いてダイヤモンド構造のシリコンのバンド図を局所密度近似(LDA)の範囲で描画しました。ecaljは、更にGW近似を用いた計算も可能です。

この際にecaljは、LDA計算に利用した結晶構造ファイル ctrls.si とバンド図のためのk点指定ファイル syml.si を無編集でそのまま使うことができます。

STRUC   ALAT=10.26
PLAT=0.0 1/2 1/2
1/2 0.0 1/2
1/2 1/2 0.0
SITE ATOM=Si POS=0.0 0.0 0.0
ATOM=Si POS=1/4 1/4 1/4

# num  from            to                name
41 0.5 0.5 0.5 0.0 0.0 0.0 L Gamma
41 0.0 0.0 0.0 1.0 0.0 0.0 Gamma X
21 1.0 0.0 0.0 1.0 0.5 0.0 X W
41 1.0 0.5 0.0 0.0 0.0 0.0 W Gamma
0


これらのファイルを使ってecaljの実行手順(GW近似)に従ってGW近似計算を行いました。

結果


以下のFig.2に緑のラインで描かれたものが、QSGW計算によって得られたシリコンのバンド構造です。対比のためにecaljでシリコンのバンド構造(LDA計算)で計算したLDAの結果をFig.3に示します。


002_20150917001716541.png
Fig.2: GW近似を用いたダイヤモンド構造のシリコンのバンド図

001_20150916211725117.png
Fig.3: LDAを用いたダイヤモンド構造のシリコンのバンド図


更にこれらを同時にプロットしたものが冒頭のFig.1です。

密度汎関数理論(DFT)と局所密度近似(LDA)を組み合わせた第一原理計算パッケージには、半導体のバンドギャップを過小評価するなどの問題点がある事が広く知られています。
この問題を克服するための試みもまた、広く行われており「LDAを超える試み」のキャッチフレーズで色々な方法論が提案されています。
GW近似は、これらの方法の中でもっとも有名なもののひとつで、実際に色々な半導体のバンドギャップの計算結果が、実験により得られている値に対して、LDAによる計算よりもはるかに近くなることが知られています。

実際、今回行ったecaljの計算ではGW近似によるバンドギャップはLDA計算よりも大きく、実験値である1.11eVに近い値となっていることが確認できます。

関連エントリ




参考URL




付録


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


参考文献/使用機器




フィードバック



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

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


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


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

tag: ecalj GW近似 半導体 バンドギャップ バンド構造 分散関係  

ecaljの実行手順(GW近似)

ecaljはLDAとGW近似の両方の計算ができる第一原理計算パッケージです。GW近似を用いた計算でも、通常のLDA計算とほとんど変わらない手続きで計算を行うことができます。今回は、ecaljでGW近似を用いた計算を行う手順をまとめます。

  1. 結晶構造ファイル ctrls.si の作成
  2. 制御ファイル ctrl.si の作成
  3. 構造のチェック(省略可): lmchk
  4. 計算の前準備: lmfa
  5. GW計算入力ファイル GWinput の作成
  6. ワンショットGW計算: gwsc
  7. QSGW収束計算: gwsc
  8. ポスト処理(状態密度の描画など)



ecaljのLDA計算とGW近似計算


ecaljは通常の局所密度近似(LDA)計算とGW近似を用いた計算の両方ができる第一原理計算パッケージです。ecaljでシリコンのバンド構造(LDA計算)では、ecaljの実行手順(LDA計算)でまとめた計算手順に従ってシリコンのバンド構造を描画しました。

次にシリコンのバンドギャップがGW近似によってどの程度改善されるかを見る事を考えます。今回のエントリではその前にGW計算の手順をまとめておきます。基本的には、LDA計算のときの手続きとほぼ同じです。GW近似計算を行う前に、必ずしもLDA計算を行っておく必要はないため(というか勝手にやってくれるようなので)、最初からGW近似計算をやることもあると思うので、全く同じ部分も省略せずにecaljの実行手順(LDA計算)と同じ内容を書いておきます。

ecaljのファイル命名規則に書いた通りecaljのファイル名は ctrls.si の様に拡張子の部分に物質名を書く規則なので、今回のエントリで si となっている部分は、計算したい系に応じて適宜読み替えてください。

1. 結晶構造ファイル ctrls.si の作成


結晶構造を指定するファイルは ctrls.si です。
このファイルには、最低限で以下の3つの情報が必要です。
  • 格子定数 a (Bohr)
  • 基本並進ベクトル
  • 基底の原子位置

#で始まる行はコメント、%constで始まる行は定数の定義です。
ファイルの内容はLDA計算のときとまったく同一です。

2. 制御ファイル ctrl.si の作成


このステップもLDA計算と同じです。結晶構造ファイルctrls.si から半自動的に制御ファイルのテンプレート ctrl.si を作成することができます。
ctrlgenM1.py si
cp ctrlgenM1.ctrl.si ctrl.si

結晶構造ファイル ctrls.si と非常に名前が良く似ていますが、制御ファイル ctrl.si は別のファイルです。

3. 構造のチェック: lmchk


省略

4. 計算の前準備: lmfa


lmfa si

LDA計算と同様に計算の前準備をします。

5. GW近似用ファイルの作成


ここからがGW計算に必要なステップです。
mkGWIN_lmf2 si

上記のようにタイプするとn1=のように、値を聞かれるので3回とも2などの整数を入力します。

cp GWinput.tmp GWinput

mkGWIN_lmf2が半自動的にGW計算の入力ファイルのテンプレートを作成してくれるので、ユーザーは本番用にコピーします。

6. ワンショットGW計算


まずワンショットGW計算を行います。
gwsc 0 -np 2 si

gwsc に続く整数の部分に0を指定するとワンショット計算になります。

7. QSGW収束計算


収束させる場合は gwsc に続けて整数を指定します。
gwsc 5 -np 2 si

この整数の値はイテレーションの回数+1です。

8. ポスト処理


ポスト処理はLDA計算と同じです。以下の例は全状態密度を計算します。
job_tdos si -np 2


関連エントリ




参考URL




参考文献/使用機器




フィードバック



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

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


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


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

tag: ecalj GW近似 QSGW 

ecaljでシリコンのバンド構造(LDA計算)

これまでecaljのインストール(Ubuntu + gfortran)ではecaljをインストールし、ecaljの実行手順(LDA計算)で計算の具体的な手順を確認しました。
今回は、最初の計算例としてダイヤモンド構造を持ったシリコンのバンド構造の計算を局所密度近似(LDA)の範囲で行いました。


001_20150916211725117.png
Fig.1: LDA計算によるシリコンのバンド構造



ecaljの計算に必要なファイル


ecaljは最低限、結晶構造を記述する ctrls.si だけユーザーが作成すれば第一原理計算が可能です。バンド構造を描画するところまで含めても、ユーザーが追加で作成しなければならないファイルは計算するk点のパスを指定する syml.si だけです。
それ以外は ctrlgenM1.py などのスクリプトがテンプレートを半自動的に作成してくれるので、ユーザー側ではそれをそのままコピーするか、多少編集する程度です。

今回は、早速、ダイヤモンド構造のシリコンのバンド構造を計算してみます。

ダイヤモンド構造の結晶構造ファイル


ecaljの結晶構造ファイル ctrls.si は以下の3つの情報だけで作成することができます。
  • 格子定数 a (Bohr)
  • 基本並進ベクトル
  • 基底の原子位置


AkaiKKRでダイヤモンド型構造半導体で書いた通り、ダイヤモンド構造は面心立方格子のそれぞれの格子点に(0 0 0)と(1/4 1/4 1/4)の2原子の基底をもつ結晶構造です。

AkaiKKR(machikaneyama)では格子を指定する際に、ブラべ格子を気ワード指定する方法と基本並進ベクトルを使う方法の2通りがありました。(参考: AkaiKKRのブラベ格子, AkaiKKRの基本並進ベクトル その1, その2)
ecaljでは、基本並進ベクトルを使います。

面心立方格子の基本並進ベクトルは以下のように表すことができます。

\begin{equation}
\begin{pmatrix}
0 & 1/2 & 1/2 \\
1/2 & 0 & 1/2 \\
1/2 & 1/2 & 0
\end{pmatrix}
\end{equation}

ecaljでもAkaiKKRと同様に、格子定数の単位はBohr(原子単位系)で与えます。今回はAkaiKKRでダイヤモンド型構造半導体のときと同様に a = 10.26 Bohr としました。
ecaljのパッケージに付属しているシリコンの結晶構造ファイルは、もう少しいろいろと書いてありますが、今回のエントリでは最も簡素な入力ファイルの例として、以下のものを用意しました。

STRUC   ALAT=10.26
PLAT=0.0 1/2 1/2
1/2 0.0 1/2
1/2 1/2 0.0
SITE ATOM=Si POS=0.0 0.0 0.0
ATOM=Si POS=1/4 1/4 1/4


以降はecaljの実行手順(LDA計算)の2.以降を実行することでLDA計算を行うことができます。

バンド構造の描画


バンド構造の計算も状態密度の計算と同様にポスト処理ということになります。
バンド構造の計算には、あらかじめk点のパスを指定する syml.si を用意しておく必要があります。
内容は、左から順に分割数、k点の開始座標、終了座標、」これらの座標に付ける名前です。
今回は、以下のようなファイルを作成しました。

# num  from            to                name
41 0.5 0.5 0.5 0.0 0.0 0.0 L Gamma
41 0.0 0.0 0.0 1.0 0.0 0.0 Gamma X
21 1.0 0.0 0.0 1.0 0.5 0.0 X W
41 1.0 0.5 0.0 0.0 0.0 0.0 W Gamma
0


なお syml.si の方では、分数を使わない方が良さげです。

gnuplot用ファイルの編集


バンド構造の計算が終わるとgnuplotのウインドウが立ち上がってバンド図が描画されます。この描画スクリプトはbandplot.isp1.gltというなまえで保存されているので、後から以下のようなコマンドで簡単に再描画できます。

gnuplot -persist bandplot.isp1.glt


また、ファイルの中身はただのgnuplotのスクリプトなので、自分で編集することも簡単です。
冒頭のFig.1も自分で編集して、多少見栄えをよくしてあります。

関連エントリ




参考URL




付録


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


参考文献/使用機器




フィードバック



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

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


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


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

tag: ecalj 半導体 バンドギャップ バンド構造 分散関係 

ecaljの実行手順(LDA計算)

ecaljは、ユーザーが最低限準備しなければならないファイルが結晶構造ファイルctrls.siだけで非常に簡単です。その分、結晶構造ファイルからバンド計算のための入力ファイルを半自動生成するステップが必要です。今回は、ecaljを用いた局所密度近似(LDA)計算の手順をまとめます。

  1. 結晶構造ファイル ctrls.si の作成
  2. 制御ファイル ctrl.si の作成
  3. 構造のチェック(省略可): lmchk
  4. 計算の前準備: lmfa
  5. LDA計算: lmf
  6. ポスト処理(状態密度の描画など)



ecaljのLDA計算


ecaljはGW近似を計算可能な第一原理計算パッケージです。
密度汎関数理論(DFT)と局所密度近似(LDA)の組み合わせは、半導体のバンドギャップを過小評価するなどの問題がある事が広く知られています。
GW近似は、この問題に対してLDA計算の結果を大きく改善します。
今回はこのecaljの基本的な計算方法のうち、GW近似を用いないLDA計算の手順をメモしておきます。

ecaljのファイル命名規則に書いた通りecaljのファイル名は、拡張子の部分に物質の名前を指定する規則になっているようです。
今回はシリコンを想定して ctrls.si の様にファイル名を命名していますが、計算する系に応じて si の部分は読み替えてください。

1. 結晶構造ファイル ctrls.si の作成


結晶構造を指定するファイルは ctrls.si です。
このファイルには、最低限で以下の3つの情報が必要です。
  • 格子定数 a (Bohr)
  • 基本並進ベクトル
  • 基底の原子位置

#で始まる行はコメント、%constで始まる行は定数の定義です。

2. 制御ファイル ctrl.si の作成


結晶構造ファイルctrls.si から半自動的に制御ファイルのテンプレート ctrl.si を作成することができます。
ctrlgenM1.py si
cp ctrlgenM1.ctrl.si ctrl.si

結晶構造ファイル ctrls.si と非常に名前が良く似ていますが、制御ファイル ctrl.si は別のファイルです。

3. 構造のチェック: lmchk


省略

4. 計算の前準備: lmfa


lmfa si

計算の前準備をします。

5. LDA計算: lmf


lmf si

実際の第一原理計算です。

6. ポスト処理


状態密度の描画などのポスト処理を行います。
job_tdos si -np 2

上記の例では、全状態密度を描画します。

関連エントリ




参考URL




参考文献/使用機器




フィードバック



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

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


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


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

tag: ecalj LDA 

ecaljのファイル命名規則

パソコンのファイルの名称は「ファイル名.拡張子」の様にファイルの名称と拡張子をドットで区切った形式になっている場合が良くあります。
AkaiKKR(machikaneyama)の入力ファイルなどを作る際、私は、ファイル名の部分に物質の名前を、拡張子の部分にファイルの種類を書いていました。
例えばAkaiKKRのシリコンの入力ファイルの場合 Si.in のような具合です。(参考: AkaiKKRでダイヤモンド型構造半導体)

これに対してecaljでは、この順番が逆になっていて、ファイル名の部分にファイルの種類を、拡張子の部分に物質名を付けるルールになっているようです。
具体的に言えばシリコンの結晶構造を指定するファイルなら ctrls.si となります。

関連エントリ




参考URL




参考文献/使用機器




フィードバック



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

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


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


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

tag: ecalj AkaiKKR machikaneyama 

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

LTspiceAkaiKKRmachikaneyamaScilabKKRPSoCOPアンプCPA強磁性PICモンテカルロ解析常微分方程式odeトランジスタecalj状態密度DOSインターフェース定電流スイッチング回路PDS5022半導体シェルスクリプト乱数レベルシフトHP6632A温度解析分散関係I2Cトランジスタ技術R6452A可変抵抗ブレッドボードセミナーバンドギャップ数値積分確率論反強磁性偏微分方程式バンド構造絶縁熱設計非線形方程式ソルバフォトカプラシュミットトリガLEDLM358カオスISO-I2C三端子レギュレータGW近似A/Dコンバータカレントミラーアナログスイッチ数値微分マフィンティン半径TL431発振回路サーボPC817CUSB直流動作点解析74HC4053補間FFTBSch開発環境パラメトリック解析2ちゃんねるチョッパアンプ量子力学bzqlty電子負荷イジング模型LDA標準ロジックアセンブラ基本並進ベクトルブラべ格子単振り子熱伝導位相図TLP621キュリー温度繰り返し状態方程式MaximaVESTAスイッチト・キャパシタ相対論FETランダムウォークスピン軌道相互作用SMP六方最密充填構造抵抗不規則合金ewidthスレーターポーリング曲線GGAラプラス方程式cygwingfortranQSGW失敗談コバルト条件分岐TLP521テスタLM555Writer509TLP552格子比熱マントルデータロガー自動計測詰め回路ガイガー管ダイヤモンドQNAPMCUFXA-7020ZR過渡解析三角波UPSNE555固有値問題熱力学ブラウン運動フェルミ面awk起電力第一原理計算OpenMPfsolveubuntu最大値xcrysden最小値最適化仮想結晶近似VCA差し込みグラフスーパーセル井戸型ポテンシャル平均場近似シュレディンガー方程式FSMフラクタルOPA2277固定スピンモーメント2SC1815全エネルギー合金multiplotgnuplotc/aTeX結晶磁気異方性interp1ウィグナーザイツ胞初期値マンデルブロ集合疎行列面心立方構造fcc不純物問題非線型方程式ソルバフィルタL10構造PGA半金属二相共存SICZnOウルツ鉱構造BaO重積分クーロン散乱磁気モーメント電荷密度三次元CIF岩塩構造CapSenseノコギリ波デバイ模型ハーフメタル正規分布フォノンquantumESPRESSOルチル構造スワップ領域リジッドバンド模型edelt縮退キーボード軸ラベルグラフの分割凡例トラックボールPC不規則局所モーメント片対数グラフトランス両対数グラフCK1026MAS830L直流解析Excel円周率パラメータ・モデルヒストグラム日本語最小二乗法等価回路モデルGimp線種シンボルTS-110TS-112PIC16F785LMC662化学反応文字列specx.f入出力ifortマテリアルデザインヒストグラム確率論Realforce等高線ジバニャン方程式P-10Ubuntuナイキスト線図Crank-Nicolson法陰解法熱拡散方程式HiLAPWAACircuit連立一次方程式負帰還安定性境界条件EAGLEMBE関数フィッティング

最新コメント
リンク

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