GPAW专题

GPAW磁性与SOC

bcc Fe铁磁、反铁磁初态与非自洽SOC本征值的实际操作。

更新于 2026-10-28约 2 分钟阅读按任务与环境选择适用配置
阅读本篇目录

下载完整Python输入、原始结果、CSV和绘图脚本。以下短命令在解压目录、已分配的CPU资源中执行,输出写入 work/。本模块为CPU构建,加载GPU资源不会自动启用GPU计算。

1 准备自旋初态#

bash run.sh fe-fm
bash run.sh fe-afm

本例2原子bcc Fe常规胞,a=2.87 Å、PBE、PW250 eV、3×3×3网格、Fermi–Dirac展宽0.05 eV。两份结构相同,仅初始磁矩不同:

atoms.set_initial_magnetic_moments([2, 2])   # FM初态
# 另一目录用 [2, -2] 作为AFM初态
结果 原胞总能/eV 原胞总磁矩/μB 局域磁矩/μB
FM支路 −17.61439185 4.43923 约+2.2482、+2.2482
AFM支路 −16.64313111 接近0 约+1.4221、−1.4221

本例的AFM支路确有相反局域磁矩;仅看总磁矩为0不能区分反铁磁和非磁。局域投影磁矩与全空间总磁矩也不必严格相加相同。

查看自己计算的最终磁矩:

python - <<'MAG'
from gpaw import GPAW
calc = GPAW('work/fe-afm/state.gpw', txt=None)
print(calc.get_magnetic_moments())
print(calc.get_magnetic_moment())
MAG

2 保存波函数,再做SOC#

bash run.sh soc

前提是FM目录已完成并保存 state.gpw。核心接口:

from gpaw import GPAW
from gpaw.spinorbit import soc_eigenstates
calc = GPAW('work/fe-fm/state.gpw', txt='restart.txt')
soc = soc_eigenstates(calc, theta=0)
energies = soc.eigenvalues()

本次全BZ输出形状27×48,比较theta=0°和90°两个自旋量子化方向。GPAW官方SOC说明将其定义为基于已收敛标量相对论态的非自洽SOC对角化。

Fe磁矩及SOC本征值方向对照

3 单条本征值差不是磁晶各向异性能#

同一k点的能带会发生分裂、简并和顺序变化,按列相减不自动匹配同一轨道特征。本例图右只显示本征值变化;最大差约0.1057 eV,不把它报告为MAE。

磁晶各向异性需要一致占据、能量定义、充分k网格和相应精度,还应判断是否需要自洽SOC。这里的3×3×3网格仅供操作演示,不作为微小各向异性能的生产设置。

4 替换自己的磁性材料#

先选择有物理意义的初态和磁性超胞,分别检查SCF与最终局域磁矩,再比较能量。初始磁矩不是最终约束;SOC结果也应注明方向、能带截断和是否自洽。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗