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カウンター
カテゴリ
ユーザータグ

LTspiceAkaiKKRmachikaneyamaScilabKKRPSoC強磁性CPAPICOPアンプecalj常微分方程式モンテカルロ解析状態密度トランジスタodeDOSインターフェース定電流スイッチング回路PDS5022半導体シェルスクリプト分散関係レベルシフト乱数HP6632AR6452A可変抵抗トランジスタ技術温度解析ブレッドボードI2C反強磁性確率論数値積分セミナーバンドギャップバンド構造偏微分方程式非線形方程式ソルバ熱設計絶縁ISO-I2Cカオス三端子レギュレータLM358GW近似マフィンティン半径A/DコンバータフォトカプラシュミットトリガLEDPC817C発振回路数値微分直流動作点解析サーボカレントミラーTL431アナログスイッチUSB74HC4053bzqltyVESTA補間電子負荷アセンブライジング模型BSch量子力学単振り子2ちゃんねるチョッパアンプLDA開発環境基本並進ベクトルFFT標準ロジックブラべ格子パラメトリック解析抵抗SMPMaxima失敗談ラプラス方程式繰り返し位相図スイッチト・キャパシタ熱伝導状態方程式キュリー温度gfortranコバルトTLP621不規則合金Quantum_ESPRESSO六方最密充填構造ランダムウォーク相対論ewidthスピン軌道相互作用FETQSGWVCAcygwinスレーターポーリング曲線GGA仮想結晶近似PWscfシュレディンガー方程式LM555ハーフメタル固有値問題NE555最小値ガイガー管QNAPUPS自動計測ダイヤモンドマントルTLP552格子比熱最適化MCU井戸型ポテンシャル最大値xcrysdenCIF条件分岐詰め回路フェルミ面差し込みグラフスーパーセルfsolveブラウン運動awk過渡解析起電力三角波第一原理計算FXA-7020ZRWriter509Ubuntuテスタ熱力学データロガーTLP521OpenMPubuntu平均場近似MAS830LトランスCK1026PIC16F785PGA2SC1815EAGLEノコギリ波負帰還安定性ナイキスト線図MBEOPA2277P-10フィルタCapSenseAACircuitLMC662文字列固定スピンモーメントFSMTeX結晶磁気異方性全エネルギーc/a合金multiplotgnuplot非線型方程式ソルバL10構造正規分布等高線ジバニャン方程式初期値interp1fcc面心立方構造ウィグナーザイツ胞半金属デバイ模型電荷密度重積分SIC二相共存磁気モーメント不純物問題PWgui擬ポテンシャルゼーベック係数ZnOウルツ鉱構造edeltquantumESPRESSOフォノンリジッドバンド模型スワップ領域BaO岩塩構造ルチル構造ヒストグラム確率論マテリアルデザインフラクタルマンデルブロ集合キーボードRealforceクーロン散乱三次元疎行列縮退化学反応関数フィッティング最小二乗法Excel直流解析PCTS-110TS-112日本語パラメータ・モデル等価回路モデルcif2cell入出力陰解法熱拡散方程式HiLAPW両対数グラフCrank-Nicolson法連立一次方程式specx.fifort境界条件片対数グラフグラフの分割円周率ヒストグラム不規則局所モーメントGimpシンボル軸ラベル凡例線種トラックボール

最新コメント
リンク

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