AkaiKKRのspc計算の入出力フォーマット その2

AkaiKKRのspc計算の入出力フォーマットでは、AkaiKKR(machikaneyama)の26 Augsut 2015のバージョンを利用して、それよりも以前の 22 May 2015 のバージョンと同じspcの入出力フォーマットに戻す方法を書きました。入力フォーマットの変更は簡単だったのですが、出力フォーマットの指定方法の変更は、少し面倒くさい感じでした。最新版の 22 July 2016 バージョンのAkaiKKRでは、この出力フォーマットの指定方法も簡単になりました。

具体的には source/spmain.firdfmt の値を変更することによって入力のフォーマットを、また、 iwrtfmt の値を変更することによって出力のフォーマットを変更できます。22 May 2015 のバージョンと同じspcの入出力フォーマットに戻すには、両方とも 1 を指定します。デフォルトの 3 を指定しておくほうがバンド構造のテスト計算には便利かもしれません(参考:AkaiKKRでバンド構造(分散関係))。しかしながら、ねがてぃぶろぐでは、今後とも基本的に22 May 2015 のバージョンと同じ入出力フォーマットで計算をすることにします。

関連エントリ




参考URL




フィードバック



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

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


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


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

tag: AkaiKKR machikaneyama 分散関係 

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 半導体 

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

LTspiceAkaiKKRmachikaneyamaScilabKKRPSoC強磁性OPアンプPICCPA常微分方程式モンテカルロ解析ecaljodeトランジスタ状態密度インターフェースDOS定電流スイッチング回路PDS5022半導体シェルスクリプトレベルシフト乱数HP6632AR6452AI2C可変抵抗分散関係トランジスタ技術ブレッドボード温度解析反強磁性確率論バンドギャップセミナー数値積分熱設計非線形方程式ソルババンド構造絶縁偏微分方程式ISO-I2CLM358フォトカプラ三端子レギュレータカオスLEDシュミットトリガGW近似A/Dコンバータ発振回路PC817C直流動作点解析USBマフィンティン半径数値微分アナログスイッチTL43174HC4053カレントミラーサーボ量子力学単振り子チョッパアンプ補間2ちゃんねる開発環境bzqltyFFT電子負荷LDAイジング模型BSch基本並進ベクトルブラべ格子パラメトリック解析標準ロジックアセンブラ繰り返し六方最密充填構造SMPコバルトewidthFET仮想結晶近似QSGW不規則合金VCAMaximaGGA熱伝導cygwinスレーターポーリング曲線キュリー温度スイッチト・キャパシタ失敗談ランダムウォークgfortran抵抗相対論位相図スピン軌道相互作用VESTA状態方程式TLP621ラプラス方程式TLP552条件分岐NE555LM555TLP521マントル詰め回路MCUテスタFXA-7020ZR三角波過渡解析ガイガー管自動計測QNAPUPSWriter509ダイヤモンドデータロガー格子比熱熱力学awkブラウン運動起電力スーパーセル差し込みグラフ第一原理計算フェルミ面fsolveCIFxcrysden最大値最小値ubuntu最適化平均場近似OpenMPシュレディンガー方程式固有値問題井戸型ポテンシャル2SC1815TeX結晶磁気異方性OPA2277非線型方程式ソルバフラクタルFSM固定スピンモーメントc/agnuplotPGA全エネルギーfccマンデルブロ集合縮退正規分布キーボード初期値interp1multiplotフィルタ面心立方構造ウィグナーザイツ胞L10構造半金属二相共存ZnOウルツ鉱構造BaOSIC重積分磁気モーメント電荷密度化学反応クーロン散乱岩塩構造CapSenseノコギリ波デバイ模型ハーフメタルRealforceフォノンquantumESPRESSOルチル構造スワップ領域リジッドバンド模型edelt合金等高線凡例軸ラベル線種シンボルトラックボールグラフの分割MAS830LPIC16F785トランス入出力CK1026PC直流解析パラメータ・モデル等価回路モデル不規則局所モーメント関数フィッティング日本語ヒストグラムTS-112ExcelGimp円周率TS-110LMC662片対数グラフ三次元specx.fifortUbuntu文字列疎行列不純物問題ジバニャン方程式ヒストグラム確率論マテリアルデザインP-10境界条件連立一次方程式AACircuit熱拡散方程式HiLAPW両対数グラフ陰解法MBEナイキスト線図負帰還安定性Crank-Nicolson法EAGLE最小二乗法

最新コメント
リンク

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