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 強磁性 反強磁性 

ecaljで反強磁性NiO

ecaljで強磁性鉄のスピン分極計算では、ecaljのマニュアルに従って、スピン分極計算の例として強磁性の体心立方構造(bcc)鉄の計算を行いました。
今回は、反強磁性の計算例として、やはりマニュアル通り、NiOの計算を行いました。

001_20150927023611089.png

Fig.1: 反強磁性NiOのバンド構造



反強磁性半導体NiO


ecaljで強磁性鉄のスピン分極計算では、金属強磁性体のbcc鉄の計算を行いました。今回はecaljを用いて反強磁性半導体であるNiOの計算を行います。
とはいえbcc鉄のときと同様に行う事は結晶構造ファイル ctrls.nio に初期モーメントを反強磁性になるように与えることと制御ファイルにnspin=2を設定することだけです。

結晶構造ファイル ctrls.nio (初期スピンモーメントの指定)


(前回もそうでしたが)結晶構造ファイルは~/ecalj/MATERIALS/にあるものをそのまま使います。もし存在しないようならMATERIALSディレクトリでjob_marerials.pyのスクリプトを(--noexecオプション付きで)実行するとファイルが作成されると思います。
#id  = NiO
# NOTE set MMOM. (it will be included in this...)
%const bohr=0.529177 a=7.88
STRUC ALAT={a} PLAT= 0.5 0.5 1.0 0.5 1.0 0.5 1.0 0.5 0.5
SITE ATOM=Niup POS= .0 .0 .0
ATOM=Nidn POS= 1.0 1.0 1.0
ATOM=O POS= .5 .5 .5
ATOM=O POS= 1.5 1.5 1.5
SPEC
ATOM=Niup Z=28 MMOM=0 0 1.2 0
ATOM=Nidn Z=28 MMOM=0 0 -1.2 0
ATOM=O Z=8 MMOM=0 0 0 0

ecaljで強磁性鉄のスピン分極計算で書いた通り、スピン分極を含む計算を行うときには、初期スピンモーメントを与えておく必要があります。反強磁性にするために重要な点は、アップスピンとダウンスピンのニッケルに符号が逆の初期モーメントを与えておくことです。

SITE で定義する ATOM はサイト名です。これまでは単純に原子の名前を付けてきましたが、同じ原子でもサイトが異なれば、別の名前を付ける必要があります(だと思います)。今回は同じニッケルでもNiupとNidnの2種類が存在します。これらが何の原子であるかを指定するために SPEC にて 原子番号 Z=28 が指定されています。酸素に関しても SPEC で指定されていますが、結晶の中でどれか一つでも SPEC を書いたなら(今回はNiupとNidn)、すべての原子について SPEC に原子番号やスピンモーメントを指定しなければなりません(だったと思います)。

制御ファイル ctrl.nio (スピン分極計算の設定)


ecaljで強磁性鉄のスピン分極計算のときと同様です。
ctrlgenM1.py nio --nspin=2
cp ctrlgenM1.ctrl.nio ctrl.nio


002_20150927023610043.png

Fig.2: 反強磁性NiOの状態密度


関連エントリ




参考URL




参考文献/使用機器




フィードバック



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

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


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


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

tag: ecalj 反強磁性 半導体 

AkaiKKRでγ-Mnの反強磁性

AkaiKKR(machikaneyama)を用いて、L10型構造のようにスピンが配置されている面心立方構造(fcc)のマンガン(γ-Mn)の全エネルギーと局所モーメントを計算しました。
AkaiKKRで反強磁性クロムAkaiKKRで反強磁性fcc鉄のときとは異なり、ちゃんと反強磁性状態がエネルギー的に安定であるという結果が得られました。

001_201506221048228b2.png 002_20150622104821ee3.png



γ-Mnの反強磁性


マンガンは室温で体心立方構造(bcc)に近い結晶構造を持つ複雑な反強磁性体です(α-Mn)。温度を上げていくとβ-Mnへ相転移しますが、この結晶構造もやはり複雑なものです。
しかしながら1095℃以上では、単純なfcc構造を持つ単純な反強磁性体に相転移します(γ-Mn)。このときの局所磁気モーメントはAkaiKKRで反強磁性fcc鉄で考えた第1種反強磁性と同じくL10型の配置をしています。

001_20150616101545812.png

Fig.1: fcc鉄の第一種反強磁性。異なる向きのスピンをもつ原子がL10型構造のように配置されている。FCC鉄の磁気構造より。γ-Mnも同様の磁気構造を持つ。


入力ファイルとシェルスクリプト


基本的にはAkaiKKRで反強磁性fcc鉄で行っているものと同じ計算です。入力ファイルのテンプレートとシェルスクリプトを以下に示します。


#!/bin/csh -f

## *** フォルダ構造 ***
## fccMn/─┬─analysis/
## ├─in/─L10fccMn_FMG.in
## ├─out/
## ├─data/
## ├─template/┬─L10fccMn_AFM_Template.in
## │ ├─L10fccMn_NMG_Template.in
## │ └─L10fccMn_FMG_Template.in
## ├─L10fccMn
## ├─L10fccMn.sh
## └─L10fccMn-Result.sh

## *** 格子定数のリスト ***
set ABOHR_LIST=( 7.4 7.3 7.2 7.1 7.0 6.9 6.8 6.7 6.6 6.5 6.4 6.3 6.2 6.1 6.0 )

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

## *** 強磁性初期ポテンシャルの作成 ***
if ( ! -e data/${POTENTIAL}_AFM ) then
specx < in/${PROJECT}_FMG.in > out/${PROJECT}_FMG.out
fmg < ${PROJECT}
endif

## *** 繰り返し計算 ***
foreach ABOHR ( ${ABOHR_LIST} )
## 強磁性
if ( ! -e data/${POTENTIAL}_FMG_${ABOHR} ) then
if ( -e data/${POTENTIAL}_FMG ) then
cp data/${POTENTIAL}_FMG data/${POTENTIAL}_FMG_${ABOHR}
endif
endif
sed 's/'ABOHR'/'${ABOHR}'/g' template/${PROJECT}_FMG_Template.in > in/${PROJECT}_FMG_${ABOHR}.in
specx < in/${PROJECT}_FMG_${ABOHR}.in > out/${PROJECT}_FMG_${ABOHR}.out
cp data/${POTENTIAL}_FMG_${ABOHR} data/${POTENTIAL}_FMG

## 反強磁性
if ( ! -e data/${POTENTIAL}_AFM_${ABOHR} ) then
if ( -e data/${POTENTIAL}_AFM ) then
cp data/${POTENTIAL}_AFM data/${POTENTIAL}_AFM_${ABOHR}
endif
endif
sed 's/'ABOHR'/'${ABOHR}'/g' template/${PROJECT}_AFM_Template.in > in/${PROJECT}_AFM_${ABOHR}.in
specx < in/${PROJECT}_AFM_${ABOHR}.in > out/${PROJECT}_AFM_${ABOHR}.out
cp data/${POTENTIAL}_AFM_${ABOHR} data/${POTENTIAL}_AFM

## 非磁性
if ( ! -e data/${POTENTIAL}_NMG_${ABOHR} ) then
if ( -e data/${POTENTIAL}_NMG ) then
cp data/${POTENTIAL}_NMG data/${POTENTIAL}_NMG_${ABOHR}
endif
endif
sed 's/'ABOHR'/'${ABOHR}'/g' template/${PROJECT}_NMG_Template.in > in/${PROJECT}_NMG_${ABOHR}.in
specx < in/${PROJECT}_NMG_${ABOHR}.in > out/${PROJECT}_NMG_${ABOHR}.out
cp data/${POTENTIAL}_NMG_${ABOHR} data/${POTENTIAL}_NMG
end


結果と議論


以下に計算した全エネルギーと局所モーメントを示します。


001_201506221048228b2.png
Fig.2: 全エネルギー

002_20150622104821ee3.png
Fig.3: 局所磁気モーメント


反強磁性状態が最安定になりました。
AkaiKKRで反強磁性クロムAkaiKKRで反強磁性fcc鉄のときには、複雑な反強磁性の代わりとして、単純な反強磁性の計算を行いました。
これに対して、今回のγ-Mnは本当に単純な反強磁性が実験的にわかっている系だけあって、第一原理計算からもこのことが確認できました。

関連エントリ




参考URL




付録


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


参考文献/使用機器




フィードバック



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

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


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


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

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

AkaiKKRで反強磁性fcc鉄

AkaiKKR(machikaneyama)を用いて、強磁性、非磁性、簡単な反強磁性状態のfcc鉄の全エネルギーを計算しました。その結果、低温におけるfcc鉄は何らかの磁性を持つであろうことがわかりました。

001_20150616101545812.png

Fig.1: fcc鉄の第一種反強磁性。異なる向きのスピンをもつ原子がL10型構造のように配置されている。FCC鉄の磁気構造より



第一種反強磁性fcc鉄


鉄は室温で体心立方構造(body-centered cubic; bcc)を取る強磁性体です。そして910℃以上で面心立方構造(face-centered cubic; fcc)へと相転移します。bcc鉄のキュリー温度は770℃であるので、高温下におけるfcc鉄も常磁性です。

これに対して、もし室温でfcc構造の鉄が存在した場合、どのような磁性を持つのかは興味深い問題です。スピン密度はを持つ複雑な反強磁性であるというのが現在の理解であるようですが(参考: FCC鉄の磁気構造)、差し当たりAkaiKKRで反強磁性クロムのときと同様に、Fig.1のような簡単な反強磁性を仮定して第一原理計算を行います。
これはCuAu合金などにみられるL10構造と同じ形をしています。結晶系は、とりあえず簡単のため立方晶(cubic)であると仮定します。

AkaiKKRの入力ファイル


AkaiKKRの入力ファイルはブラべ格子と基底の組み合わせで表されます(参考: AkaiKKRのブラベ格子)。L10構造は、直感的に言えば、底心立方格子(base-centered cubic; bsc)の(0 0 0)と(1/2 0 1/2)に原子を置いた結晶構造です。ですが、当然ながら底心立方格子というブラべ格子は存在しない(単純正方格子(simple tetragonal)と等価)ので指定できません。もちろん単純正方として入力ファイルを作ってもよいのですが、格子定数fcc構造と異なってしまいややこしいのでc/a=1, b/a=1とした底心斜方格子(bso)で代用することにします。

入力ファイルの一例は以下のようになりました。

c-------------------------fccFe------------------------------
go data/fccFeAFMI
c------------------------------------------------------------
c brvtyp a c/a b/a alpha beta gamma
bso 6.9 , 1 , 1 , , , ,
c------------------------------------------------------------
c edelt ewidth reltyp sdftyp magtyp record
0.001 2.0 sra gga91 mag 2nd
c------------------------------------------------------------
c outtyp bzqlty maxitr pmix
update 8 200 0.023
c------------------------------------------------------------
c ntyp
2
c------------------------------------------------------------
c type ncmp rmt field mxl anclr conc
Fe1 1 1 0.0 2 26 100
Fe2 1 1 0.0 2 26 100
c------------------------------------------------------------
c natm
2
c------------------------------------------------------------
c atmicx atmtyp
0 0 0 Fe1
1/2 0 1/2 Fe2
c------------------------------------------------------------


この反強磁性状態のものと強磁性、非磁性(スピン分極なし)の格子定数aを6.0-7.4 Bohrの範囲で全エネルギーを求めました。

結果と議論


全エネルギーと各原子の磁気モーメントの大きさをそれぞれFig.2-3に示します。

002_20150616101404f34.png
Fig.2: 全エネルギー

003_20150616101403636.png
Fig.3: 磁気モーメント


全エネルギーの比較からfcc構造における鉄は非磁性状態よりも反強磁性状態の方が安定であるという結果が得られました。しかしながら、最安定なのは強磁性状態という事になってしまいました。
このあたりはAkaiKKRで反強磁性クロムのときと同様にbzqltyが低いのか(参考: AkaiKKRでFeCoの磁気モーメントと格子定数)、整合反強磁性を仮定したためなのか良く分かりません。

また、各原子の局所スピンモーメントの大きさを比較したところ、格子定数を小さくしていったとき、反強磁性の方がスピンモーメントがじわじわと変化し、強磁性の方がスパッと変化をするようです。

関連エントリ




参考URL




付録


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


参考文献/使用機器




フィードバック



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

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


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


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

tag: AkaiKKR machikaneyama KKR 反強磁性 強磁性 面心立方構造 fcc L10構造 

Scilabでイジング模型 その4

Scilabでイジング模型 その2では一次元のイジング模型の磁区が形成されていく様子をシミュレーションしました。
今回はイジング模型のモンテカルロシミュレーションから巨視的な物理量(エネルギーや磁化など)の計算を行います。
巨視的な系のエネルギー<E>は、状態|αj>におけるエネルギーE(αj)の統計平均として以下のように表されます。

\langle E \rangle = \sum_{\alpha_j}E(\alpha_j)P(\alpha_j)
P(\alpha_{j})=\frac{1}{Z(T)}\exp\left(- \frac{E(\alpha_{j})}{kT} \right)
Z(T)=\sum_{\alpha_j}\exp\left(-\frac{E(\alpha_j)}{kT}\right)

しかしながら、実際には分配関数Z(T)を計算するのが困難であるので、P(αj)に比例した確率で|αj>が出現するようなモンテカルロシミュレーションをm回行い、その平均から

\langle E \rangle = \frac{1}{m} \sum_{t=1}^{m}E_{t}(\alpha)

のように計算を行います。


一次元イジング模型における巨視的な物理量


Scilabでイジング模型 その2では一次元のイジング模型の磁区が形成されていく様子をシミュレーションしました。
今回はイジング模型のモンテカルロシミュレーションから巨視的な物理量(エネルギーや磁化など)の計算を行います。

n粒子スピン系におけるある状態ベクトル|αj>における系のエネルギーは以下のようになることをScilabでイジング模型 その2にも書きました。

E(\alpha_{j}) = - J \sum_{i=1}^{n-1}s_{i}s_{i+1}

よってある温度Tのときの状態|αj>が決まれば、系のエネルギーが決まることになりますが、実際には一意に決まるわけではなく、ボルツマン因子exp(-E(αj)/kT))に比例した確率P(αj)で色々な状態を取り得ます。

P(\alpha_{j})=\frac{1}{Z(T)}\exp\left(- \frac{E(\alpha_{j})}{kT} \right)
Z(T)=\sum_{\alpha_j}\exp\left(-\frac{E(\alpha_j)}{kT}\right)

ここでZ(T)は分配関数と呼ばれすべての状態の和です。

ひとたび確率P(αj)が求まれば、巨視的な物理量<A>は状態|αj>における物理量A(αj)を用いて以下のようにあらわすことができます。

\langle A \rangle = \sum_{\alpha_j}A(\alpha_j)P(\alpha_j)

例えばエネルギーEの場合は以下のようになります。

\langle E \rangle = \sum_{\alpha_j}E(\alpha_j)P(\alpha_j)

しかし実際にZ(T)をすべて計算するのは不可能です。代わりにP(αj)に比例した確率で|αj>を出現させるアルゴリズムがメトロポリスのアルゴリズムでした。

そこで系の巨視的なエネルギー(等の物理量)を計算する際には、メトロポリスのアルゴリズムを複数回繰り返して得られた状態に対するエネルギーの平均を代わりに用います。m回繰り返す場合は

\langle E \rangle = \frac{1}{m} \sum_{t=1}^{m}E_{t}(\alpha)

となります。

他にも微分方程式による物理現象のモデル化(PDF)には磁化M、比熱C、磁化率χの表式が以下のように与えられています。

M(\alpha_j)=\sum_{i=1}^{n}s_i
\langle M \rangle = \frac{1}{m} \sum_{t=1}^{m}M_{t}(\alpha)

C = \frac{\langle E^2 \rangle - \langle E \rangle^2}{kT}

\chi = \frac{\langle M^2 \rangle - \langle M \rangle^2}{kT}

Scilabスクリプト


これらを踏まえたScilabスクリプトを以下に示します。

clear;

// *** 定数の設定 ***
n = 100; // 粒子の数
m = 200; // 熱力学的な平均を取る回数
J = 1; // 交換エネルギー
rand("uniform"); // 乱数は一様乱数とする
tmax = 5 * n; // 時間の最大ステップ
h = 0.0; // 外部磁場
// 温度
ktmin = 0.5; // 最低温度
ktmax = 5.0; // 最高温度
nkt = 19; // 温度の分割数
//T = linspace(ktmin, ktmax, nkt); // 低温から開始
//spin = ones(1,n); // 各粒子におけるスピン(コールドスタート)
T = linspace(ktmax, ktmin, nkt); // 高温から開始
spin = 1 - 2 * round(rand(1,n)); // 各粒子におけるスピン(ランダム)

// *** エネルギーの計算関数 ***
function e = energy(spin)
e = - J * sum(spin .* [spin(2:n), spin(1)]) - h * sum(spin);
endfunction

// *** 行列の初期化 ***
E = []; // エネルギーの和
E2 = []; // エネルギーの二乗の和
M = []; // 磁化の和
M2 = []; // 磁化の二乗の和

// *** 温度のループ ***
for kt = 1:nkt do
// エネルギーの初期化
ene1 = 0; // エネルギーの和
ene2 = 0; // エネルギーの二乗和
// 磁化の初期化
mag1 = 0; // 磁化の和
mag2 = 0; // 磁化の二乗和f
// *** 熱力学平均のループ ***
for samp = 1:m do
// *** 時間発展のループ ***
for t = 1:tmax do
oldenergy = energy(spin);
element = ceil(n * rand()); // 粒子を一つ選ぶ
spin(element) = -1 * spin(element); // スピンを反転
newenergy = energy(spin);
if (newenergy > oldenergy) & (exp((- newenergy + oldenergy) / T(kt)) < rand()) then
spin(element) = -1 * spin(element); // 棄却
end
end
ene1 = ene1 + energy(spin); // エネルギーの和
ene2 = ene2 + energy(spin)^2; // エネルギーの二乗の和
mag1 = mag1 + sum(sum(spin)); // 磁化の和
mag2 = mag2 + sum(sum(spin))^2; // 磁化の二乗和
end
E = [E, ene1 / m]; // エネルギーの和
E2 = [E2, ene2 / m]; // エネルギーの二乗の和
M = [M, mag1 / m]; // 磁化の和
M2 = [M2, mag2 / m]; // 磁化の二乗和
end

// *** エネルギーと磁化の揺らぎ ***
C = (E2 - E .^ 2) ./ (n * T .^ 2); // 比熱
X = (M2 - M .^ 2) ./ (n * T); // 磁化率

// *** 厳密解の計算 ***
// 温度ベクトル
Ta = linspace(0.1,5,50);
// 粒子1個あたりの平均エネルギー
Ea = - tanh(J ./ Ta);
// 比熱
Ca = (J ./ Ta) .^ 2 ./ cosh(J ./ Ta) .^ 2;
// 磁化
Ma = sinh(h ./ Ta) ./ sqrt(sinh(h ./ Ta) .^ 2 + exp(-4 * J ./ Ta));
// 磁化率
Xa = exp(2 * J ./ Ta) ./ Ta;
RXa = 1 ./ Xa;

// *** グラフのプロット ***
// エネルギー
subplot(2,2,1);
plot(T, E ./ n, 'or');
plot(Ta, Ea, '--g');
xlabel("kT/J");
ylabel("E/NJ");
// 比熱
subplot(2,2,2);
plot(T, C, 'or');
plot(Ta,Ca,'--g');
xlabel("kT/J");
ylabel("C/Nk");
// 磁化
subplot(2,2,3);
plot(T, M ./ n, 'or');
plot(Ta,Ma ./ n,'--g');
xlabel("kT/J");
ylabel("M/N");
// 磁化率
subplot(2,2,4);
plot(T, 1 ./ X, 'or');
plot(Ta,RXa,'--g');
xlabel("kT/J");
ylabel("N/JX");


結果はScilabでイジング模型 その1と同様になります(なので下記の画像は使いまわしです)。コードもほとんど同じです。

001_20141130214554d90.png

Fig.1: 一次元のイジングモデル


関連エントリ




参考URL




付録


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


参考文献/使用機器




フィードバック



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

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


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


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

tag: Scilab 確率論 乱数 イジング模型 モンテカルロ解析 強磁性 反強磁性 

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

LTspiceAkaiKKRmachikaneyamaScilabKKRPSoCOPアンプPICCPA強磁性常微分方程式モンテカルロ解析odeトランジスタ状態密度インターフェーススイッチング回路ecaljPDS5022DOS定電流半導体シェルスクリプト乱数レベルシフトHP6632Aブレッドボード分散関係温度解析R6452Aトランジスタ技術I2C可変抵抗反強磁性セミナー数値積分確率論偏微分方程式バンド構造非線形方程式ソルババンドギャップ絶縁熱設計シュミットトリガLEDA/Dコンバータ三端子レギュレータLM358ISO-I2CGW近似カオスフォトカプラマフィンティン半径TL431数値微分PC817Cアナログスイッチ直流動作点解析発振回路USBサーボカレントミラー74HC4053パラメトリック解析LDAbzqltyチョッパアンプ量子力学FFT2ちゃんねるアセンブラBSch開発環境電子負荷ブラべ格子イジング模型補間基本並進ベクトル標準ロジック単振り子キュリー温度繰り返しMaxima状態方程式失敗談相対論スピン軌道相互作用FETランダムウォーク熱伝導六方最密充填構造コバルトewidthTLP621GGAQSGW不規則合金位相図抵抗SMPcygwinラプラス方程式スレーターポーリング曲線gfortranスイッチト・キャパシタ詰め回路TLP552三角波格子比熱TLP521条件分岐LM555MCUNE555QNAPマントルテスタ過渡解析FXA-7020ZRダイヤモンドデータロガーガイガー管自動計測Writer509UPSシュレディンガー方程式ブラウン運動awk差し込みグラフ熱力学平均場近似仮想結晶近似VCAfsolve井戸型ポテンシャルVESTA起電力スーパーセルOpenMP第一原理計算ubuntu固有値問題L10構造OPA2277interp12SC1815fccウィグナーザイツ胞面心立方構造フィルタジバニャン方程式ヒストグラム確率論マテリアルデザインspecx.f等高線正規分布PGAフェルミ面非線型方程式ソルバ初期値固定スピンモーメントスワップ領域ルチル構造リジッドバンド模型edeltquantumESPRESSO岩塩構造BaOSIC二相共存ZnOウルツ鉱構造フォノンデバイ模型c/aノコギリ波全エネルギーFSMTeXgnuplotmultiplotハーフメタルCapSense半金属合金結晶磁気異方性Ubuntu文字列入出力TS-110TS-112疎行列Excel直流解析ヒストグラム円周率不規則局所モーメントトラックボールPC等価回路モデルパラメータ・モデルキーボードRealforce三次元マンデルブロ集合フラクタル化学反応重積分縮退日本語最小二乗法関数フィッティングGimpMAS830LHiLAPW熱拡散方程式両対数グラフナイキスト線図負帰還安定性陰解法Crank-Nicolson法P-10クーロン散乱境界条件連立一次方程式片対数グラフEAGLEPIC16F785LMC662トランスシンボルCK1026線種凡例MBEAACircuitグラフの分割軸ラベルifort

最新コメント
リンク

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