TL;DR ¶
マイクロマグネティックシミュレーションソフトmumax3 で定義されている変数や関数について,原理となる式を用いて説明した. 公式が公開しているAPIページ ではよく分からなかったので,原論文 などを参考に補足説明を加えている.
mumaxを支える理論 ¶
mumaxでは,磁化の単位ベクトル$\bm{m} = \bm{m} (\bm{r}, t)$の時間発展を $$ \frac{\partial \bm{m}}{\partial t} = \bm{\tau} $$ に基づいて計算する. 右辺の$\bm{\tau}$は磁気トルク(1/s)で,具体的には以下のものが想定されている.
- Landau-Lifshitz トルク $\bm{\tau}_{LL}$
- Zhang-Li トルク $\bm{\tau}_{ZL}$ (連続系におけるスピン移行トルク)
- Slonczewski トルク $\bm{\tau}_{S}$(接合系におけるスピン移行トルク)
現状ではスピン軌道トルクは,ユーザが指定するカスタム磁場として取り入れるしかない.
Landau-Lifshitz トルク ¶
Landau-Lifshitz トルクに関わるパラメタ(有効磁場, alpha
):
mumaxでは Landau-Lifshitz トルクとして,以下を扱う
$$ \bm{\tau}_{LL}
= \frac{\gamma_{LL}}{1 + \alpha^2} \left( \bm{m} \times \bm{B} + \alpha \bm{m} \times \left( \bm{m} \times \bm{B} \right) \right)
,$$
ただし$\gamma_{LL}$は磁気回転比 (rad / T s)でユーザが大きさを変更することも可能らしい.
$\alpha$は Landau-Lifshitz 減定数(無次元)でalpha
に対応し,$\bm{B}$は有効磁場(T)である.
mumaxでは有効磁場を与えるものとして以下が扱える.
- Heisenberg 交換相互作用
- 磁気異方性
- Dzyaloshinskii-Moriya (DM) 相互作用
- 外部磁場
- 熱による擾乱
- 反磁場
- 磁気弾性結合
- ユーザが指定できるカスタム磁場
以下は磁場を与える各エネルギーについてのまとめ.
-
Heisenberg 交換相互作用(
Aex
): 交換相互作用のエネルギー密度は $$ \epsilon_{ex} = A_{ex} \bm{\nabla} \bm{m} : \bm{\nabla} \bm{m} = A_{ex} \ \partial_i \bm{m} \cdot \partial_i \bm{m} $$ で与えられるとすると,$A_{ex}$は交換スティフネス(J/m)でAex
に対応する.異なる領域をまたぐ場合の交換相互作用のふるまいは調和平均をとる. これに関しては
ext_interexchange(region1, region2, Aex)
やext_scaleexchange(region1, region2, 0.9)
などでユーザが指定できる.出力できる量として 交換相互作用に由来する有効磁場
B_exch
(T) (ただしDM相互作用の寄与も含まれる),相互作用するスピン間の最大角maxangle
(rad)がある. -
磁気異方性
-
一軸磁気異方性(
anisU
,Ku1
,Ku2
): 一軸磁気異方性エネルギー密度は $$ \epsilon_{\mathrm{anis, u}} = - K_1 (\hat{u} \cdot \bm{m})^2 - K_2 (\hat{u} \cdot \bm{m})^4 $$ で与えられるとして,$\hat{u}$がanisU
に,$K_1$, $K_2$がそれぞれKu1
,Ku2
に対応している. つまりanisU
は一軸磁気異方性方向,Ku1
: 最低次の一軸磁気異方性定数 (J/m3),Ku2
: 2次(というか4次?)の一軸磁気異方性定数 (J/m3)である. -
立方磁気異方性(
anisC1
,anisC2
,Kc1
,Kc2
,Kc3
): 立方異方性エネルギー密度は $$ \epsilon_{\mathrm{aniso, c}} = K_{c1} E_1 + K_{c2} E_2 + K_{c3} E_3, $$ ただし,$K_{c1}$, $K_{c2}$, $K_{c3}$は1, 2, 3次の立方異方性定数 (J/m3)でKc1
,Kc2
,Kc3
に対応する. $$ E_1 = (\hat{u}_1 \cdot \bm{m})^2 (\hat{u}_2 \cdot \bm{m})^2 + (\hat{u}_2 \cdot \bm{m})^2 (\hat{u}_3 \cdot \bm{m})^2 + (\hat{u}_3 \cdot \bm{m})^2 (\hat{u}_1 \cdot \bm{m})^2 ,$$ $$ E_2 = (\hat{u}_1 \cdot \bm{m})^2 (\hat{u}_2 \cdot \bm{m})^2 (\hat{u}_3 \cdot \bm{m})^2 ,$$ $$ E_3 = (\hat{u}_1 \cdot \bm{m})^4 (\hat{u}_2 \cdot \bm{m})^4 + (\hat{u}_2 \cdot \bm{m})^4 (\hat{u}_3 \cdot \bm{m})^4 + (\hat{u}_3 \cdot \bm{m})^4 (\hat{u}_1 \cdot \bm{m})^4 $$ で与えられる.ここで$\hat{u}_1$, $\hat{u}_2$, $\hat{u}_3$は立方異方性の方向である. $\hat{u}_1$はanisC1
に, $\hat{u}_2$はanisC2
に, $\hat{u}_3 = \hat{u}_1 \times \hat{u}_2$で自動的に決まる.
出力できる量として異方性磁場
B_anis
(T),全異方性エネルギー(DM相互作用も含まれる)E_anis
(J)がある. -
-
Dzyaloshinskii-Moriya (DM) 相互作用(
Dbulk
,Dind
)
バルクと界面のDM相互作用を指定できるが,同時にバルクと界面のDM相互作用は許可されない.-
バルク DM 相互作用(
Dbulk
): バルクDM相互作用のエネルギー密度は $$ \epsilon_{\mathrm{DM, bulk}} = D_{\mathrm{bulk}} \bm{m} \cdot (\bm{\nabla} \times \bm{m}) $$ で与えられる.$D_{\mathrm{bulk}}$はバルク DM 相互作用の強さ(J/m2)で,Dbulk
に対応する. -
界面 DM 相互作用(
Dind
): 界面DM相互作用のエネルギー密度は $$ \epsilon_{\mathrm{DM, int}} = D_{\mathrm{int}} [ m_z (\bm{\nabla} \cdot \bm{m}) - (\bm{m} \cdot \bm{\nabla} m_z)] $$ で与えらえる(?)$D_{\mathrm{int}}$は界面 DM 相互作用の強さ(J/m2)で,Dind
に対応する.
出力できる量として,DM相互作用を含む交換相互作用による磁場
B_exch
(T)などがある. -
-
外部磁場(
B_ext
,Msat
): Zeemanエネルギー密度は $$ \epsilon_{\mathrm{Zeeman}} = - M_s \bm{m} \cdot \bm{B}_{\mathrm{ext}} $$ で与えられる.ここで$M_s$は飽和磁化(A/m)でMsat
に対応し,$\bm{B}_{\mathrm{ext}}$は外部磁場(T)であり,B_ext
に対応する.出力できるようとしては外部磁場
B_ext
(T),ZeemanエネルギーE_zeeman
(J),Zeemanエネルギー密度Edens_zeeman
(J/m3)がある. -
熱による擾乱(
Temp
,alpha
,Msat
): 熱による擾乱を取り入れるために,熱による有効磁場$\bm{H}_{th}$を導入する. $\bm{H}_{th}$は,以下の性質を満たすとする. $$ \langle \bm{H}_{th} (\bm{r}, t) \rangle = 0, $$ $$ \langle H_{th}^{i} (\bm{r}, t) H_{th}^{j} (\bm{r}’, t’) \rangle = \frac{2 k_B T \alpha}{M_s \gamma_0} \delta^{i j} \delta (\bm{r} - \bm{r}’) \delta (t - t’) $$ ここで,$T$は温度(K)でTemp
に対応し,$k_B$はBoltzmann定数 (J/K),$\alpha$はLandau-Lifshitz減衰定数でalpha
に対応する. $\gamma_0$は磁気回転比 (rad / T s)で,$M_s$は飽和磁化 (A/m)でMsat
に対応する.出力できる量として熱による磁場
B_therm
(T),熱による磁場のエネルギーE_therm
(J),そのエネルギー密度Edens_therm
(J/m3)がある.thermseed(12345)
で熱ノイズのランダムシードを指定できる.12345
は適当な整数. -
反磁場(静磁エネルギーによる磁場)
どうも高速Fourier変換を基礎としたよく知られた畳み込みの定理に基づいて計算されるらしいがよくわかっていない.-
静磁場の効果を取り入れるかどうかは
enabledemag
で切り替えられる.1
enabledemag = false // 静磁場による効果を取り入れない
default は
enabledemag = true
になっている. -
nodemagspins
で領域ごとに静磁エネルギーの効果を取り入れるかどうかを指定できる.1
nodemagspins.setregion(5, 1) // region 5 で反磁場を考慮しない
defalut は
0
で,静磁エネルギーの効果を取り入れる. -
demagaccuracy
で静磁場のカーネルの精度を決められるようだ. -
setpbc(nx, ny, nz)
で x, y, z 方向に nx, ny, nz 個のgridの繰り返しを用意して静磁場を計算する.1
setpbc(10,0,0)
これによって反磁場のカットオフが決まる.
出力できる量として静磁場
B_demag
(T),静磁エネルギーE_demag
(J),そのエネルギー密度Edens_demag
(J/m3)がある. -
-
磁気弾性結合(
B1
,B2
): 第一磁気弾性結合定数 (J/m3), 第二磁気弾性結合定数 (J/m3). (詳しい説明が見つからなかった.) -
ユーザが指定できるカスタム磁場(
B_custom
): 文字通りユーザが指定できる磁場(T). 全ての磁気トルクは有効磁場の形で書くことができるなので,B_custom
を使えば任意の磁気トルクを計算できる(はず).
Zhang-Li トルク ¶
連続系におけるスピン移行トルクであるZhang-Liトルクは
$$
\bm{\tau}_{ZL}
= \frac{1+ \xi \alpha}{1 + \alpha^2} \bm{m} \times (\bm{m} \times (\bm{u} \cdot \bm{\nabla}) \bm{m})
+ \frac{\xi - \alpha}{1 + \alpha^2} \bm{m} \times (\bm{u} \cdot \bm{\nabla}) \bm{m}
$$
で与えられる.$\alpha$はLandau-Lifshitz減衰定数でalpha
に対応し,$\xi$は非断熱性に由来するパラメタでxi
に対応する.
$$
\bm{u} = \frac{\mu_B P}{2 e \gamma_0 M_s (1 + \xi^2)} \bm{j}
$$
である.
ここで,$\mu_B$はBohr磁子(J/T),$e$は電荷素量(C),$\gamma_0$は磁気回転比(rad / T s)で,$\bm{j}$は電流密度(A/m2)でJ
に対応し,$P$は電流のスピン偏極率(無次元)でPol
に対応し,$M_s$は飽和磁化(A/m)でMsat
に対応する.
ちなみにZahng-LiトルクはLandau-Lifshitzトルクにおける有効磁場$\bm{B}$を
$$
\gamma_0 \bm{B} = \bm{m} \times (\bm{u} \cdot \bm{\nabla}) \bm{m} + \xi (\bm{u} \cdot \bm{\nabla}) \bm{m}
$$
とおいたことに等しい.
Slonczewski トルク ¶
接合系におけるスピン移行トルクは
$$ \bm{\tau}_{S}
= \beta \frac{\epsilon - \alpha \epsilon’}{1 + \alpha^2} \left( \bm{m} \times \left( \bm{m}_P \times \bm{m} \right) \right)
- \beta \frac{\epsilon’ - \alpha \epsilon}{1 + \alpha^2} \bm{m} \times \bm{m}_P
$$
で与えられるslonczewski1996
, xiao2004
.
ここで,
$$ \beta = \frac{j_z \hbar}{M_S e d} ,$$
$$ \epsilon = \frac{P (\br, t) \Lambda^2}{\Lambda^2 + 1 + (\Lambda^2 - 1) \bm{m} \cdot \bm{m}_P} $$
である.
$j_z$は$z$方向の電流密度(A/m2)でJ
に対応していて,$e$は電荷素量(C),$d$は自由層の厚み(m)でFreeLayerThickness
に対応しており,$\bm{m}_P$は固定層の磁化を表す単位ベクトル,$P$はスピン偏極率でFixedLayer
に対応しており,$\Lambda$はSlonczewski $\Lambda$パラメタと呼ばれるもので,スペーサー層を特徴づけていてLambda
に対応する.
$\epsilon’$は第二のスピン移行トルクパラメタで,EpsilonPrime
に対応する.