AkaiKKRで最急降下法

擬ポテンシャル法を用いた第一原理計算パッケージは、多くの場合、結晶構造の最適化機能を持っています。しかしAkaiKKRにはそのような機能はありません。そこで、最急降下法を用いて全エネルギーが最小となる結晶構造を探してみました。
対象として選んだのは六方最密充填構造(hcp)のコバルトです。

steepest.png
Fig.1: 全エネルギーのカラーマップと最急降下法探索による全エネルギー最小化



結晶構造の最適化


多くの第一原理計算パッケージには、結晶構造の最適化機能があります。これは多くの場合、原子にかかる力を計算して、その方向に原子を動かすことによって実現されています。しかしながらAkaiKKR(machikaneyama)では原子にかかる力の計算が出来ません。AkaiKKRでも、全エネルギーが最小になるようにすることで結晶構造の最適化が出来るはずですが、手動ですべてのパラメータの探索を行うのは大変です。そこで最急降下法を使って全エネルギーが最小になる構造を探して見ます。
Scilabで最急降下法 その1Scilabで最急降下法 その2では、簡単な関数f(x,y)に対して、最小値を探すことで最急降下法のアルゴリズムを確認しました。今回は f(x,y)の代わりに第一原理計算を行います。今回はテスト計算として六方最密充填構造(hcp)のコバルトの計算をします。具体的には以下の3つのステップを行います。
  1. マフィンティン半径の決定
  2. エネルギーマップの作成
  3. 最急降下法計算


マフィンティン半径の決定


AkaiKKRで全エネルギーを比較するときは、色々な計算条件が変化しないようにする必要があります。特にマフィンティン半径の設定には注意が必要です。AkaiKKRの入力ファイルでは、マフィンティン半径は格子定数 a で規格化されます。私の理解では「AkaiKKRでマフィンティン半径を固定する」というのは「原子の位置や計算セルのサイズを変更したときに、計算セルの体積に対する各マフィンティン球の体積の比が変化しないようにする」ということです。(これは他の計算手法、例えばAPW法などとは違うことに注意が必要です。)この条件を満たす範囲でマフィンティン半径を最大になるようにするのが最良であると理解しています。(AkaiKKRでBain機構 その1その2も参照。)

そこでまず、全エネルギー最小を探索する格子定数の範囲を決めます。次に、その範囲でrmt=1としたときの実際のマフィンティン球の体積比が一番小さくなってしまう条件を探します。この条件でのマフィンティン半径を全ての計算に用いれば、マフィンティン球が重なることなく、かつ、マフィンティン半径を固定することが出来ます。
決められたマフィンティン半径は、格子体積の1/3乗で規格化しておくのが後々の事を考えると便利なはずです。具体的には下記のようなシェルスクリプトを作成し、計算しました。1.60 ≦ c/a ≦ 1.70 の範囲では rMT/V1/3 = 0.439518 ぐらいのようです。
このスクリプトを走らせる際には、第一原理計算を収束させる必要はないので bzqlty=0maxitr=0としておきます。

#!/bin/csh -f
#setenv GFORTRAN_UNBUFFERED_ALL y

## *** パラメーター範囲 ***
set COA_LIST=( 1.60 1.61 1.62 1.63 1.64 1.65 1.66 1.67 1.68 1.69 1.70 )
set OMEGA_LIST=( 160 158 156 154 152 150 148 146 144 142 140 )

# set COA_LIST=( 1.63 )
# set OMEGA_LIST=( 150 )

## *** マフィンティン半径の計算 ***
set OMEGA=${OMEGA_LIST[1]}
set COA0=`echo $COA_LIST[1]`
set A0=`echo "e((1/3)*l(2*${OMEGA}/(sqrt(3)*${COA0})))" | bc -l`
if (`echo "${COA0} > 2*sqrt(2)/sqrt(3)" | bc -l` == 1) then
set RMTB0=`echo "${A0}/2" | bc -l`
else
set RMTB0=`echo "${A0}*sqrt(1/3+(${COA0}^2)/4)/2" | bc -l`
endif
set COA1=`echo $COA_LIST[$#COA_LIST]`
set A1=`echo "e((1/3)*l(2*${OMEGA}/(sqrt(3)*${COA1})))" | bc -l`
if (`echo "${COA1} > 2*sqrt(2)/sqrt(3)" | bc -l` == 1) then
set RMTB1=`echo "${A1}/2" | bc -l`
else
set RMTB1=`echo "${A1}*sqrt(1/3+(${COA1}^2)/4)/2" | bc -l`
endif
if (`echo "${RMTB0} < ${RMTB1}" | bc -l` == 1) then
set RMTB=`echo $RMTB0`
else
set RMTB=`echo $RMTB1`
endif
set RMTOMEGA=`echo "${RMTB}/e((1/3)*l(${OMEGA}))" | bc -l | sed -e 's/^\./0./g'`
echo ${RMTOMEGA}


なおhcp構造の場合はAkaiKKRでコバルトのc/a その2の方法でマフィンティン半径を決めることが出来るのですが、今回は将来的により複雑な構造をやることも考えてこのようにしました。

エネルギーマップの作成


必要ないはずの手順ですが、今回は最急降下法のテストでもあるので、考える体積・軸比の範囲の全ての全エネルギーを計算しておきます。この結果がFig.1のカラーコンターです。

Cシェルスクリプトには関数を実装することが出来ませんが、下請けのシェルスクリプトに変数を渡すことによって、それっぽい事は出来ます。
今回は という下請けのスクリプトを作成しました。これは、体積・軸比・マフィンティン半径の3つを引数として受け取り、第一原理計算を行って全エネルギーを返り値にします。

#!/bin/csh -f
##setenv GFORTRAN_UNBUFFERED_ALL y

## *** プロジェクト名 ***
set PROJECT="hcpCo"

## *** 実行ファイル ***
set EXEC="~/kkr/cpa2002v009c/specx"

## *** 標準入力から値を読み取る ***
## 格子体積
set OMEGA=$1
## c/a
set COA=$2
## RMT
set RMTOMEGA=$3

## ファイル名
set INFILE="in/${PROJECT}_go_${OMEGA}_${COA}.in"
set OUTFILE="out/${PROJECT}_go_${OMEGA}_${COA}.out"
set POTFILE="data/${PROJECT}_${OMEGA}_${COA}"
set POTBACK="data/${PROJECT}_${OMEGA}"

## 格子定数 a の計算
set ABOHR=`echo "scale=7; e((1/3)*l(2*${OMEGA}/(sqrt(3)*${COA})))" | bc -l | sed -e 's/^\./0./g'`
## マフィンティン半径の計算
set RMTA=`echo "scale=7; ${RMTOMEGA}*e((1/3)*l(${OMEGA}))/${ABOHR}" | bc -l | sed -e 's/^\./0./g'`

## テンプレートから入力ファイルを作成
sed 's/'OMEGA'/'${OMEGA}'/g' template/${PROJECT}_go_Template.in | sed 's/'ABOHR'/'${ABOHR}'/g' | sed 's/'COA'/'${COA}'/g' | sed 's/'RMTA'/'${RMTA}'/g' > ${INFILE}

## ポテンシャルファイルのコピー
if ( ! -e ${POTFILE} ) then
if ( -e ${POTBACK} ) then
cp ${POTBACK} ${POTFILE}
endif
endif

## 計算回数の初期化
set num=0
## 最大計算回数
set nummax=20
## 第一原理計算
${EXEC} < ${INFILE} > ${OUTFILE}
while ( ( ! { grep -q "err= -6." ${OUTFILE} } ) && ( $num < $nummax ) )
${EXEC} < ${INFILE} > ${OUTFILE}
@ num++
end

## ポテンシャルのバックアップ
cp ${POTFILE} ${POTBACK}

set ENE=`grep "total energy" ${OUTFILE} | sed -e s/total//g -e s/energy=//g`
echo ${ENE}


enemap.sh は下請けスクリプト dogo.sh を利用して 1.60 ≦ c/a ≦ 1.70, 140 ≦ V ≦ 160 の範囲で全エネルギーのマップを作ります。dogo.sh は最急降下法のシェルスクリプトでも利用します。

最急降下法


エネルギーのマップから最安定な格子定数が V = 150 Bohr3, c/a = 163 付近にあることが予想できます。とりあえず初期値を V = 156 Bohr3, c/a = 1.68 として計算してみます。その結果がFig.1上に白で示された経路です。最急降下法では、その関数の値の微分の方向に向かって次の入力パラメータを探します。今回の計算では、4回程度で格子定数の最適化が出来ている事が確認できます。

最急降下法のCシェルスクリプト steepest.sh は以下の通りです。

#!/bin/csh -f
#setenv GFORTRAN_UNBUFFERED_ALL y

## *** マフィンティン半径 ***
set RMTOMEGA=0.43951815598150528923

## *** 係数 ***
set KEISUU_OMEGA="10000.0"
set KEISUU_COA="0.5"

## *** 初期値 ***
set OMEGA=$1
set COA=$2

## *** 微分のステップ ***
set dOMEGA="1.0"
set dCOA="0.01"
set OMEGA_PLUS=`echo "${OMEGA}+${dOMEGA}" | bc -l`
set OMEGA_MINUS=`echo "${OMEGA}-${dOMEGA}" | bc -l`
set COA_PLUS=`echo "${COA}+${dCOA}" | bc -l`
set COA_MINUS=`echo "${COA}-${dCOA}" | bc -l`

## *** 第一原理計算 ***
set ENE=`./dogo.sh ${OMEGA} ${COA} ${RMTOMEGA}`
echo "Center energy:" ${ENE} "(Ry)"
set ENE_OMEGA_PLUS=`./dogo.sh ${OMEGA_PLUS} ${COA} ${RMTOMEGA}`
echo "Omega plus: " ${ENE_OMEGA_PLUS} "(Ry)"
set ENE_OMEGA_MINUS=`./dogo.sh ${OMEGA_MINUS} ${COA} ${RMTOMEGA}`
echo "Omega minus: " ${ENE_OMEGA_MINUS} "(Ry)"
set ENE_COA_PLUS=`./dogo.sh ${OMEGA} ${COA_PLUS} ${RMTOMEGA}`
echo "c/a plus: " ${ENE_COA_PLUS} "(Ry)"
set ENE_COA_MINUS=`./dogo.sh ${OMEGA} ${COA_MINUS} ${RMTOMEGA}`
echo "c/a minus: " ${ENE_COA_MINUS} "(Ry)"

## *** 数値微分(中心差分) ***
set dENEdOMEGA=`echo "(${ENE_OMEGA_PLUS}+(-1*${ENE_OMEGA_MINUS}))/(2*${dOMEGA})" | bc -l`
echo ${dENEdOMEGA}
set dENEdCOA=`echo "(${ENE_COA_PLUS}+(-1*${ENE_COA_MINUS}))/(2*${dCOA})" | bc -l`
echo ${dENEdCOA}

echo ${OMEGA} ${COA} ${ENE} >> analysis/steepest.txt

set OMEGA=`echo "scale=7; (${OMEGA}-${KEISUU_OMEGA}*${dENEdOMEGA})/1.0" | bc -l`
set COA=`echo "scale=7; (${COA}-${KEISUU_COA}*${dENEdCOA})/1.0" | bc -l`
echo "Next:"
echo "./steepest.sh" ${OMEGA} ${COA}


関連エントリ




参考URL




付録


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


参考文献/使用機器




フィードバック



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

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


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


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

tag: AkaiKKR machikaneyama Scilab KKR 強磁性 シェルスクリプト 

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 ハーフメタル 強磁性 キュリー温度 状態密度 

ecaljで仮想結晶近似

ecaljの仮想結晶近似(VCA)の機能を用いてbcc Fe1-xCoxの状態密度を計算しました。
その結果、AkaiKKRでFeCoの磁気モーメントと格子定数で計算したコヒーレントポテンシャル近似(CPA)の結果と似たような挙動が確認できました。

FeCo.gif

Fig.1: 仮想結晶近似(VCA)によるbcc Fe1-xCoxの状態密度



合金の電子状態


固体物理の多くの第一原理計算パッケージでは、結晶の周期性を利用しているため不規則構造の計算が苦手です。AkaiKKR(machikaneyama)は、コヒーレントポテンシャル近似(CPA)を用いて不規則性を扱います。合金を扱うほかの方法としては、スーパーセル法(参考: AkaiKKRでスーパーセル その1)などがあります。これ以外にもCPAよりももう一歩手前の近似法として仮想結晶近似(VCA: Virtual Crystal Approximation)というものが存在します。

ecaljのマニュアルを読むと、どうやらVCAが使えるようなので、今回は体心立方構造(bcc)のFe1-xCoxの状態密度を計算してみました。

計算手順


ecaljのマニュアルのP15にはYou can use Z=37.5 for virtual crystal approximation, however, you can not do it in ctrls now. Edit it in ctrl file.のように書いてあります。そこで通常通りbcc鉄の結晶構造ファイルを作り ctrlgenM1.py--nspin=2 のオプションを与えて制御ファイルを作成します(参考: ecaljで強磁性鉄のスピン分極計算)。

この後、作成した制御ファイルの原子番号Zを編集します。例えばFe0.8Co0.2なら、原子番号が26の鉄と27のコバルトの合金なので 26*0.8 + 27*0.2 = 26.2ということだと思います。(しかしこれだとFe0.9Ni0.1でも同じ結果になってしまう?私が何か勘違いしている?)

結果


以下に計算結果の純鉄とFe0.8Co0.2の状態密度を示します。

FeCo0.png
FeCo20.png

Fig.2-3: bcc Feとbcc Fe0.8Co0.2の状態密度


コバルト濃度を増していくと、アップスピンの状態密度が低エネルギー側へ移動していくような挙動が見られました。これはAkaiKKRでFeCoの磁気モーメントと格子定数で計算した結果と似たような挙動であることが分かります。

関連エントリ




参考URL




参考文献/使用機器




フィードバック



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

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


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


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

tag: ecalj 強磁性 仮想結晶近似 VCA 

二元合金/鉄合金状態図集

AkaiKKR(machikaneyama)は不規則合金のDFT計算を得意としています。ところで世の中には、どのような合金が存在しているのでしょうか?
このような情報が一目で分かるのが、金属の状態図です。興味のある物質の状態図はGoogle画像検索などで見つかることもありますが、やはりちゃんとした文献で見ておきたいと思います。



そこで心強いのが、状態図が一覧になっている状態図集です。アグネ技術センターから二元合金状態図集鉄合金状態図集―二元系から七元系までが出版されています。

二元合金状態図集は5,600円+税で鉄合金状態図集―二元系から七元系までに至っては7,000円+税という結構なお値段ですが、とうとう購入してしまいました。

特に二元合金状態図集はAkaiKKRを使うなら持っていると便利だと思います。規則相、不規則相と共に結晶構造も書いてあり、磁性体の場合は、磁気変態温度(キュリー温度など)も載っています。

なお、二元合金状態図集の後ろのほうには、簡単な状態図の読み方の解説も載っていますが、私としては見方・考え方 合金状態図が読みやすかったので、あわせて宣伝しておきます。

関連エントリ




参考URL




フィードバック



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

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


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


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

tag: AkaiKKR machikaneyama KKR CPA 強磁性 合金 

AkaiKKRでfccNiMnの磁性と格子定数

AkaiKKR(machikaneyama)を用いて面心立方構造(fcc)の不規則NixMn100-x合金の計算を強磁性状態、反強磁性状態、非磁性状態について行いました。その結果、最安定な磁気状態や格子定数の組成依存性が実験結果を(少なくとも定性的には)再現できました。

fccNiMn.gif

Fig.1: fcc NixMn100-x不規則合金の全エネルギーと自発磁化



強磁性・反強磁性転移


志賀正幸著磁性入門―スピンから磁石まで (材料学シリーズ)工学と理学のはざまで - インバー研究の流れ -などに、不規則fccNiMn合金の格子定数と磁性の関係が議論されています。

以下に示すFig.2は工学と理学のはざまで - インバー研究の流れ -から引用したNi-Mn系の実験から得られている格子定数と磁気モーメントです。右端の純ニッケルでは 0.6 μB の磁気モーメントを持つ強磁性体ですが、マンガン濃度が増していく(ニッケル濃度が減っていく)とNi70Mn30よりマンガン側で自発磁化がなくなります。
これは、合金が非磁性になるのではなく、局所モーメントを持ったまま反強磁性体になるからであると書かれています。つまり、この系では(L12型規則相のNi3Mnを除けば)結晶構造が面心立方構造(fcc)から変化せず、格子定数と磁性だけが変化することになります。

NiMn.png

Fig.2: fcc NiMn合金の格子定数とバルクの磁気モーメント 工学と理学のはざまで - インバー研究の流れ -より


AkaiKKRでγ-Mnの反強磁性ではL10型に似た単純な反強磁性の第一原理計算をAkaiKKR(machikaneyama)を用いて行いました。今回は、この単純な反強磁性を仮定してfcc NixMn100-xの計算を行いました。

計算方法


基本的にはAkaiKKRでγ-Mnの反強磁性のときの入力ファイルをコヒーレントポテンシャル近似(CPA)を用いた合金の計算に拡張するだけです。強磁性初期ポテンシャルから、反強磁性初期ポテンシャルをつくるのには、他のパターンもあるのかもしれませんが、1種類だけを考えました。

今回もこれまで同様、強磁性、反強磁性、非磁性の入力ファイルのテンプレートを作成しておいて、格子定数と原子の濃度をパラメータとして変化させながら計算させるシェルスクリプトを作成しました。反強磁性状態の初期ポテンシャルは、強磁性状態のポテンシャルから作成しました(参考:AkaiKKRで反強磁性クロム)。以下に示すのは反強磁性状態の入力ファイルのテンプレートです。

c-----------------------L10fccMn-----------------------------
go data/L10fccNiMn_XINI_AFM_ABOHR
c------------------------------------------------------------
c brvtyp a c/a b/a alpha beta gamma
bso ABOHR , 1 , 1 , , , ,
c------------------------------------------------------------
c edelt ewidth reltyp sdftyp magtyp record
0.001 1.2 sra gga91 mag 2nd
c------------------------------------------------------------
c outtyp bzqlty maxitr pmix
update 8 500 0.023
c------------------------------------------------------------
c ntyp
2
c------------------------------------------------------------
c type ncmp rmt field mxl anclr conc
NiMn1 2 1 0.0 2 28 XINI
25 XIMN
NiMn2 2 1 0.0 2 28 XINI
25 XIMN
c------------------------------------------------------------
c natm
2
c------------------------------------------------------------
c atmicx atmtyp
0 0 0 NiMn1
1/2 0 1/2 NiMn2
c------------------------------------------------------------


計算結果と議論


冒頭のgif動画は、結果の全磁気モーメント(自発磁化)と全エネルギーを格子定数ごとにプロットしたものです。
赤が反強磁性の初期ポテンシャルから計算した結果です。反強磁性状態が保たれているか、あるいは非磁性状態になっている場合は、全磁気モーメントはゼロになります。こうニッケル濃度側では、有限の自発磁化を持ってしまい、初期ポテンシャルを反強磁性にしても強磁性の解が得られています。

同様に、緑の線で示したのが強磁性初期ポテンシャルから計算したものです。格子定数が小さくなると磁気モーメントがなくなり、非磁性になっているのが分かります。

青はスピン分極を含まない、非磁性の計算で磁気モーメントは常にゼロです。

グラフの下のパネルは、全エネルギーの比較です。
縦軸に数値は振っていませんが、同じ化学組成で相対的な比較ができるようにスケーリングしてあります。

fccNi0Mn100.png

Fig.3: fcc Mnの全エネルギーと磁気モーメント


例えば純マンガンの場合は、反強磁性状態が最安定で、格子定数は a=6.9 Bohr 付近であることが分かります。
強磁性状態と非磁性状態の比較を行うと a=7.1 Bohr 以下では強磁性が消えて、2つの計算は同じ結果を示すことがわかります。高体積側では強磁性状態に極小値がありそうです。

fccNi60Mn40.png

Fig.4: fcc Ni60Mn40の全エネルギーと磁気モーメント


ニッケル濃度を上げて行くと、強磁性状態の全エネルギーが相対的に下がっていきます。Ni60Mn40まで行くと、非磁性状態よりも強磁性状態のほうが安定になりますが、まだ反強磁性が最安定です。

fccNi75Mn25.png

Fig.5: fcc Ni75Mn25の全エネルギーと磁気モーメント


Ni75Mn25から反強磁性初期ポテンシャルの計算でも、正味の磁化が出てくるようです。強磁性計算との全エネルギー差はほとんどないのですが、磁気モーメントには違いがあるので、これらは別の解であるといえます。

fccNi85Mn15.png

Fig.6: fcc Ni85Mn15の全エネルギーと磁気モーメント


Ni85Mn15では、強磁性初期ポテンシャルの計算結果が最低エネルギー状態となります。
全エネルギーの差が小さいので、本当はどちらの磁気構造が安定なのかは微妙な議論になりますが。

次に平衡格子定数についてみてみます。
ニッケル濃度が薄い側からNi50Mn50程度までは、格子定数にほとんど変化が見られないように思います。
それよりも高濃度では、強磁性状態が安定になる前であっても低体積側へ最低エネルギーが移動しているように見えます。

これらの結果を好意的に捉えるなら、Fig.2に示した実験結果をかなりよく再現しているように思えます。

例えば、実験結果では、純ニッケルからマンガン濃度を増していったときには、自発磁化が大きくなっていき、Ni90Mn10付近で最大値をとり、その後、減少していきNi90Mn10付近で自発磁化が消滅します。
このことを踏まえて、計算結果を見てみます。強磁性初期ポテンシャルの計算だけを見ると、純ニッケルからマンガン濃度を増していくにつれて、自発磁化は単純に大きくなっていきます。しかしながら、反強磁性初期ポテンシャルの計算を見ると、単純な強磁性状態とは異なる自発磁化を持った解が得られる組成領域が存在していることが分かります。そしてその解は、本当に微妙な議論ですが、単純な強磁性初期ポテンシャルの結果よりもエネルギー的に安定な領域があってもよさそうです。
このあたりは微妙な議論なので、どの程度本当の物理を再現できているのかは難しいと思います。

関連エントリ




参考URL




付録


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


参考文献/使用機器




フィードバック



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

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


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


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

tag: AkaiKKR machikaneyama KKR CPA 強磁性 反強磁性 

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

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

最新コメント
リンク

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