スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

AkaiKKRとgfortranの出力バッファリング

gfortran の出力バッファリングによるとgfortranは、デフォルトで出力をバッファリングするようになっているとのことです。AkaiKKRの実行コマンドで書いたように出力ファイルを tail -f で監視する際に邪魔になるので、環境変数を利用してバッファリングしないようにしてみました。

ちなみに私の環境では ifort でコンパイルした specx では、このようなバッファリングの問題は起こっていません。


gfortranの出力バッファリングの無効化


AkaiKKRの実行コマンドではAkaiKKR(machikaneyama)の実行ファイルである specx を使うときに必要となるコマンドやリダイレクトを紹介しました。このエントリの中で tail -f で出力ファイルをリアルタイムに監視する方法を書いたところで環境によっては出力ファイルへの書き込みがリアルタイムに行われず、ある程度バッファしてから行われることがあるようです。と書きました。

gfortran の出力バッファリングによると、この挙動はgfortranの仕様であるとのことです。更にgfortran の出力バッファリングのエントリでは、fortranのソースコードを編集する方法と環境変数を利用する方法の2種類の解決方法が紹介されています。

AkaiKKRのソースコードを変更するのは大変そうなので、環境変数を使う方法を試してみます。
具体的には specx の前に GFORTRAN_UNBUFFERED_ALL=y をつけて実行するだけです。

GFORTRAN_UNBUFFERED_ALL=y specx out/outfile &


このようにすることで、出力ファイルが逐次書き込まれ tail -f で中身をリアルタイムに確認することができるようになります。

.bashrc等への記述


しかしながら GFORTRAN_UNBUFFERED_ALL=y を毎回すべて打つのは大変なので .bashrc などに記述しておくことを考えます。
一番シンプルなのは、そのまま .bashrc などに記述してしまうことです。

export GFORTRAN_UNBUFFERED_ALL=y


csh系なら、下記のようになるでしょうか。

setenv GFORTRAN_UNBUFFERED_ALL=y


これらの方法は簡単でよいのですが、AkaiKKR以外のプログラムにgfortranを使っている場合、そのプログラムの挙動にも影響を与えてしまう副作用があります。
したがって .bashrc などに記述してしまうよりは specx を呼び出すシェルスクリプトなどに記述しておくほうが良いかもしれません。
あるいは、エイリアスを使う方法も考えられます。たとえば、以下のような記述を .bashrc に書いておきます。

alias specx='GFORTRAN_UNBUFFERED_ALL=y specx'


こうすることによって単純に specx とタイプすることによって、環境変数付きで specx を実行することができるようになります。

関連エントリ




参考URL




フィードバック



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

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


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


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

tag: AkaiKKR machikaneyama gfortran 

AkaiKKRでウルツ鉱構造ZnO

AkaiKKR(machikaneyama)をもちいてAkaiKKRでルチル構造SnO2 その1その2ではルチル構造の計算をし、AkaiKKRで岩塩構造 BaO2では岩塩構造の計算をしました。今回はそれらに続いてウルツ鉱構造のZnOの計算を行います。

wZnO.png
Fig.1: ウルツ鉱構造のZnO



ウルツ鉱構造


Fig.1に示したのがウルツ鉱構造のZnOです。亜鉛原子を六方最密充填構造のように配置し、その四面体格子間位置のうち、半分のサイトを酸素が占めたような結晶構造をしています。この入力ファイルは、以下のようにしました。
四面体サイトのうち半分しか酸素が存在しないので、残りの格子間位置にも空孔をおくほうが精度が上がる可能性はありますが、今回はそのままにしてあります。

c------------------------------------------------------------
go data/ZnO
c------------------------------------------------------------
c brvtyp a c/a b/a alpha beta gamma
hcp 6.1415 , 1.602064 , , , , ,
c------------------------------------------------------------
c edelt ewidth reltyp sdftyp magtyp record
0.001 1.5 sra mjw nmag 2nd
c------------------------------------------------------------
c outtyp bzqlty maxitr pmix
update 8 200 0.035
c------------------------------------------------------------
c ntyp
2
c------------------------------------------------------------
c type ncmp rmt field mxl anclr conc
Zn 1 1 0.0 2
30 100
O 1 1 0.0 2
8 100
c------------------------------------------------------------
c natm
4
c------------------------------------------------------------
c atmicx atmtyp
1/3a 2/3b 0c Zn
2/3a 1/3b 1/2c Zn
1/3a 2/3b 0.3819c O
2/3a 1/3b 0.8819c O
c------------------------------------------------------------


結果


Fig.2-3がZnOのバンド構造と状態密度です。やはり、バンドギャップが小さく出ていて、半導体なのか金属なのか微妙です。

wZnO-DOS.png
ZnO-band.png

Fig.2-3: ウルツ鉱構造ZnOの状態密度とバンド構造


フェルミエネルギー付近を拡大した計算を行うと(ewidth=0.8Ry)、一応バンドギャップがあるらしいことは確認できます。ただし、フェルミエネルギーが価電子帯の中にめり込んでしまっています。前回同様、この点は気にし無い事にします。

ZnO-band2.png

Fig.4: フェルミ準位付近を拡大したバンド構造


関連エントリ





    参考URL




    付録


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


    参考文献/使用機器




    フィードバック



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

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


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


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

tag: AkaiKKR machikaneyama KKR ウルツ鉱構造 ZnO 

AkaiKKRで岩塩構造 BaO2

AkaiKKR(machikaneyama)を用いて、岩塩型構造のBaOのバンド構造と状態密度を計算しました。バンドギャップが開いた半導体であることが確認できました。

rocksalt-BaO.jpg

Fig.1: 岩塩型構造BaO



岩塩型構造


AkaiKKRでルチル構造SnO2 その1, その2では、AkaiKKR(machikaneyama)を用いてルチル構造の半導体であるSnO2, GeO2, TeO2のバンド構造を計算しました。今回は岩塩構造のBaOの計算を行います。

Fig.1に示すのが、岩塩型の結晶構造です。面心立方構造を2つ組み合わせた形をしているということが分かります。多くのイオン結晶が個の結晶構造をとります。具体的には NaCl, MgO, KCl, CuO などです。
AkaiKKR BBSのVon Braun Nascimentoさんの書き込みでも、岩塩構造のBaOの計算がされています。

入力ファイルは以下のようになりました。
c---------------------BaO----------------------------------
go data/BaO
c------------------------------------------------------------
c brvtyp a c/a b/a alpha beta gamma
fcc 10.4621, , , , , ,
c------------------------------------------------------------
c edelt ewidth reltyp sdftyp magtyp record
0.001 1.5 sra mjw nmag 2nd
c------------------------------------------------------------
c outtyp bzqlty maxitr pmix
update 4 200 0.03
c------------------------------------------------------------
c ntyp
2
c------------------------------------------------------------
c type ncmp rmt field mxl anclr conc
Ba 1 1 0.0 2 56 100
O 1 1 0.0 2 8 100
c------------------------------------------------------------
c natm
2
c------------------------------------------------------------
c atmicx atmtyp
0.0 0.0 0.0 Ba
0.5 0.5 0.5 O
c------------------------------------------------------------


結果


Fig.2-3がBaOのバンド構造と状態密度です。

BaO-band.png
BaO-DOS.png

Fig.2-3: 岩塩構造BaOの状態密度とバンド構造


フェルミエネルギーが多少価電子帯にかかっていますが、バンドギャップは開いていて半導体となっていることが読み取れます。

関連エントリ




参考URL




付録


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


参考文献/使用機器




フィードバック



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

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


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


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

tag: AkaiKKR machikaneyama 岩塩構造 BaO 半導体 

AkaiKKRでルチル構造SnO2 その2

AkaiKKRでルチル構造SnO2 その1と同様にルチル構造のGeO2とTeO2の状態密度とバンド構造を計算しました。

002_20160710125630226.jpg
Fig.1: ルチル型結晶構造



ルチル構造半導体


AkaiKKRでルチル構造SnO2 その1では、ルチル構造を持つSnO2のバンド構造と状態密度の計算をしました。ルチル構造を持った化合物としては、他にGeO2等があります。また、TeO2もルチル構造に良く似た結晶構造です。そこで今回は、前回と同様にこれら2種類の物質のバンド構造と状態密度の計算を行いました。

入力ファイル


格子定数はSvane and Antoncik (1987)にあわせて以下の値を用いました。

SnO2GeO2TeO2
a (Å)4.737 4.3954.790
c/a0.6730.65050.787
u0.3070.3070.31
table.1: 格子パラメータ


原子番号はそれぞれ8O, 50Sn, 32Ge, 52Te です。
前回と同様に ewidth の選び方は難しいのですが、今回の二つの場合は、コアを含めずに収束させました。go計算の入力ファイルは、以下のようになりました。

c------------------------------------------------------------
go data/GeO2
c------------------------------------------------------------
c brvtyp a c/a b/a alpha beta gamma
st 8.305, 0.6505, , , , ,
c------------------------------------------------------------
c edelt ewidth reltyp sdftyp magtyp record
0.001 1.8 sra vwn nmag 2nd
c------------------------------------------------------------
c outtyp bzqlty maxitr pmix
update 4 200 0.023
c------------------------------------------------------------
c ntyp
2
c------------------------------------------------------------
c type ncmp rmt field mxl anclr conc
Ge 1 1 0.0 2
32 100
O 1 1 0.0 2
8 100
c------------------------------------------------------------
c natm
6
c------------------------------------------------------------
c atmicx atmtyp
0.0a 0.0b 0.0c Ge
1/2a 1/2b 1/2c Ge
0.307a 0.307b 0.0c O
0.693a 0.693b 0.0c O
0.193a 0.807b 1/2c O
0.807a 0.193b 1/2c O
c------------------------------------------------------------


結果


Fig.2-3が GeO2の状態密度とバンド構造で、Fig.4-5がTeO2の結果です。どちらの結果もフェルミエネルギーが伝導帯に少しめり込んでしまっていますが、今は気にし無い事にします。

GeO2-DOS.png
GeO2-band-narrow.png
Fig.2-3: GeO2の状態密度とバンド構造


TeO2-DOS.png
TeO2-band-narrow.png
Fig.4-5: TeO2の状態密度とバンド構造


GeO2は、明らかに大きなバンドギャップが開いています。TeO2は、状態密度だけを見るとバンドギャップに重なりがあるようにも見えますが、バンド分散のほうを見るとどうやらバンドは開いているようです。

関連エントリ




参考URL




付録


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


参考文献/使用機器




フィードバック



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

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


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


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

tag: AkaiKKR machikaneyama KKR ルチル構造  

AkaiKKRで点欠陥の形成エネルギー(未完)

Wang et al. (2004) (PDF)を参考に、AkaiKKR (machikaneyama)を用いて面心立方構造(fcc)のアルミニウムの点欠陥の生成エネルギーをスーパーセル法を用いて計算しました。
結果は、Wang et al. (2004) (PDF)の計算結果に対して、一桁程度の過大評価となってしまいました。


点欠陥の形成エネルギー


結晶中に点欠陥を作るために必要な欠陥の形成エネルギーは、スーパーセル法を用いた第一原理計算から計算することができます。
具体的には、まず、スーパーセルで完全結晶の全エネルギーを計算します(E0)。次にスーパーセルから1つの原子を取り除いた系の計算を行い、全エネルギー(E1)を求めます。スーパーセルの原子数がN個のとき、欠陥形成エネルギーは、以下の式から求めることができます(参考: Wang et al. (2004) (PDF))。
\begin{equation}
\Delta E_{f} = E_{1} - \frac{N-1}{N} E_{0}
\end{equation}

同様の計算は、スーパーセルではなくコヒーレントポテンシャル近似(CPA)でもできる可能性はあるのでしょうか?このような質問がAkaiKKR (machikaneyama)の掲示板に投稿されて・・・いましたが、現在は存在していないようです(#6678)。質問者の計算は、うまく行っておらず、形成エネルギーが一桁程度過大評価されているようです。

そこで今回は、AkaiKKR (machikaneyama)でもスーパーセル法を用いて点欠陥の形成エネルギーを計算してみます。

計算手法


Wang et al. (2004) (PDF)では、面心立方構造(fcc)のアルミニウムとニッケル、体心立方構造(bcc)のモリブデンとタンタルの点欠陥の形成エネルギーの計算が行われています。今回は、この中で面心立方構造のアルミニウムに関して計算を行います。スーパーセルのサイズは 2*2*2=32 原子としました。
Wang et al. (2004) (PDF)によると、交換相関汎関数はGGAよりもLDAのほうが良いであるとか、構造緩和はしないほうがむしろ良いだとか、色々議論があるようです。とりあえず今回は、LDA(mjw)で構造緩和もしない(というか大変なのでやりたくない)という方針で行きます。

c--------------------Al--------------------------------------
go data/SuperAlVc
c------------------------------------------------------------
c brvtyp a c/a b/a alpha beta gamma
sc 15.3 , , , , , ,
c------------------------------------------------------------
c edelt ewidth reltyp sdftyp magtyp record
0.001 1.0 sra mjw nmag 2nd
c------------------------------------------------------------
c outtyp bzqlty maxitr pmix
update 4 200 0.035
c------------------------------------------------------------
c ntyp
32
c------------------------------------------------------------
c type ncmp rmt field mxl anclr conc
Al1 1 1 0.0 2 0 100
Al2 1 1 0.0 2 13 100
Al3 1 1 0.0 2 13 100
Al4 1 1 0.0 2 13 100
Al5 1 1 0.0 2 13 100
Al6 1 1 0.0 2 13 100
Al7 1 1 0.0 2 13 100
Al8 1 1 0.0 2 13 100
Al9 1 1 0.0 2 13 100
Al10 1 1 0.0 2 13 100
Al11 1 1 0.0 2 13 100
Al12 1 1 0.0 2 13 100
Al13 1 1 0.0 2 13 100
Al14 1 1 0.0 2 13 100
Al15 1 1 0.0 2 13 100
Al16 1 1 0.0 2 13 100
Al17 1 1 0.0 2 13 100
Al18 1 1 0.0 2 13 100
Al19 1 1 0.0 2 13 100
Al20 1 1 0.0 2 13 100
Al21 1 1 0.0 2 13 100
Al22 1 1 0.0 2 13 100
Al23 1 1 0.0 2 13 100
Al24 1 1 0.0 2 13 100
Al25 1 1 0.0 2 13 100
Al26 1 1 0.0 2 13 100
Al27 1 1 0.0 2 13 100
Al28 1 1 0.0 2 13 100
Al29 1 1 0.0 2 13 100
Al30 1 1 0.0 2 13 100
Al31 1 1 0.0 2 13 100
Al32 1 1 0.0 2 13 100
c------------------------------------------------------------
c natm
32
c------------------------------------------------------------
c atmicx atmtyp
0 0 0 Al1
1/4 1/4 0 Al2
1/4 0 1/4 Al3
0 1/4 1/4 Al4

1/2 0 0 Al5
3/4 1/4 0 Al6
3/4 0 1/4 Al7
1/2 1/4 1/4 Al8

0 1/2 0 Al9
1/4 3/4 0 Al10
1/4 1/2 1/4 Al11
0 3/4 1/4 Al12

0 0 1/2 Al13
1/4 1/4 1/2 Al14
1/4 0 3/4 Al15
0 1/4 3/4 Al16

1/2 1/2 0 Al17
3/4 3/4 0 Al18
3/4 1/2 1/4 Al19
1/2 3/4 1/4 Al20

1/2 0 1/2 Al21
3/4 1/4 1/2 Al22
3/4 0 3/4 Al23
1/2 1/4 3/4 Al24

0 1/2 1/2 Al25
1/4 3/4 1/2 Al26
1/4 1/2 3/4 Al27
0 3/4 3/4 Al28

1/2 1/2 1/2 Al29
3/4 3/4 1/2 Al30
3/4 1/2 3/4 Al31
1/2 3/4 3/4 Al32
c------------------------------------------------------------


AkaiKKRでスーパーセル その1で書いたとおり、AkaiKKRでスーパーセルの計算を行うためには、それに適したパラメータをspecx.fに設定して再コンパイルする必要があります。計算するコンピュータのメモリが少ない場合、スワップ領域を使う必要があるかもしれません。今回はAkaiKKRとUbuntu 12.04 のスワップ領域で指定した下記のパラーメータをspecx.fに設定しました。

     & (natmmx=32, ncmpmx=32, msizmx=288, mxlmx=3, nk1x=500, nk3x=701,


結果と議論


面心立方構造のアルミニウムの点欠陥の形成エネルギーを計算するために、計算セルの中に32個のアルミニウム原子を置いた完全結晶の全エネルギー(E0)とスーパーセルからひとつの原子を点欠陥に置き換えたスーパーセルの全エネルギー(E1)の計算を行いました。得られた全エネルギーは、以下のようになりました。

E0 = -15482.440171667 (Ry)
E1 = -14998.335584355 (Ry)

よって点欠陥の生成エネルギーは
ΔEf = 0.2783319 (Ry) = 3.786906 (eV)
となりました。

この値はWang et al. (2004) (PDF)で報告されている 0.568 (eV) @ N=31, 0.511 (eV) @ N=108 とくらべて一桁程度の過大評価となってしまいました。したがって、AkaiKKRのCPA計算で点欠陥の生成エネルギーを過大評価してしまうのは、必ずしもCPAの問題ではないかもしれません。

関連エントリ




参考URL




付録


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


参考文献/使用機器




フィードバック



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

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


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


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

tag: AkaiKKR machikaneyama KKR スーパーセル CPA 

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

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

最新コメント
リンク

にほんブログ村 その他趣味ブログ 電子工作へ
上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。