AkaiKKRのk点メッシュ

AkaiKKR(machikaneyama)の計算に使われるk点の数は、入力ファイルの bzqlty で指定されます。計算で実際に使われた既約的ブリルアンゾーンのk点の数は、出力の nk に表示されます。

計算に使用したk点の数の表し方には、既約的ブリルアンゾーンの中のk点数のほかに、全ブリルアンゾーンの中でそれぞれの逆格子ベクトルをメッシュ状に何分割したかを N1 × N2 × N3 のような形で表すやり方もあります。
この分割数の情報は、通常出力されないのですが、必要なら source/bzmesh.fend 文の直前に以下の行を追加することで、出力されるようにできると教えていただきました。

      write(*,'(3x,3(a,i3))')'nfa=',nfa,'  nfb=',nfb,'  nfc=',nfc


fcc等の立方晶の場合は単純に nfa=nfb=nfc=bzqlty となります。

関連エントリ




参考URL




参考文献/使用機器




フィードバック



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

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


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


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

tag: AkaiKKR machikaneyama KKR bzqlty 

AkaiKKRのewidth対応表

AkaiKKR(machikaneyama)を使って状態密度(dos)やバンド構造(spc)を計算する場合、セルフコンシステント計算(go)のときと ewidth の範囲が異なります。(参考: AkaiKKRのewidth その1, その2)

デフォルトでは、go計算よりdos計算やspc計算のときに1/4だけエネルギー範囲が正の方向へずらしてあります。
したがって、go計算のときにエネルギー範囲の底がコアにかかっていないかを確認したいときには、状態密度(dos)やバンド構造(spc)を計算するときに、すこし大き目の ewidth を選ばなければなら無い事になります。別に厳密な値にしなくてもいいのですが、キリのよさそうな値を一覧にしました。

godos/spc
0.60.8
0.91.2
1.21.6
1.52.0
1.82.4
2.12.8
2.43.2
2.73.6
3.04.0
table.1: go計算とdos計算で計算範囲の底が同じになるようにするためのewidthの設定値


関連エントリ




参考URL




参考文献/使用機器





フィードバック



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

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


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


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

tag: AkaiKKR machikaneyama KKR ewidth 

AkaiKKRでPd-Rh二相共存領域

二元系の状態図には、全率固溶型や共融型などいくつかのパターンが存在します。Pd-Rhの二元系では、端成分が共に面心立方構造となっています。そのため高温では固溶体となります。しかしながら、低温では二相に分離します。今回はAkaiKKR(machikaneyama)を利用して、この境界となる温度を求めてみます。

Pd-Rh-520.png

Fig.1: Pd-Rh二元系の合金状態図とAkaiKKR(machikaneyama)によって計算された固溶と二相共存の境界温度(紫:マフィンティン近似, 緑:原子球近似)



熱力学


全エネルギーの組成依存性が上に凸の形になる場合、定性的に二相分離が予想されます。境界温度を推定するためには、二相分離した状態と固溶した状態のギブスエネルギーの差がゼロになる条件を探せばよいことが分かります。

\begin{equation}
G = E + PV - TS
\end{equation}

まず、常圧のみを考えると P≒0 としても影響はほとんどありません。エネルギー E の項には、第一原理計算から得られる全エネルギーの他に格子振動の寄与などが考えられますが、二相分離状態と固溶状態の差は小さいと仮定して無視します。

エントロピーSについても配置のエントロピーのほかに格子振動の寄与などが考えられますが、配置のエントロピーのみを考えることにします。するとRh濃度が x のときの全エネルギーの差と、固溶体の配置のエントロピーは、以下の様になります。

\begin{equation}
\Delta E(x) = E_{\mathrm{Pd_{1-x}Rh_{x}}} - \{ (1-x)E_{\mathrm{Pd}} + x E_{\mathrm{Rh}} \} \\
S_m(x) = - k_B \{ (1-x)\ln (1-x) + x \ln (x) \}
\end{equation}

したがって求める温度は以下のようになります。

\begin{equation}
T(x) = \frac{\Delta E(x)}{S_m(x)}
\end{equation}

計算手法


AkaiKKR(machikaneyama)を用いてPd-Rh合金系の全エネルギーを計算しました。交換相関汎関数にはpbeを用いました。シェルスクリプトPdRh_sh.txtを用いて、組成と格子定数を変化させながら、各組成における最安定な格子定数とそのときの全エネルギーを決定しました。ポテンシャルの形状は、マフィンティン近似と原子球近似(ASA)の両方を試しました。

全エネルギーを計算する際に、状態密度の計算も行いました。端成分の状態密度に関してはecaljでも計算し、クロスチェックしました。

結果と議論


Fig.2-3に純粋なPdとRhの状態密度を示します。AkaiKKRで計算した結果とecaljで計算した結果が良く一致していることが分かります。

Pd-DOS.png
Fig.2: Pdの状態密度

Rh-DOS.png
Fig.3: Rhの状態密度


Fig.4にPdの体積と全エネルギーの関係をプロットしたものを示します。ゼロ気圧における体積V0とそのときの全エネルギーE0を得るためにBirch-Murnaghanの状態方程式にフィッティングしました。

\begin{equation}
E(V) = E_0 + \frac{9V_0B_0}{16}\left\lbrace \left[ \left( \frac{V_0}{V} \right)^{\frac{2}{3}} -1 \right]^3 B_0^\prime \\
+ \left[ \left( \frac{V_0}{V} \right)^{\frac{2}{3}} -1 \right]^2 \left[ 6 -4 \left( \frac{V_0}{V} \right)^{\frac{2}{3}} \right] \right\rbrace
\end{equation}

PdRh_0.png
Fig.4: Pdの体積と全エネルギーの関係


フィッティングする体積の範囲はV0付近でフィッティング結果が良くなるように適切に選びます。

得られた全エネルギーから固溶と二相分離の境界の温度をプロットしたのがFig.1です。計算結果は、二元合金状態図集の状態図と比較してあります。Pd-Rh合金の計算ではASAの結果が実験結果を驚くほどよく再現しています。しかしながら、今回のような良い結果が得られるのは、どうやら周期表で同じ周期に隣接している元素同士の合金だけのようです。

関連エントリ




参考URL




付録


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


参考文献/使用機器




フィードバック



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

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


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


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

tag: AkaiKKR machikaneyama KKR CPA 二相共存 状態密度 DOS 

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 

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

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

最新コメント
リンク

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