AkaiKKRでハーフメタル

第27回のCMDワークショップAkaiKKR(machikaneyama)の実習で習ったハーフメタルの計算を復習するために、シェルスクリプトを作成して、片っ端から計算しました。

CrAs587.png

Fig.1: 閃亜鉛鉱(zinc blende)構造のCrAsの格子定数を a = 5.87 Å としたときの状態密度。このようにアップスピン側が金属的なバンド構造で、ダウンスピン側が半導体的なバンド構造を持つ物質をハーフメタルと呼ぶ。



ハーフメタル


第27回のCMDワークショップAkaiKKR(machikaneyama)の実習で、ハーフメタルの計算を習いました。
ハーフメタルとはFig.1に示すような、アップスピン側のバンドが金属的、ダウンスピン側のバンドが半導体的なバンド構造を持つ物質の事を指します。紛らわしいですがecaljで半金属α-スズで計算した半金属(セミメタル)とは別の概念です。

ハーフメタルは強磁性体となり、そのスピン磁気モーメントは必ずボーア磁子の整数倍になります。これは以下のような理由からです。
まず、ダウンスピンは、価電子帯のすべてのバンドが埋まっているので、電子数は整数値になります。そして、全電子数からダウンスピンの電子数を引いた残りも当然ながら整数になります。従って、アップスピンとダウンスピンの電子数の差であるスピン磁気モーメントも必ず整数になるわけです。

今回計算する半金属の候補は以下の6つの化学組成のものです。
  • CrP
  • CrAs
  • CrSb
  • MnP
  • MnAs
  • MnSb

これらの標準状態の結晶構造は、必ずしも閃亜鉛鉱(zinc blende)構造ではないのだと思いますが、閃亜鉛鉱構造をもつ色々な物質を基板として、その上に結晶を成長させることにより、閃亜鉛鉱構造をもち、かつ、さまざまな格子定数となる半金属を実際に作成することができるとの事です。

今回計算する格子定数は 4.98, 5.45, 5.65, 5.87, 6.06, 6.10, 6.48 Å の7種類です。

化学組成と格子定数の組み合わせによって、半金属になる場合とならない場合があります。
第27回のCMDワークショップでは、受講者が分担して各組成の計算を行いましたが、今回はすべての組成と格子定数を一気に計算するシェルスクリプトを作成しました。

計算手法


いつもどおり、入力ファイルのテンプレートをあらかじめ用意しておき、一部のパラメータを sed で置き換えて入力ファイルを作成するという手順を踏みます。
以下にgo計算のための入力ファイルのテンプレートとそれを置換するためのCシェルのシェルスクリプトを示します。

c----------------------MnSb----------------------------------
go data/AATOMBATOMALATT
c------------------------------------------------------------
c brvtyp a c/a b/a alpha beta gamma
fcc ABOHR , , , , , ,
c------------------------------------------------------------
c edelt ewidth reltyp sdftyp magtyp record
0.001 1.0 sra mjw mag 2nd
c------------------------------------------------------------
c outtyp bzqlty maxitr pmix
update 4 200 0.03
c------------------------------------------------------------
c ntyp
4
c------------------------------------------------------------
c type ncmp rmt field mxl anclr conc
AATOM 1 1 0.0 2 AANUM 100
BATOM 1 1 0.0 2 BANUM 100
Vc1 1 1 0.0 0 0 100
Vc2 1 1 0.0 0 0 100
c------------------------------------------------------------
c natm
4
c------------------------------------------------------------
c atmicx atmtyp
0 0 0 AATOM
0.25 0.25 0.25 BATOM
0.5 0.5 0.5 Vc1
0.75 0.75 0.75 Vc2
c------------------------------------------------------------


#!/bin/csh -f

## *** プロジェクト名 ***
set PROJECT="HalfMetal"
## ポテンシャルファイル名
set POTENTIAL=${PROJECT}

## *** 格子定数のリスト (Angstrom) ***
set ALATT_LIST=( 4.98 5.45 5.65 5.87 6.06 6.10 6.48 )
set AATOM_LIST=( Cr Mn )
set AANUM_LIST=( 24 25 )
set BATOM_LIST=( P As Sb )
set BANUM_LIST=( 15 33 51 )

## *** 第一原理計算 ****
set i=0
foreach AATOM ( ${AATOM_LIST} )
set i=`echo "${i}+1" | bc -l`
set AANUM=${AANUM_LIST[$i]}
set j=0
foreach BATOM ( ${BATOM_LIST} )
set j=`echo "${j}+1" | bc -l`
set BANUM=${BANUM_LIST[$j]}
foreach ALATT ( ${ALATT_LIST} )
set ABOHR=`echo "scale=5; ${ALATT}/0.52917721092" | bc -l`
## 強磁性用入力ファイルの作成
sed 's/'ABOHR'/'${ABOHR}'/g' template/${PROJECT}.in | sed 's/'ALATT'/'${ALATT}'/g' | sed 's/'AATOM'/'${AATOM}'/g' | sed 's/'AANUM'/'${AANUM}'/g' | sed 's/'BATOM'/'${BATOM}'/g' | sed 's/'BANUM'/'${BANUM}'/g' > in/${AATOM}${BATOM}${ALATT}.in
## LMD用入力ファイルの作成
sed 's/'ABOHR'/'${ABOHR}'/g' template/${PROJECT}-lmd.in | sed 's/'ALATT'/'${ALATT}'/g' | sed 's/'AATOM'/'${AATOM}'/g' | sed 's/'AANUM'/'${AANUM}'/g' | sed 's/'BATOM'/'${BATOM}'/g' | sed 's/'BANUM'/'${BANUM}'/g' > in/${AATOM}${BATOM}${ALATT}-lmd.in
## 強磁性状態の計算
specx out/${AATOM}${BATOM}${ALATT}.out
## LMD初期ポテンシャルの作成
cp data/${AATOM}${BATOM}${ALATT} data/HalfMetal
fmg < HalfMetal.fmg
cp data/HalfMetal_lmd data/${AATOM}${BATOM}lmd${ALATT}
## LMD状態の計算
specx out/${AATOM}${BATOM}${ALATT}-lmd.out
end
end
end


5.87ÅのCrAsの計算結果


すべてのデータを眺めながら系統的な議論を行うのが本筋なのですが、今回は格子定数 a=5.87 Å のCrAsについてのみ結果を見てみます。
Fig.1は計算された状態密度で確かに半金属になっています。磁気モーメントの計算値は 2.99028 μB で、これもほとんど整数値の3とみなすことができます。

次にキュリー温度を求めます。強磁性状態と局所モーメント不規則状態の全エネルギーはそれぞれ
EFMG=-6613.3040012 (Ry)
ELMD=-6613.2841922 (Ry)
となりました。

ボルツマン定数は kB = 6.3336*10-6 (Ry/K) なので
\begin{equation}
T_C = \frac{2}{3}\frac{E_{FMG}-E_{LMD}}{k_B}=2085 (\mathrm{K})
\end{equation}
となり、キュリー温度は非常に高いことが予想されました。

関連エントリ




参考URL




付録


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


参考文献/使用機器




フィードバック



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

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


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


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

tag: AkaiKKR machikaneyama KKR ハーフメタル 強磁性 キュリー温度 状態密度 

Scilabで自発磁化の温度依存性

磁性入門―スピンから磁石まで (材料学シリーズ)では、ワイスの分子場近似を用いた磁化の温度依存性を解析的に表す式が以下のように書かれています。

_eq_htcs.png

今回は、これをScilabの非線型方程式ソルバfsolveを用いて数値的に解きます。(参考:Scilabで非線形方程式ソルバ その1)

001_2015081913143435a.png
Fig.1: 遷移金属の磁気モーメントの温度依存性



自発磁化の温度依存性


磁性入門―スピンから磁石まで (材料学シリーズ)によると、スピン角運動量 S=1/2 の場合、自発磁化 M(T) は

M(T) = N \mu_B \tanh \left( \frac{\alpha \mu_B M(T)}{k_B T} \right)

ここで T=0 (K) のときの磁化 M0=M(0) は

M_0 = N \mu_B

であり、キュリー温度TC

T_C = \frac{\alpha N \mu_B^2}{k_B}

したがって

\frac{M(T)}{M_0} = \tanh \left(\frac{M(T)}{M_0} \frac{T_C}{T} \right)

となるのでScilabなどの非線型方程式ソルバ(fsolve)で解く事が可能です。
したがって基底状態の自発磁化M0とキュリー温度TCの二つのパラメータから磁化温度曲線を内挿することができます。

数値計算


実際にScilabを使って計算した結果が冒頭のFig.1です。
赤、緑、青の点はCrangle and Goodman (1971)により報告されている、鉄・ニッケル・コバルトの実験値です。
大雑把な仮定と簡単な式から計算したことを考えると、そんなに悪くない結果ではないかと思います。

なお、M0とTCはどちらもAkaiKKR(machikaneyam)を用いて計算できます。しかしながら、計算されるキュリー温度はかなりの過大評価です。例えば、体心立方構造(bcc)鉄の場合は、TC=1043 Kの実験値に対して、AkaiKKRの計算では TC=1616 Kと約55%も過大評価となります。(AkaiKKRで鉄のキュリー温度の計算のときはTC=1229 Kでしたがbzqltyを上げてpbeで計算するとTC=1616 Kとなりました。いずれにせよ過大評価です。)

関連エントリ




参考URL




付録


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


参考文献/使用機器




フィードバック



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

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


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


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

tag: Scilab 非線型方程式ソルバ 強磁性 キュリー温度 平均場近似 

AkaiKKRで鉄のキュリー温度

強磁性体のキュリー温度は、平均場近似から以下のように求めることが出来ます。

T_c = \frac{2}{3ck_B}\Delta E

(Tc: キュリー温度, c: 磁性原子の濃度 (0 < c ≦ 1), kB: ボルツマン定数, ΔE: 常磁性状態と強磁性状態の間のエネルギー差)

計算機マテリアルデザイン入門 (大阪大学新世紀レクチャー)密度汎関数法の発展 -マテリアルデザインへの応用では、平均場近似とAkaiKKR(Machikaneyama)による全エネルギー計算による強磁性体のキュリー温度の見積もりが紹介されています。

今回は、これらに倣って鉄のキュリー温度を計算しました。計算結果は Tc = 1260 (K) となり、鉄のキュリー温度の実測値である Tc = 1043 (K) と近い値が得られました。

001_20130924035510a8c.png 002_201309240355099cc.png


AkaiKKRと平均場近似によるキュリー温度の計算


計算機マテリアルデザイン入門 (大阪大学新世紀レクチャー)によると、強磁性体のキュリー温度は平均場近似を用いて以下のように求めることが出来ます。

T_c = \frac{2}{3ck_B}\Delta E

(Tc: キュリー温度, c: 磁性原子の濃度 (0 < c ≦ 1), kB: ボルツマン定数, ΔE: 常磁性状態と強磁性状態の間のエネルギー差)

強磁性状態のエネルギーは、AkaiKKRでニッケル・鉄・コバルトで行った様に簡単に計算できます。一方で、常磁性状態の計算は非磁性(nmag)の計算とは異なります。

(なのでAkaiKKRで鉄の安定相と格子定数の非磁性の計算をδ鉄と呼ぶのは間違いだったということです。すみません。)

常磁性状態は、それぞれの原子の置ける磁気モーメントがランダムな向きを向いている状態です。しかしながら、第一原理計算でこの状態を再現するのは難しいようです。

そこでAkaiKKRでは、常磁性状態の代わりに不規則局所モーメント状態の計算を行います。これは上向きの磁気モーメントをもつ原子と下向きの磁気モーメントを持つ原子が半分ずつ不規則合金となったもので、局所的には磁気モーメントを持ちながら、金属結晶全体ではモーメントが無いという特徴を持っています。

今回は『平均場近似』と『常磁性状態の変わりに不規則局所モーメント状態を計算する』という2つの近似の下に鉄のキュリー温度を計算します。

fmg.fのコンパイル


CygwinでAkaiKKR(Machikaneyama)ではAkaiKKR本体をcygwinのg77でコンパイルしました。AkaiKKRには不規則局所モーメント状態のための初期ポテンシャルデータを作成するための補助プログラムとしてfmg.fが付属していますので、これをコンパイルします。

計算機マテリアルデザイン入門 (大阪大学新世紀レクチャー)のP255に書いてある通りCygwinの端末上でutilフォルダに移動した後
~/cpa2002v009c/util> f77 -o fmg fmg.f

とタイプします。コンパイルが成功すればfmg.exeという実行ファイルが出来ているはずです。

計算手順


第一原理計算の部分をまとめて実行するために、あらかじめ必要なファイルを全て用意しておきましょう。
準備する入力ファイルは下記の3つです。
  • 強磁性状態のための入力ファイル: fefmg.in
  • 不規則局所モーメント状態のための入力ファイル: felmd.in
  • fmg.exeのための入力ファイル: fefmg


キュリー温度を求めるためには、2つの状態の全エネルギーを求めるだけでよいのですが、今回は状態密度も同時に計算できる入力ファイルを準備しました。
各入力ファイルの準備が完了したら、いよいよAkaiKKRを用いた第一原理計算を実行します。
手順は以下のようになります。

  1. 強磁性状態の計算
  2. fmg.exeを利用した強磁性状態のポテンシャルファイルからの不規則局所モーメント状態のための初期ポテンシャル作成
  3. 不規則局所モーメント状態の計算


上記の手順を人間が行っても良いのですが、一気にやってくれるシェルスクリプトFe.shを用意しました。

Curie/─┬─in/─┬─fefmg.in
│ └─felmd.in
├─out/
├─data/
├─Fe.sh
└─fefmg


上記のようなディレクトリ構成としてFe.shをCygwin端末上で実行します。

キュリー温度


3度目の掲示になりますが、下記が平均場近似によるキュリー温度の算出式です。

T_c = \frac{2}{3ck_B}\Delta E

(Tc: キュリー温度, c: 磁性原子の濃度 (0 < c ≦ 1), kB: ボルツマン定数, ΔE: 常磁性状態と強磁性状態の間のエネルギー差)

ここで磁性原子の濃度はc=1です。
AkaiKKRによる全エネルギーはRyの単位で出力されるのでJへ変換する必要があります。

1 (Ry) = 2.179 872×10-18 (J)

またボルツマン定数は

kB = 1.3806488×10-23 (J/K)

です。

Efmg = -2522.8176206 (Ry)
Elmd = -2522.8055978 (Ry)

なので、求められた全エネルギーからキュリー温度は Tc = 1259.194 (K) と計算されました。この値は鉄のキュリー温度の実測値である Tc = 1043 (K) と近い値です。

状態密度


ついでに計算を行った強磁性鉄と不規則局所モーメント鉄の状態密度を示します。


001_20130924035510a8c.png

Fig.1: 常磁性状態の状態密度

002_201309240355099cc.png

Fig.2: 不規則局所モーメント状態の状態密度


状態密度のプロットは以下のファイルによって行いました。



Appendix: 改行コードの問題


WindowsでCygwinを使う上での特有の事ですが、改行コードの問題があります。
Windowsでは普通改行コードにCR+LFを用います。ところがLinuxではLFを利用します。

今回利用したシェルスクリプトFe.shとfmg.exeのための入力ファイルfefmgはどちらもLinux流のLFの改行コードで無いと正常に動作しません。

エラーが出た場合は確認してみてください。

関連エントリ




参考URL




付録


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



参考文献/使用機器





フィードバック



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

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


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


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

tag: AkaiKKR machikaneyama KKR CPA 強磁性 キュリー温度 平均場近似 不規則局所モーメント 状態密度 DOS 

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両対数グラフ片対数グラフ縮退

最新コメント
リンク

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