VASP与穆斯堡尔分析的局域参数
用立方及四方畸变Fe,学习电场梯度、核素设置和超精细接触项的读取。
阅读本篇目录
穆斯堡尔分析涉及核能级与局域电子环境。VASP可以提供电场梯度、磁超精细相关量等输入,但还需要核态参数、参照标定和谱模型,才能与完整实验谱比较。本文用Fe的三个实际计算,先把可直接读取的局域量讲清楚。
1. 建立同体积的三个Fe模型#
以a=2.87 Å的bcc Fe常规晶胞为参照,包含两个Fe原子。保持分数坐标,z方向分别缩短3%、不变、伸长3%;x、y方向同时乘以(1+εz)⁻¹ᐟ²,使体积保持约23.639903 ų。
这是指定畸变的静态比较,不是搜索平衡晶胞。对称位置的原子力为零,也不表示外加形变下的应力为零。若研究实际相的平衡结构,应先按相应约束完成结构优化。
三个目录采用PBE PAW64、550 eV、EDIFF=1E-6、11×11×11 Gamma网格,自旋极化并给予每个Fe 2.5 μB的初始磁矩。
2. 打开EFG与磁超精细输出#
ISPIN = 2
MAGMOM = 2*2.5
LEFG = .TRUE.
LHYPERFINE = .TRUE.
NGYROMAG = 1.3815642187
QUAD_EFG = 0.0
NSW = 0
本例选择⁵⁷Fe基态核旋磁比,按IUPAC 2001表中的0.8680624×10⁷ rad/(s·T)除以2π,再换为MHz/T,得到约1.381564。IUPAC核自旋参数表
QUAD_EFG=0对应所选基态I=1/2的电四极矩设置。因此程序打印的这一设置下Cq为零,不代表受畸变Fe的EFG为零,更不能把它直接用于穆斯堡尔激发核态的四极分裂。后者需要激发态自身的I和Q。
各目录准备合法Fe POTCAR后提交:
sbatch run.sh
3. 读取本例EFG和接触项#
module load ase/3.29.0
python extract_mossbauer_inputs.py
脚本读取OUTCAR中的Electric field gradients和Fermi contact表。两个Fe在各自晶胞中等价,下表列出一个Fe的结果。这里的Vzz是固定笛卡尔z方向分量,三个模型都沿该方向施加形变。
| εz | Vzz / V·Å⁻² | A_tot / MHz | A_1c / MHz | A_tot+A_1c / MHz |
|---|---|---|---|---|
| -3.0% | -4.250 | -0.765 | -17.297 | -18.062 |
| +0.0% | 0.000 | -0.010 | -17.205 | -17.215 |
| +3.0% | 4.552 | -0.288 | -17.226 | -17.514 |

立方模型的EFG在输出精度下为零,四方畸变后出现非零EFG并随形变符号改变。接近零的EFG不适合用相除得到的非对称参数η作物理解读。
VASP的A_tot不含芯层接触贡献A_1c,比较时应注明是否加上。本例芯层贡献明显,忽略它会改变对接触项大小的判断。LHYPERFINE输出定义
4. 从这些量走向实验谱还需要什么#
这里的A使用VASP总电子自旋归一化约定,脚本同时保存Total magnetic moment S;它不是可直接当作特斯拉数值的超精细磁场。核素参数、电子自旋归一化以及所含接触、偶极、轨道项都要一致,不能简单把MHz改个单位名称写成T。
本文没有计算同质异能移δ。该量涉及核处电子密度及参照标定,不能拿Bader电荷或C1s化学位移替代。完整穆斯堡尔谱还涉及基态与激发态的核参数、磁与四极耦合、取向、线宽及温度效应;本页没有模拟这些谱线。
本例使用鸢算科技集群的vasp/6.6.1-p100,NVHPC25.3、CUDA12.8及配套MPI,通过Slurm完成。附件提供三个固定体积结构、输入和原生输出提取脚本,适合学习局域参数如何随结构改变。