VASPBERRY分析轴与原始投影权重
用真实Fe数据比较x/z分析轴,解释Pauli、自旋和正负投影,以及大于1的原始权重如何保留。
阅读本篇目录
本篇使用同一套Fe投影实例包,接轨道投影操作。分析轴改变的是读取同一批状态的方式,不是又做了一次磁矩旋转DFT计算。
1 四种分量分别是什么#
| 输出分量 | 含义 |
|---|---|
| charge | 原始投影电荷权重q |
| pauli_axis | 沿所选Cartesian轴的投影Pauli权重m |
| plus | (q+m)/2 |
| minus | (q−m)/2 |
m不是已经除以2的自旋角动量;对应S_axis/ℏ=m/2。plus/minus是该分组的正负轴投影权重,不等同于完整空间中两个独立ISPIN通道的电子数。
bash results.sh
head -n 8 reference-data/Fe-band-projection-averages.csv
2 查看实际数组#
source env.sh
python - <<'PY'
import numpy as np
a = np.load('reference-data/Fe-character-reference.npz')
z = a['characters_z']
x = a['characters_x']
print('z轴数组:', z.shape)
print('q范围:', z[:, :, 2, 0].min(), z[:, :, 2, 0].max())
print('plus+minus与q最大差:', abs(z[..., 2]+z[..., 3]-z[..., 0]).max())
print('x/z轴使用相同q:', np.array_equal(x[..., 0], z[..., 0]))
PY
数组轴依次是k点、能带、组、分量。分组顺序为Fe_d、Fe_sp、Fe_total;分量顺序对应上表。自己新计算的结果可从character-z/character.npz读取,不要把新数据与附件参考图混用。
3 不要把原始权重归一到1#

本例Fe_total原始charge范围为0至2.065。PROCAR投影依赖PAW投影子和投影定义,不应直接当成完备、正交空间分区的概率。附件保留大于1的原值,不裁剪,也不除以该状态的总投影把它强行归一为1。
同样,1−q只能作为相应定义下的诊断残差,不能直接命名为真实间隙电荷或由它推断间隙自旋。关心绝对投影量时应检查原始PROCAR、投影定义和电子结构精度。
Fe_d+Fe_sp与打印的Fe_total最大差0.003,来自三位小数轨道列与单独总计列的打印舍入;工具保留原始列,未把它们重新缩放以制造精确相等。
4 比较轴与物理解释#
bash plot.sh
head -n 8 reference-data/Fe-state-projection.csv
源计算初始磁矩沿z,x/z两轴读取同一个Cartesian原始投影。工具先使用OUTCAR的SAXIS到Cartesian矩阵,再沿指定单位向量取分量;任意输入一个非单位向量不会被悄悄归一化。
简并子空间内单个本征态的投影依赖所选基矢;必要时应比较完整子空间的总量。即便某个分组可以给出电荷Hall的归属权重,也不等同于常规自旋流或层电流电导。此Fe例子使用3D网格,只展示轨道/自旋投影,不做二维片Hall或三维体电导之间的换算。