スポンサーサイト

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


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

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ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。