スピン軌道相互作用(SOI: Spin-Orbit Interaction)は、電子のスピンと軌道運動を結びつける量子力学的効果です。本章では、その相対論的起源から始め、固体中での発現形態であるRashba効果とDresselhaus効果を学び、スピントロニクスデバイスへの応用を理解します。
1.1 スピン軌道相互作用の相対論的起源
スピン軌道相互作用は、ディラック方程式の非相対論的近似から自然に導かれます。電場$\mathbf{E}$中を速度$\mathbf{v}$で運動する電子は、静止系で有効磁場を感じます:
$$ \mathbf{B}_{\text{eff}} = -\frac{1}{c^2}\mathbf{v} \times \mathbf{E} $$この有効磁場と電子スピンの相互作用がスピン軌道相互作用です。原子内では、核のクーロン場による電場が存在します:
$$ \mathbf{E} = -\nabla V(r) = \frac{1}{e}\frac{dV}{dr}\frac{\mathbf{r}}{r} $$これらを組み合わせ、Thomas半因子(1/2)を考慮すると、SOIハミルトニアンが得られます:
$$ H_{\text{SOI}} = \frac{\hbar}{4m^2c^2}\frac{1}{r}\frac{dV}{dr}\mathbf{L} \cdot \mathbf{S} = \xi(r)\mathbf{L} \cdot \mathbf{S} $$ここで$\mathbf{L}$は軌道角運動量、$\mathbf{S}$はスピン角運動量、$\xi(r)$はスピン軌道結合定数です。
原子番号依存性
SOI強度は原子番号$Z$の4乗に比例します($\xi \propto Z^4$)。これは、重い元素ほど核電荷が大きく、内殻電子が核に近づいて高速で運動するためです。例えば:
- 軽元素(C, N, O): SOI ≈ meV
- 遷移金属(Fe, Co, Ni): SOI ≈ 10-100 meV
- 重金属(Pt, W, Ta): SOI ≈ 0.1-1 eV
コード例1.1: 原子のSOI強度の計算
"""
水素様原子のスピン軌道結合定数の計算
"""
import numpy as np
import matplotlib.pyplot as plt
def soi_coupling_constant(Z, n, l):
"""
水素様原子のSOI結合定数(eV単位)
Parameters:
Z: 原子番号
n: 主量子数
l: 方位量子数
"""
# 物理定数
alpha = 1/137 # 微細構造定数
m_e = 0.511e6 # 電子質量 (eV/c^2)
a_0 = 0.529e-10 # ボーア半径 (m)
# Rydberg エネルギー
E_n = 13.6 * Z**2 / n**2 # eV
# SOI結合定数(近似式)
if l == 0:
return 0
xi = (alpha**2 * Z**4 * 13.6) / (n**3 * l * (l + 0.5) * (l + 1))
return xi
# 様々な元素のSOI強度(2p軌道)
elements = {
'H': 1, 'C': 6, 'O': 8, 'Si': 14, 'Fe': 26,
'Cu': 29, 'Ag': 47, 'W': 74, 'Pt': 78, 'Au': 79, 'Bi': 83
}
n, l = 2, 1 # 2p軌道
Z_values = list(elements.values())
names = list(elements.keys())
xi_values = [soi_coupling_constant(Z, n, l) for Z in Z_values]
plt.figure(figsize=(12, 6))
plt.bar(names, xi_values, color='steelblue', alpha=0.7)
plt.yscale('log')
plt.xlabel('元素', fontsize=12)
plt.ylabel('SOI結合定数 ξ (eV)', fontsize=12)
plt.title('原子番号によるスピン軌道相互作用強度の変化', fontsize=14)
plt.grid(True, alpha=0.3, axis='y')
# Z^4依存性を示す補助線
Z_fit = np.array(Z_values)
xi_fit = xi_values[0] * (Z_fit / Z_values[0])**4
plt.plot(names, xi_fit, 'r--', linewidth=2, label='$Z^4$依存性')
plt.legend()
plt.tight_layout()
plt.show()
print(f"Pt(Z=78)のSOI強度はC(Z=6)の約{(78/6)**4:.0f}倍")
1.2 Rashba効果
Rashba効果は、空間反転対称性の破れた系で現れるSOIの一形態です。界面や表面など、構造的に対称性が破れた環境で重要になります。
Rashba SOIのハミルトニアンは:
$$ H_{\text{Rashba}} = \alpha_R (\boldsymbol{\sigma} \times \mathbf{k}) \cdot \hat{z} = \alpha_R (k_y \sigma_x - k_x \sigma_y) $$ここで$\alpha_R$はRashba係数、$\boldsymbol{\sigma}$はパウリ行列、$\mathbf{k}$は波数ベクトルです。
Rashba効果によるバンド分裂
2次元電子ガスに Rashba SOI が作用すると、エネルギー分散は:
$$ E_{\pm}(\mathbf{k}) = \frac{\hbar^2 k^2}{2m^*} \pm \alpha_R k $$となり、スピン縮退が解けて2つのバンドに分裂します。
コード例1.2: Rashbaバンド構造
"""
Rashba効果によるバンド分裂の可視化
"""
import numpy as np
import matplotlib.pyplot as plt
from mpl_toolkits.mplot3d import Axes3D
def rashba_energy(kx, ky, m_eff, alpha_R):
"""Rashba SOIを含む2DEGのエネルギー分散"""
hbar = 1.055e-34
k = np.sqrt(kx**2 + ky**2)
E_kinetic = (hbar**2 * k**2) / (2 * m_eff) * 6.242e18 # eVに変換
E_rashba = alpha_R * k
return E_kinetic + E_rashba, E_kinetic - E_rashba
# パラメータ
m_eff = 0.067 * 9.109e-31 # GaAsの有効質量
alpha_R = 1e-11 # Rashba係数 (eV·m)
# k空間グリッド
kx = np.linspace(-5e8, 5e8, 200)
ky = np.linspace(-5e8, 5e8, 200)
KX, KY = np.meshgrid(kx, ky)
E_plus, E_minus = rashba_energy(KX, KY, m_eff, alpha_R)
# 3D プロット
fig = plt.figure(figsize=(14, 5))
# バンド構造(3D)
ax1 = fig.add_subplot(121, projection='3d')
ax1.plot_surface(KX/1e8, KY/1e8, E_plus*1000, alpha=0.7, cmap='Reds', label='E+')
ax1.plot_surface(KX/1e8, KY/1e8, E_minus*1000, alpha=0.7, cmap='Blues', label='E-')
ax1.set_xlabel('$k_x$ (×$10^8$ m$^{-1}$)')
ax1.set_ylabel('$k_y$ (×$10^8$ m$^{-1}$)')
ax1.set_zlabel('Energy (meV)')
ax1.set_title('Rashba バンド分裂(3D)')
# 断面図(ky=0)
ax2 = fig.add_subplot(122)
idx = len(ky)//2
ax2.plot(kx/1e8, E_plus[idx,:]*1000, 'r-', linewidth=2, label='E+ (↑)')
ax2.plot(kx/1e8, E_minus[idx,:]*1000, 'b-', linewidth=2, label='E- (↓)')
ax2.axhline(y=0, color='k', linestyle='--', alpha=0.3)
ax2.set_xlabel('$k_x$ (×$10^8$ m$^{-1}$)', fontsize=12)
ax2.set_ylabel('Energy (meV)', fontsize=12)
ax2.set_title('Rashba バンド分裂($k_y=0$断面)', fontsize=14)
ax2.legend()
ax2.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
Rashba効果におけるスピンテクスチャ
Rashba SOI下では、スピンは運動量に垂直かつ面内方向を向きます。これをスピンテクスチャと呼びます。
コード例1.3: スピンテクスチャの可視化
"""
Rashba SOIによるスピンテクスチャの可視化
"""
import numpy as np
import matplotlib.pyplot as plt
def rashba_spin_texture(kx, ky):
"""Rashba SOIによるスピン方向(規格化)"""
k = np.sqrt(kx**2 + ky**2)
# E+バンド: スピンは (-ky, kx, 0) 方向
# E-バンド: スピンは (ky, -kx, 0) 方向
with np.errstate(invalid='ignore'):
sx_plus = -ky / k
sy_plus = kx / k
sx_minus = ky / k
sy_minus = -kx / k
return sx_plus, sy_plus, sx_minus, sy_minus
# k空間グリッド(極座標)
theta = np.linspace(0, 2*np.pi, 24)
k_vals = [1, 2, 3]
fig, axes = plt.subplots(1, 2, figsize=(12, 5))
for ax, (title, sign) in zip(axes, [('E+ バンド(外側)', 1), ('E- バンド(内側)', -1)]):
for k in k_vals:
kx = k * np.cos(theta)
ky = k * np.sin(theta)
sx = -sign * ky / k
sy = sign * kx / k
ax.quiver(kx, ky, sx, sy, color=plt.cm.viridis(k/4),
scale=15, width=0.01, headwidth=4)
circle = plt.Circle((0, 0), k, fill=False, linestyle='--', alpha=0.3)
ax.add_patch(circle)
ax.set_xlim(-4, 4)
ax.set_ylim(-4, 4)
ax.set_aspect('equal')
ax.set_xlabel('$k_x$', fontsize=12)
ax.set_ylabel('$k_y$', fontsize=12)
ax.set_title(title, fontsize=14)
ax.grid(True, alpha=0.3)
plt.suptitle('Rashba SOIによるスピンテクスチャ', fontsize=16)
plt.tight_layout()
plt.show()
1.3 Dresselhaus効果
Dresselhaus効果は、結晶構造自体の空間反転対称性の欠如に起因するSOIです。閃亜鉛鉱型(GaAs等)やウルツ鉱型結晶で重要です。
2次元系での線形Dresselhausハミルトニアン:
$$ H_{\text{D}} = \beta (k_x \sigma_x - k_y \sigma_y) $$ここで$\beta$はDresselhaus係数です。3次の項も存在し:
$$ H_{\text{D3}} = \gamma (k_x k_y^2 \sigma_x - k_y k_x^2 \sigma_y) $$RashbaとDresselhausの比較
| 特性 | Rashba効果 | Dresselhaus効果 |
|---|---|---|
| 起源 | 構造的反転対称性の破れ | 結晶構造の反転対称性の欠如 |
| ハミルトニアン | $\alpha_R(k_y\sigma_x - k_x\sigma_y)$ | $\beta(k_x\sigma_x - k_y\sigma_y)$ |
| スピン方向 | $\mathbf{k}$に垂直 | 対角線方向 |
| 制御性 | ゲート電圧で可変 | 結晶成長で固定 |
コード例1.4: Rashba-Dresselhaus混合系
"""
RashbaとDresselhaus SOIの混合効果
"""
import numpy as np
import matplotlib.pyplot as plt
def mixed_soi_energy(kx, ky, m_eff, alpha, beta):
"""Rashba + Dresselhaus SOIのエネルギー分散"""
hbar = 1.055e-34
k2 = kx**2 + ky**2
E_kin = (hbar**2 * k2) / (2 * m_eff) * 6.242e18
# SOI項
soi_x = alpha * ky + beta * kx
soi_y = -alpha * kx - beta * ky
E_soi = np.sqrt(soi_x**2 + soi_y**2)
return E_kin + E_soi, E_kin - E_soi
# パラメータ
m_eff = 0.067 * 9.109e-31
kx = np.linspace(-5e8, 5e8, 200)
# 異なるα/β比での分散
fig, axes = plt.subplots(1, 3, figsize=(15, 4))
cases = [
(1e-11, 0, 'Rashba only (α=1, β=0)'),
(0, 1e-11, 'Dresselhaus only (α=0, β=1)'),
(1e-11, 1e-11, 'Equal mixing (α=β)')
]
for ax, (alpha, beta, title) in zip(axes, cases):
E_plus, E_minus = mixed_soi_energy(kx, 0, m_eff, alpha, beta)
ax.plot(kx/1e8, E_plus*1000, 'r-', linewidth=2, label='E+')
ax.plot(kx/1e8, E_minus*1000, 'b-', linewidth=2, label='E-')
ax.set_xlabel('$k_x$ (×$10^8$ m$^{-1}$)', fontsize=11)
ax.set_ylabel('Energy (meV)', fontsize=11)
ax.set_title(title, fontsize=12)
ax.legend()
ax.grid(True, alpha=0.3)
plt.tight_layout()
plt.show()
# α=βの特殊ケース:Persistent Spin Helix
print("α=βの場合、[110]方向に沿ったスピンが保存される")
print("→ Persistent Spin Helix(持続的スピンヘリックス)状態")
Persistent Spin Helix
$\alpha = \beta$の特殊条件では、[110]方向に沿ったスピン成分が保存され、スピン緩和が抑制されます。これはPersistent Spin Helix(PSH)と呼ばれ、スピン情報の長距離輸送に有利です。
1.4 重金属・界面でのSOI
スピントロニクスデバイスでは、重金属(Pt, W, Ta等)の強いSOIが活用されます。
重金属薄膜でのSOI効果
- スピンホール効果(SHE): 電流からスピン流への変換
- 逆スピンホール効果(ISHE): スピン流から電流への変換
- スピン軌道トルク(SOT): 隣接磁性層の磁化制御
コード例1.5: 材料別スピンホール角
"""
様々な材料のスピンホール角とスピン拡散長
"""
import numpy as np
import matplotlib.pyplot as plt
# 実験データ(典型値)
materials = {
'Pt': {'theta_SH': 0.08, 'lambda_s': 3.0, 'Z': 78},
'Ta (β)': {'theta_SH': -0.15, 'lambda_s': 1.8, 'Z': 73},
'W (β)': {'theta_SH': -0.30, 'lambda_s': 1.4, 'Z': 74},
'Pd': {'theta_SH': 0.01, 'lambda_s': 9.0, 'Z': 46},
'Au': {'theta_SH': 0.01, 'lambda_s': 35, 'Z': 79},
'Cu': {'theta_SH': 0.003, 'lambda_s': 500, 'Z': 29},
}
names = list(materials.keys())
theta_values = [abs(m['theta_SH']) for m in materials.values()]
lambda_values = [m['lambda_s'] for m in materials.values()]
Z_values = [m['Z'] for m in materials.values()]
fig, axes = plt.subplots(1, 2, figsize=(14, 5))
# スピンホール角
ax1 = axes[0]
colors = ['red' if materials[n]['theta_SH'] < 0 else 'blue' for n in names]
bars = ax1.bar(names, [materials[n]['theta_SH'] for n in names], color=colors, alpha=0.7)
ax1.axhline(y=0, color='k', linestyle='-', linewidth=0.5)
ax1.set_ylabel('スピンホール角 θ_SH', fontsize=12)
ax1.set_title('材料別スピンホール角', fontsize=14)
ax1.grid(True, alpha=0.3, axis='y')
# スピン拡散長
ax2 = axes[1]
ax2.bar(names, lambda_values, color='steelblue', alpha=0.7)
ax2.set_yscale('log')
ax2.set_ylabel('スピン拡散長 λ_s (nm)', fontsize=12)
ax2.set_title('材料別スピン拡散長', fontsize=14)
ax2.grid(True, alpha=0.3, axis='y')
plt.tight_layout()
plt.show()
print("W, Taは負のスピンホール角を持つ(スピン方向が反転)")
print("SOT-MRAMではPtやWが広く使用される")
1.5 SOIのスピントロニクス応用
コード例1.6: SOTスイッチングのシミュレーション概念
"""
SOIベースのスピントルク効率の比較
"""
import numpy as np
import matplotlib.pyplot as plt
def sot_efficiency(theta_SH, lambda_s, t_FM, t_HM):
"""
SOTスイッチング効率の簡易モデル
Parameters:
theta_SH: スピンホール角
lambda_s: スピン拡散長 (nm)
t_FM: 強磁性体厚さ (nm)
t_HM: 重金属厚さ (nm)
"""
# スピン流の界面透過を考慮
tanh_factor = np.tanh(t_HM / (2 * lambda_s))
efficiency = abs(theta_SH) * tanh_factor
return efficiency
# パラメータスキャン
t_HM = np.linspace(0.5, 10, 100) # nm
t_FM = 1.0 # nm
materials_params = {
'Pt': {'theta_SH': 0.08, 'lambda_s': 3.0, 'color': 'blue'},
'W(β)': {'theta_SH': 0.30, 'lambda_s': 1.4, 'color': 'red'},
'Ta(β)': {'theta_SH': 0.15, 'lambda_s': 1.8, 'color': 'green'},
}
plt.figure(figsize=(10, 6))
for name, params in materials_params.items():
eff = sot_efficiency(params['theta_SH'], params['lambda_s'], t_FM, t_HM)
plt.plot(t_HM, eff, linewidth=2, color=params['color'], label=name)
plt.xlabel('重金属層厚さ (nm)', fontsize=12)
plt.ylabel('SOT効率 (相対値)', fontsize=12)
plt.title('重金属材料とSOTスイッチング効率', fontsize=14)
plt.legend()
plt.grid(True, alpha=0.3)
plt.show()
print("W(β)は高いスピンホール角により最も高いSOT効率を示す")
print("最適な重金属厚さはスピン拡散長の2-3倍程度")
章のまとめ
学んだこと
- 相対論的起源: SOIはディラック方程式から導かれ、強度は$Z^4$に比例
- Rashba効果: 構造的反転対称性の破れに起因し、ゲート電圧で制御可能
- Dresselhaus効果: 結晶構造に起因し、バルク特性として固定
- 重金属SOI: Pt, W, Taの強いSOIがスピンホール効果とSOTの起源
- 応用: SOT-MRAM、スピンFET、スピン論理素子への道
次章への準備
次章では、SOIから派生するスピン移行トルク(STT)の詳細な理論を学びます。Slonczewski-Bergerモデルに基づく磁化ダイナミクスとSTT-MRAMの設計原理を理解します。
参考文献
- Winkler, R. (2003). Spin-Orbit Coupling Effects in Two-Dimensional Electron and Hole Systems. Springer.
- Manchon, A., et al. (2015). "New perspectives for Rashba spin-orbit coupling." Nat. Mater., 14, 871-882.
- Hoffmann, A. (2013). "Spin Hall Effects in Metals." IEEE Trans. Magn., 49(10), 5172-5193.