VASP自旋螺旋与交换参数拟合
用bcc铁的小波矢能量拟合两壳层交换模型,并用留出的方向检验。
阅读本篇目录
交换参数J把不同磁构型的能量差压缩成较简单的磁相互作用模型。它不是从一个OUTCAR直接读取的唯一材料常数:哈密顿量定义、邻居截断、磁矩约束和拟合数据都会影响结果。本例用bcc Fe的自洽平面自旋螺旋能量,演示两壳层拟合与独立方向检验。
1. 准备同一个铁原胞#
晶格常数2.87 Å、一个Fe的bcc原胞,PBE PAW64、ENCUT=700 eV、ENINI=550 eV、7³Gamma网格、EDIFF=1E-6。固定晶胞与原子位置,在每个q上重新自洽。运行vasp/6.6.1-p100模块的vasp_ncl,NVHPC 25.3/CUDA 12.8构建。
先计算q=0参照,再计算q=t(1,0,0)、t(1,1,0)、t(1,1,1),t取0.05、0.10、0.15。这里三个分量是本例原胞倒格矢坐标,不能直接当成立方常规晶胞的[100]、[110]、[111]方向。
附件calculations中的fe-spiral-0.000及九个fe-q目录已有输入;准备合法Fe POTCAR,在各目录sbatch run.sh。关键参数如下,其余沿用完整附件:
LNONCOLLINEAR = .TRUE.
LSPIRAL = .TRUE.
LZEROZ = .TRUE.
ISYM = -1
MAGMOM = 2.5 0 0
QSPIRAL = 0.05 0 0
不同目录只改变QSPIRAL。LZEROZ约束为平面磁化,但不固定磁矩幅度。本例还以I_CONSTRAINED_M=1、LAMBDA=0、RWIGS=1.2记录球内磁矩;零惩罚参数用于读取M_int,不意味着强制固定磁矩。
2. 定义模型再提取能差#
采用单位方向矢量eᵢ,并明确每对只计一次:
H = −½ Σᵢⱼ Jᵢⱼ eᵢ·eⱼ。
只保留bcc第一、第二邻居壳层,配位数分别为8、6。单原子平面螺旋相对q=0的每原子能差为:
ΔE(q) = ½ Σᴿ Jᴿ [1−cos(2πq·R)]。
R为原胞整数平移坐标。若使用不带½的求和定义,或把自旋长度并入J,数值约定会改变,不能直接比较不同文献的J。
所有电子步收敛后,在附件根目录运行:
module load ase/3.29.0
python extract_exchange.py
脚本从vasprun.xml读取能量,从OSZICAR读取球内磁矩;使用(1,0,0)和(1,1,1)方向的六个能差拟合J₁、J₂,(1,1,0)方向三个点只用于检验。选择方向先检查设计矩阵的秩:本例若只用(1,0,0)和(1,1,0),两列系数相同,只能确定J₁+J₂,不能分别求两个J。
3. 本例实际结果#
| 量 | 结果 |
|---|---|
| J₁ | -17.64558 meV |
| J₂ | 56.44409 meV |
| 六点拟合RMSE | 2.17925 meV/Fe |
| 留出方向RMSE | 9.03102 meV/Fe |
| 拟合矩阵条件数 | 32.03 |
| 球内磁矩相对参照的最大变化 | 4.012% |
| 原胞倒格方向 | t | VASP ΔE / meV | 模型 ΔE / meV | 用途 |
|---|---|---|---|---|
| 100 | 0.05 | 4.5407 | 3.7979 | 拟合 |
| 100 | 0.10 | 12.8178 | 14.8197 | 拟合 |
| 100 | 0.15 | 29.7431 | 31.9866 | 拟合 |
| 110 | 0.05 | 10.9052 | 11.2077 | 检验 |
| 110 | 0.10 | 41.7078 | 41.6288 | 检验 |
| 110 | 0.15 | 98.4136 | 82.7745 | 检验 |
| 111 | 0.05 | 20.0858 | 22.4749 | 拟合 |
| 111 | 0.10 | 87.3248 | 83.7973 | 拟合 |
| 111 | 0.15 | 164.5437 | 165.4100 | 拟合 |

4. 如何判断自己的拟合能不能用#
本例留出方向误差约9.03 meV/Fe,明显大于拟合误差。把九点全部用于拟合时,J₁变成+6.25058 meV、J₂变成36.76244 meV,连J₁符号都发生变化。这说明两壳层模型与当前采样不足以稳定确定单独的J;上表负J₁不能作为铁第一邻居反铁磁交换的材料结论。
先看留出数据能否复现,再检查磁矩是否明显变化、J对邻居壳层和q区间是否敏感。小q主要约束长波组合量,两个J可能高度相关;条件数较大时,低拟合误差也不表示每个J稳定。本例采用固定网格和两壳层,仅作流程参考,没有给出收敛的铁交换常数。
这里没有SOC,也没有提取DMI;两壳层各向同性交换不能代替完整磁哈密顿量。若要居里温度,还需适当的统计采样、体系尺寸和相互作用收敛,不能把J直接换算成实验Tc。
方法参考:VASP自旋螺旋。