AkaiKKRでテスト計算

AkaiKKRのインストールにてAkaiKKR(machikaneyama)のインストールが完了したので、今回はテスト計算として強磁性体心立方構造の鉄のセルフコンシステント計算とそのポテンシャルファイルを利用した状態密度の計算方法について書きました。


AkaiKKRの実行


AkaiKKRのインストールによってcygwinまたはubuntuにAkaiKKRのインストールができたはずなので、次はテスト計算を行います。

インストールが完了してさえいれば、テスト計算の方法はKKR-Green関数法によるバンド計算計算機マテリアルデザイン入門 (大阪大学新世紀レクチャー)など色々な文献に書いてある通りなので、簡単なはずです。

AkaiKKRの実行ファイルはspecxです。
specx < in/infile.in > out/outfile.out &
AkaiKKRのインストールの通り実行ファイルの存在するディレクトリにパスが通っていれば、上記のようにして実行できます。

今回は、下記に示すbcc構造強磁性鉄の入力ファイルを例にします。
c----------------------Fe------------------------------------
go data/fe
c------------------------------------------------------------
c brvtyp a c/a b/a alpha beta gamma
bcc 5.27 , , , , , ,
c------------------------------------------------------------
c edelt ewidth reltyp sdftyp magtyp record
0.001 1.0 nrl mjw mag 2nd
c------------------------------------------------------------
c outtyp bzqlty maxitr pmix
update 3 50 0.023
c------------------------------------------------------------
c ntyp
1
c------------------------------------------------------------
c type ncmp rmt field mxl anclr conc
Fe 1 1 0.0 2
26 100
c------------------------------------------------------------
c natm
1
c------------------------------------------------------------
c atmicx(in the unit of a) atmtyp
0 0 0 Fe
c
c------ The following types of inputs and their combination
c are also allowed.
c------ In those cases a, b, b mean primitive unit vectors
c and x, y, z mean shortest unit cell vectors along
c x, y, and z axses.
c 1/2 1/2 1/2 Fe
c 0a 0b 0c Fe
c 0x 0y 0z Fe
c 1/2a 1/2b 1/2c Fe
c------------------------------------------------------------

上記のファイルは、このエントリを書いている時点での最新版(cpa2002v009c September 30, 2014)の場合inフォルダにfeという名前で保存されています。このファイルを(念のため)コピーしてfe.inを作成し、specxに渡します。

cp in/fe in/fe.in
specx < in/fe.in > out/fe.out &

出力ファイル


上記の計算を行うと合計で3つのファイルが作成されます。outフォルダのfe.out、dataフォルダのfeとfe.infoです。dataフォルダのfeがメインの計算結果であるポテンシャルファイルです。しかしポテンシャルファイルはバイナリファイルなので人間には読めません。人間にわかりやすい形式の出力ファイルはoutフォルダのfe.outとdataフォルダのfe.infoです。

out/fe.outの最初の方に計算の設定に関する内容が書き込まれます。設定に問題がなければ、以下に示すようなイテレーションのループに入ります。

   ***** self-consistent iteration starts *****
Fe
itr= 1 neu= -2.3732 moment= 0.1175 te= -2522.45174794 err= 0.633
itr= 2 neu= -1.8783 moment= 0.1674 te= -2523.05786722 err= 0.455
itr= 3 neu= 2.0397 moment= -0.0543 te= -2520.36515324 err= 0.510
itr= 4 neu= 2.0695 moment= 0.5212 te= -2520.72070737 err= 0.468
itr= 5 neu= 0.1956 moment= 0.2876 te= -2522.77976600 err= -0.346
itr= 6 neu= -1.4162 moment= 0.3321 te= -2523.09445307 err= 0.159
itr= 7 neu= -0.8089 moment= 0.9042 te= -2522.80324234 err= -0.427
itr= 8 neu= -0.2096 moment= 0.9756 te= -2522.79459829 err= -0.437
itr= 9 neu= 0.2350 moment= 1.4317 te= -2522.80324021 err= -0.390
(中略)
itr= 45 neu= -0.0001 moment= 2.1755 te= -2522.82229189 err= -2.591
itr= 46 neu= -0.0001 moment= 2.1755 te= -2522.82229254 err= -2.658
itr= 47 neu= -0.0002 moment= 2.1755 te= -2522.82229304 err= -2.732
itr= 48 neu= -0.0002 moment= 2.1755 te= -2522.82229340 err= -2.811
itr= 49 neu= -0.0002 moment= 2.1755 te= -2522.82229364 err= -2.895
itr= 50 neu= -0.0002 moment= 2.1755 te= -2522.82229381 err= -2.982
*** no convergence


イテレーションはerrが-6より小さくなるか、イテレーションの回数が入力ファイルのmaxitrに達するかするまで続けられます。上記の例では、イテレーションの回数が入力ファイルで指定されている50回に達したので収束なし(no convergence)として計算を終了しています。

入力ファイルのrecordを2ndにしておけば、もういちどspecxを実行することにより、続きから計算できます。
specx < in/fe.in > out/fe.out &

逆に、前回までのポテンシャルファイルを無かったことにして最初から計算したい場合は、recordをinitにする、或いは、dataフォルダにあるポテンシャルファイルfeを削除するなどしてから再実行します。

   ***** self-consistent iteration starts *****
Fe
itr= 1 neu= -0.0002 moment= 2.1755 te= -2522.82229381 err= -2.982
itr= 2 neu= -0.0002 moment= 2.1755 te= -2522.82229384 err= -2.998
itr= 3 neu= -0.0002 moment= 2.1755 te= -2522.82229388 err= -3.025
itr= 4 neu= -0.0001 moment= 2.1755 te= -2522.82229394 err= -3.054
itr= 5 neu= -0.0001 moment= 2.1755 te= -2522.82229402 err= -3.089
(中略)
itr= 45 neu= -0.0000 moment= 2.1755 te= -2522.82229503 err= -5.611
itr= 46 neu= -0.0000 moment= 2.1755 te= -2522.82229503 err= -5.696
itr= 47 neu= -0.0000 moment= 2.1755 te= -2522.82229503 err= -5.782
itr= 48 neu= -0.0000 moment= 2.1755 te= -2522.82229503 err= -5.868
itr= 49 neu= -0.0000 moment= 2.1755 te= -2522.82229503 err= -5.956
itr= 50 neu= -0.0000 moment= 2.1755 te= -2522.82229503 err= -6.044


収束したのを確認したら、次は状態密度を表示してみます。

状態密度の計算


作成したポテンシャルファイルから状態密度を計算することができます。
このためには、入力ファイルのgoの部分をdosに変更します。
ついでにbzqltyを大きくするときれいな状態密度を描くことができます。

ただしbzqltyを大きくし過ぎると ***err in bzmesh...too many k-pointのエラーが出てしまいます。このエラーを回避するためにはsource/specx.fのnk1xの値をk点の数(nk)よりも大きくしてmakeすれば良いのですが、bzqltyとnkの対応関係は実際に計算してみないとわかりません。

とりあえず今回はbzqlty=12としました。これはnk=413に対応します。cpa2002v009c (September 30, 2014)ではデフォルトはnk1x=500となっています。

結局、以下の内容のファイルをfedos.inとしてinフォルダに保存します。

c----------------------Fe------------------------------------
dos data/fe
c------------------------------------------------------------
c brvtyp a c/a b/a alpha beta gamma
bcc 5.27 , , , , , ,
c------------------------------------------------------------
c edelt ewidth reltyp sdftyp magtyp record
0.001 1.0 nrl mjw mag 2nd
c------------------------------------------------------------
c outtyp bzqlty maxitr pmix
update 12 50 0.023
c------------------------------------------------------------
c ntyp
1
c------------------------------------------------------------
c type ncmp rmt field mxl anclr conc
Fe 1 1 0.0 2
26 100
c------------------------------------------------------------
c natm
1
c------------------------------------------------------------
c atmicx(in the unit of a) atmtyp
0 0 0 Fe
c
c------ The following types of inputs and their combination
c are also allowed.
c------ In those cases a, b, b mean primitive unit vectors
c and x, y, z mean shortest unit cell vectors along
c x, y, and z axses.
c 1/2 1/2 1/2 Fe
c 0a 0b 0c Fe
c 0x 0y 0z Fe
c 1/2a 1/2b 1/2c Fe
c------------------------------------------------------------

specx < in/fedos.in > out/fedos.out &
状態密度の値は、出力ファイルのtotal DOSからintegrated DOSの間に出力されます。これをグラフソフトでプロットします。

001_20141226050748757.png
Fig.1: Excelでプロットした状態密度


スピン分極を考慮した計算では、全状態密度が二組あるので正と負にプロットしました。

最後にdataフォルダのfe.infoについて。

       5.2700       -2522.8222938   2.17548
5.2700 -2522.8222950 2.17547
5.2700 -2517.8475965 0.30790


左の列から、格子定数、全エネルギー、磁気モーメントです。
specxを実行するごとに1行ずつ末尾に値が追加されていきます。上記の例でいえば、1行目が1回目のgo計算でこの段階ではまだ収束していません。2行目は2回目のgo計算で完全に収束した結果です。3行目は状態密度(dos)の計算のときの出力で、この3行目の値は意味のない値です。
したがって上記の例でいえば2行目だけが信用できる値です。

関連エントリ




参考URL




参考文献/使用機器




フィードバック



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

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


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


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


tag: AkaiKKR machikaneyama KKR 強磁性 

comment

Secret

No title

初期セッティング含めて大変参考になりました。ありがとうございます。
ただ当方の環境(Ubuntu 16.04,cpa2002v009c)ではspecxの実行には先頭に./をつける必要がありました (つけないとターミナルごと落ちます)。

./specx < in/fe.in > out/fe.out &

設定が変わったのかもしれませんので、ご報告まで。

Re: No title

mmさん、こんにちは。

ご報告ありがとうございます。
ご報告の件はAkaiKKRの問題ではなく、Ubuntuのシェル(bashなど)の問題と思います。
単純にパスが通っていないだけなら command not found と言われるだけのはずなので、ターミナルごと落ちるとなると、結構深刻なミスかもしれません。パスの設定周りを再確認してみることをお勧めします。

もちろん、あらかじめパスを通しておかなければ使えないというものでもないので、その都度パスごと指定して使うというのでもよいと思いますが。

No title

ご返信が遅れまして申し訳ありません。
シェル側の問題とのご指摘をいただきありがとうございます。
まだLinuxに習熟していないため、おかしな所をいじってしまったのかもしれません。
少し調べてみます。

どうぞ今後とも宜しくお願いいたします。
FC2カウンター
カテゴリ
ユーザータグ

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

最新コメント
リンク

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