AkaiKKRでニッケル・鉄・コバルト

AkaiKKRで不規則NiFe合金の強磁性AkaiKKRで不規則NiMn合金の分散関係では、AkaiKKR(Machikaneyama)を用いて面心立法構造(face-centered cubic; fcc)を持つ金属の電子構造を計算し、AkaiKKRでダイヤモンド型構造半導体ではfcc構造を基本とする半導体の計算を行いました。

今回は、fcc構造に加えて基本的な結晶構造である体心立方構造(body centered cubic; bcc)と六方最密充填構造(hexagonal closed package; hcp)の構造をもつ金属として強磁性のニッケル・鉄・コバルトの計算を行いました。

NiDOS_20130210233144.png FeDOS.png CoDOS.png



specx.fの設定


今回の計算では、specx.fを下記の設定にしてmakeしました。
     & (natmmx=4, ncmpmx=4, msizmx=198, mxlmx=3, nk1x=2200, nk3x=2688,
& msex=201, ngmx=15, nrpmx=650, ngpmx=650, npmx=350, msr=400)


fcc構造ニッケルの入力ファイル


まずは、fcc構造を持つニッケルでこれまでの復習をします。入力ファイルにおいて、それぞれの結晶構造の個性を表現しているのは、fcc, bcc, hcpといった構造の指定に加えて、原子位置の指定ブロッホスペクトル関数を計算するk点の座標です。

原子位置の指定に関して言えば、例えば、同じfcc構造を指定したとしても、単位格子の中で実空間の(0 0 0)にだけ原子をおくとfcc構造となり、実空間の(0 0 0)と(0.25 0.25 0.25)におくとfcc構造を1/4ずつずらして作られたダイヤモンド構造になります。(AkaiKKRでダイヤモンド型構造半導体参照)

以下に示すのが、VESTAを用いて作図したfcc構造ニッケルの原子配置です。cifファイルは結晶構造ギャラリーのものを利用させていただきました。AkaiKKRの入力ファイルでは、実空間の(0 0 0)にだけ原子を置きます。


fccNi.png
Fig.1: fcc構造ニッケルの原子配置


次に、ブロッホスペクトル関数を計算するk点の座標です。この波数空間の座標は、第一Brillouin zone(B.Z.)の特徴的なk点をつなぐように選ばれます。上手な選び方は一通りではないのですが、今回はtable.1の選び方にしました。table.1の中の波数空間の座標の単位は2π/aです。

FCC.png
Fig.2: fcc構造の第一B.Z.(Wikipediaより転載)


kxkykz
W1/201
L1/21/21/2
Γ000
X001
W1/201
K3/403/4
table.1: fcc構造の計算するk点のパス、座標の単位は2π/a


これらを踏まえて作成した入力ファイルがNi_in.txtです。ブロッホスペクトル関数を計算するk点は、table.1のパスに沿った第一B.Z.の特徴的なk点の間をそれぞれ100等分したものを使いました。

fcc構造ニッケルの全状態密度


以下にニッケルの全状態密度(total DOS)の計算結果を示します。
ニッケルの全状態密度は、アウトプットファイルのtotal DOSのところに書き込まれます。今回扱う金属はいずれも強磁性状態の計算なので、上向きスピンと下向きスピンの両方の2つが見つかるはずです。

この部分を取り出して、下向きスピンの状態密度を-1倍したものがNiDOS_dat.txtです。更にこれをgnuplotでプロットしたものがFig.3です。plotにつかったgnuplot用のスクリプトはNiDOS_plt.txtです。


NiDOS_20130210233144.png
Fig.3: fcc構造ニッケルの状態密度


fcc構造ニッケルのバンド構造


次にニッケルのブロッホスペクトル関数の計算結果から、バンド構造(E-k曲線)を描くことにします。
AkaiKKRで不規則NiMn合金の分散関係で書いたとおりgnuplotでカラーマップを使った2次元プロット(pm3d map)の方法を用いてE-k曲線を描きます。そのためには、生成されたspcファイルの行頭に波数空間のパスの道のりの数値を補う必要があります。

W0
L0.70710678
Γ1.57313218
X2.57313218
W3.07313218
K3.42668558
table.2: W点からの逆格子空間の道のり


AkaiKKRで不規則NiMn合金の分散関係のときは、Excelでちまちまと計算したと書きましたが、今回はxyzzyのlispで簡単なマクロを書きました。xyzzyでAkaiKKR-modeに従って導入し、spcファイルを開いた状態で

M-x AkaiKKR-spc2ek


とやれば処理してくれるはずです。かなりいい加減に書いたマクロなので動作は無保証です。また、ファイルは破壊的に編集されるのでバックアップは自分でとってください。あと、処理速度は遅いです。

このようにして出来たファイルをgnuplotでグラフにしたのがFig.4です。グラフのプロットに利用したgnuplotのスクリプトはNiSPC_plt.txtです。


003_20130120185338.png
004_20130120185337.pngFig.4: fcc構造ニッケルのバンド構造


bcc構造鉄の入力ファイル


鉄は常温常圧でbcc構造をとります。Fig.5に示したのがbcc構造の鉄の原子配置です。VESTAを用いて結晶構造ギャラリーのcifファイルを描画しています。fcc構造ニッケルと同様に実空間の(0 0 0)にだけ原子を置きます。


bccFe.png
Fig.5: bcc構造鉄の原子配置


Fig.6に示したのがbcc構造の第一B.Z.です。ブロッホスペクトル関数を計算するk点のパスは、table.3のようにとりました。table.3の中の波数空間の座標の単位は2π/aです。

BCC.png
Fig.6: bcc構造の第一B.Z.(Wikipediaより転載)


kxkykz
Γ000
H001
N1/201/2
P1/21/21/2
Γ000
N1/201/2
table.3: bcc構造の第一B.Z.、座標の単位は2π/a


これらを踏まえて作成した入力ファイルがFe_in.txtです。ブロッホスペクトル関数を計算するk点は、table.3のパスに沿った第一B.Z.の特徴的なk点の間をそれぞれ100等分したものを使いました。

bcc構造鉄の全状態密度


以下に鉄の全状態密度(total DOS)の計算結果を示します。
ニッケルのときと同様な処理をしたデータファイルがFeDOS_dat.txtで、gnuplotのスクリプトファイルがFeDOS_plt.txtです。


FeDOS.png
Fig.7: bcc構造鉄の状態密度


bcc構造鉄のバンド構造


続いて、鉄のバンド構造に関してです。これも基本的にニッケルと同じで、第一B.Z.の形が異なるので逆格子空間での道のりも当然ながら違います(table.4)。

Γ0
H1
N1.70710678
P2.20710678
Γ3.07313218
N3.78023897
table.4: Γ点からの逆格子空間の道のり


gnuplotでE-k曲線を描くための前処理ですが、道のりを計算するだけなのでAkaiKKR-spc2ekは、bcc構造に対してもそのまま使えます。グラフをプロットするためのgnuplotスクリプトはFeSPC_plt.txtです。


FeUp.png
FeDown.pngFig.8: bcc構造鉄のバンド構造


hcp構造コバルトの入力ファイル


最後にhcp構造を持つコバルトについての計算を行います。
まず、Fig.9にコバルトの原子配置をVESTAを用いて描画したものを示します。結晶構造ギャラリーにはコバルトのcifファイルが存在しないので、同じhcp構造をもつマグネシウムのcifファイルの原子の名前と格子定数の部分を編集したものを利用しました。


hcpCo.png
Fig.9: hcp構造コバルトの原子配置


hcp構造の入力ファイルの考え方は、fccやbccのものと比較して多少複雑です。その理由は、下記の2点が主なものです。
  • 基本単位格子の中に2つの原子を含む
  • 格子定数が a ≠ c

fccやbccでは、c/a = 1は明らかなので省略してきました。hcpであっても、省略は可能で、その場合は c/a = 1.633となります。
この値は、理想的なhcp構造のc/a = 2√2/√3ですが、現実のhcp構造のc/aは必ずしも1.633とはなりません。
差し当たり、今回は省略してc/a=1.633を使うことにします。

基本単位格子の中に2この原子を含むということは、nmatm=2ということです。これはAkaiKKRでダイヤモンド型構造半導体で扱ったダイヤモンド構造の結晶も同様でした。このときは、実空間での原子の座標atmicxを直交座標で指定しました。hcp構造では、基本ベクトルで指定するほうが簡単だと思います。計算機マテリアルデザイン入門 (大阪大学新世紀レクチャー)には、以下のように書かれています。

原子の位置. a を単位とする. 直交座標で指定するときは0.5, 0.5, 0.5 などとかき, 基本ベクトルで指定するときは0.5a, 0.5b, 0.5cなどと書く.


hcp構造の計算では、実空間の(0.33333a 0.66667b 0.25c)と(0.66667a 0.33333b 0.75c)の2点に原子をおくことにします。原子位置の指定は結局、以下のようになります。

   0.33333a  0.66667b  0.25c    Co
0.66667a 0.33333b 0.75c Co


Fig.10に示したのがhcp構造の第一B.Z.で、table.5がブロッホスペクトル関数を計算するk点のパスです。
fcc構造やbcc構造での波数空間の座標は 2π/a を単位としていました。hcp構造の場合、多くの教科書やwebサイトではkx,kyは 2π/a を単位としていますが、kzだけは 2π/c を単位としています。今回のtable.5でもそのようになっていますし、入力ファイルでもそのようにします。

HEX.png
Fig.10: hcp構造の第一B.Z.(Wikipediaより転載)


kxkykz
Γ000
M01/√30
K1/31/√30
Γ000
A001/2
L01/√31/2
H1/31/√31/2
A001/2
table.5: hcp構造の第一B.Z. 単位は1-2列目は 2π/a , 3列目は 2π/c


これらを踏まえて作成した入力ファイルがCo_in.txtです。ブロッホスペクトル関数を計算するk点は、table.5のパスに沿った第一B.Z.の特徴的なk点の間をそれぞれ100等分したものを使いました。

hcp構造コバルトの全状態密度


以下にコバルトの全状態密度(total DOS)の計算結果を示します。
ニッケルのときと同様な処理をしたデータファイルがCoDOS_dat.txtで、gnuplotのスクリプトファイルがCoDOS_plt.txtです。アウトプットファイルに出力されるtotal DOSの単位は states/Ry/unit-cell です(だと思います)。bcc構造やfcc構造の金属と比較するためには、states/Ry/atom に統一するほうがいいと思います。hcpは原子を二つ配置したのでDOSをプロットする際に2で割ります。この処理はCoDOS_plt.txtのなかで行っています。


CoDOS.png
Fig.11: hcp構造コバルトの状態密度


hcp構造コバルトのバンド構造


コバルトのバンド構造に関しても、hcp構造特有の注意点があります。
入力ファイルを作る際に、k空間においてkzだけ単位が 2π/c であったことを思い出してください。逆格子空間での道のりを考えるときにこのことを考慮しなければいけません。

計算によって出力されたspcファイルには # の後にk空間の座標が書かれています。
実を言うと、この座標の単位はkx, ky, kzの全てに関して 2π/a です。

重要なことなのでもう一度書きます。
hcp構造では、入力ファイルのk空間の座標はkzだけ 2π/c の単位を持ちますが、出力ファイルのk空間の座標の単位は全て 2π/a です。

一見すると統一感がないようにも見えますが、この仕様はとても便利です。なぜなら、入力の時にはc/aの値を気にする事無く教科書どおりにk点の座標を与えることが出来、出力ファイルを処理するときもc/aの値を気にする事無く道のりの長さを求めることが出来るからです。したがって、fcc構造やbcc構造と同様にAkaiKKR-spc2ekでバンド図を描くための前処理が出来ます。

Γ0
M0.577350269
K0.910683603
Γ1.577350269
A1.883536487
L2.460886756
H2.79422009
A3.460886756
table.6: Γ点からの逆格子空間の道のり


table.6がc/a=1.633(理想的なhcp構造)のときの逆格子空間の特徴的なk点までの道のりです。以下に示したバンド図作成に利用したgnuplotスクリプトはCoSPC_plt.txtです。


CoUp.png
CoDown.pngFig.12: hcp構造コバルトのバンド構造


小口多美夫著 遷移金属のバンド理論に強磁性bcc構造Feと強磁性hcp構造Coの全状態密度の計算例が載っています。

関連エントリ




参考URL




付録


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


参考文献/使用機器




フィードバック



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

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


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


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


tag: AkaiKKR machikaneyama KKR 強磁性 状態密度 DOS バンド構造 分散関係 

comment

Secret

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

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

最新コメント
リンク

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