VASPBERRY专题

VASPBERRY轨道与自旋投影实操

复用真实bccFe的512k点SOC输出,按d、sp和全部原子组提取原始投影,并处理单原子PROCAR打印格式。

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

VASPBERRY配套的procar_character.py可把同次计算的PROCAR、WAVECAR、OUTCAR整理为可读取的轨道和自旋投影。本篇复用鸢算科技已有bcc Fe计算:1原子原胞、8³完整网格、32条自旋子能带,PBE、ENCUT550eV、EDIFF1E-6、SOC,初始磁矩沿z。没有新增DFT计算。

1 下载与参考数据#

下载Fe投影实例包,保存为Fe-character.zip。

python3 -m zipfile -e Fe-character.zip .
cd vaspberry-Fe-character
bash results.sh
bash plot.sh

VASP源程序为6.6.1、NVHPC25.3/CUDA12.8环境;投影工具固定VASPBERRY1.6.3、Python3.11。附件有实际INCAR/POSCAR、全部导出的数值、分组和脚本,不分发波函数或赝势。

bccFe显示超胞和实际512k32带的d轨道投影

图左为方便观察而生成的显示超胞,实际DFT采用单原子原胞;图右取自真实全部能带结果,并非沿高对称路径的能带图。

2 分组与输入文件#

cat INCAR
cat groups.json
{"groups": [
  {"name": "Fe_d", "ions": [1],
    "orbitals": ["dxy", "dyz", "dz2", "dxz", "x2-y2"]},
  {"name": "Fe_sp", "ions": [1],
    "orbitals": ["s", "py", "pz", "px"]},
  {"name": "Fe_total", "ions": [1]}
]}

原子编号从1开始,轨道名严格按PROCAR头部写,不自动把d展开成5个轨道。Fe_total直接读取打印的总投影;Fe_d与Fe_sp分别对对应列求和。重叠原子/轨道分组可以使用,但它们不构成可直接相加的划分。

3 处理自己的同次输出#

把匹配的WAVECAR、PROCAR、OUTCAR放在input/:

bash prepare.sh ./input
sbatch job.slurm

本例要求静态NSW=0、ISPIN=1、非共线SOC、LORBIT=11,三个文件必须来自同次计算。工具会核对k点、能量、占据、晶格和SAXIS旋转;不能把较早SCF的OUTCAR与新波函数拼在一起。

单原子Fe的原始PROCAR每个q/m块只有原子1行,未单独打印tot行。此安装版读取器需要显式总计行,附件因此执行:

source env.sh
python single_ion_procar.py

它生成派生格式文件source/PROCAR.single-ion-compatible:每个单原子块补一行与原子1完全相同的总计,原始65536行投影数值不改动,原始PROCAR也保留。来源和哈希写入PROCAR-FORMAT-DERIVATION.json。这只针对该单原子打印变体;已经有tot行或多原子PROCAR不要套此转换。

4 提取与读取#

完整作业已执行格式转换和z/x两个分析轴。分步运行时,在尚未产生相应输出的新例子目录中使用:

python project.py z
python project.py x
ls character-z

得到character.csv/npz/json,包含512×32个状态、3组、4种投影分量。实际DFT使用3D网格,所以本例用于原始投影,不把这512点硬改成二维Hall积分网格。

下一篇分析轴和原始权重说明Pauli、自旋和“权重不是概率”的区别。参见本版本投影接口文档。

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

查看配图

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

100%查看原图 ↗