ABACUS:Born电荷的提取与结果检查
说明Berry极化单位、分支解缠、等价原子归一化及SiC实算的步长和平移检查。
阅读本篇目录
1. 从哪里读取极化#
本页接续成对位移与计算流程,解释如何把实际ABACUS输出变成Born有效电荷,以及如何判断自己的差分结果是否可信。
下载完整输入、实际SCF与Berry输出、CSV及绘图脚本,将下载文件保存为 example.zip:
python3 -m zipfile -e example.zip .
cd abacus-sic-born-fd
module load ase/3.29.0
bash read.sh
bash plot.sh
读取已有结果不需要提交计算;analysis-read 保存提取的数据,figures 保存图片。需要自己重算时,再按下面的步骤准备与提交。
ABACUS会打印多种极化单位。以Si子晶格向+x移动0.002 Å为例:
P = 0.0412498 (mod 16.4784118) (...) (e/Omega).bohr
P = 0.0000738 (mod 0.0294618) (...) e/bohr^2
P = 0.0042164 (mod 1.6843819) (...) C/m^2
这里第一行数值乘以e·Bohr相当于晶胞极化矩;后两行是极化密度。三行数值不能不换单位就混用。脚本使用第一行较充足的打印精度进行差分,1 Bohr=0.529177210903 Å。
2. 为什么必须处理极化分支#
晶体Berry极化具有模量。先算正、负位移输出的差,再按原生日志打印的极化量子,将差值移到与微小位移连续的分支。不能只拿两个看起来很大的绝对数直接相减,也不能对任意位移都认为“取最近分支”一定正确;位移过大时应增加中间结构跟踪连续性。
本例两侧差远小于半个极化量子,没有跨分支歧义。原生日志量子为16.4784118 e·Bohr;脚本使用该打印量子,不自行用猜测的自旋或晶胞约定替换它。
对于移动了N个等价原子的这组结构:
Zxx/e = 解缠后的极化矩差/(2δ/Bohr)/N。
若改用C/m²极化密度,则需要乘晶胞体积,并统一长度和电荷单位;不要漏掉体积因子或移动原子数。
3. SiC实际结果#

| 位移对象 | 位移步长/Å | 原生负位移极化矩/e·Bohr | 原生正位移极化矩/e·Bohr | 每个等价原子的Zxx/e |
|---|---|---|---|---|
| 四个Si | 0.002 | −0.0412443 | +0.0412498 | +2.728375 |
| 四个C | 0.002 | +0.0412203 | −0.0412150 | −2.726430 |
| 四个Si,步长检查 | 0.004 | −0.0824343 | +0.0824246 | +2.726237 |
这说明同一个中性SiC晶体中,Si与C的极化响应方向相反。不能由这个数字直接推断每个原子有±2.73个静态净电荷,也不能与4价电子数混为一谈。
4. 三个简单检查#
- 中性条件:Si+C为+0.001945 e,接近0;没有事后强制扣除残差。常规胞中Si、C各4个,因此全胞求和为这个残差的4倍,不要混淆原胞代表与常规胞总和。
- 整体平移:八个原子共同移动±0.002 Å,得到全晶胞导数约−0.003056 e,应接近0。除以8后的每原子平均值约−0.000382 e;这是不同的归一化,不能用平均值冒充全胞误差。
- 步长检查:Si的0.002和0.004 Å结果相差约0.002138 e。过大位移有非线性误差,过小位移容易放大SCF和极化打印误差,正式研究应多取几档步长。
全部结构的实际SCF采样带隙约1.36–1.38 eV。该值用来说明本例未落入金属计算情形,不是收敛的实验带隙预测。
5. 导出数据,换成自己的结构#
head analysis-read/polarizations.csv
cat analysis-read/Born-Zxx.csv
cat analysis-read/SUMMARY.json
polarizations.csv 保留每个结构的原始极化矩、量子、位移和采样带隙;Born-Zxx.csv 包括原始差、解缠后的差、整组导数及每个等价原子值;structures.csv 同时给出分数坐标和Å坐标。
换体系时,先固定一个合理的晶胞和参考结构,再选不等价原子和位移方向。计算完整张量需要对各不等价原子沿x/y/z位移,并分别读取所需的极化分量;本资料包的现成提取器仅处理本例x位移和x极化,不能原封不动宣称得到全张量。
Born电荷与介电张量可共同用于红外强度和声子非解析修正,但还需要匹配的力常数、坐标和单位。差分流程是独立的操作路线,不表示其他版本的实验性DFPT入口也具有同样的数值表现。