AMSET输入:Si能带、波函数与形变势
展示实际Si输入,说明均匀k网格、核心能级对齐、弹性常数和两个HDF5文件怎样准备。
阅读本篇目录
AMSET 不是只读一张能带图片。以本例 ADP 散射为例,需要均匀网格电子结构、波函数重叠、形变势张量及弹性矩阵。先准备这些文件,再扫描温度和载流子浓度。
1. 准备未变形的 Si 计算#
附件 inputs/si-bulk/ 中保留实际输入及输出;合法 POTCAR 和 WAVECAR 不随公开包提供。完整输入如下:
INCAR#
SYSTEM = si-primitive-scf
ENCUT = 550
PREC = Accurate
EDIFF = 1E-6
EDIFFG = -0.02
IBRION = -1
NSW = 0
ISIF = 2
ISMEAR = 0
SIGMA = 0.05
LREAL = .FALSE.
LASPH = .TRUE.
LWAVE = .TRUE.
LCHARG = .FALSE.
NELM = 150
ALGO = Normal
ISYM = 2
LORBIT = 11
NBANDS = 24
NEDOS = 2001
ICORELEVEL = 1
ADDGRID = .TRUE.
POSCAR#
Si
1.0000000000000000
0.0000000000000000 2.7344629562984917 2.7344629562984917
2.7344629562984917 0.0000000000000000 2.7344629562984917
2.7344629562984917 2.7344629562984917 0.0000000000000000
Si
2
Direct
0.0000000000000000 0.0000000000000000 -0.0000000000000000
0.2500000000000000 0.2500000000000000 0.2500000000000000
KPOINTS#
Gamma mesh
0
Gamma
11 11 11
0 0 0
LWAVE=.TRUE. 保存后续需要的波函数;ICORELEVEL=1 输出用于形变势对齐的核心能级。NSW=0 表示固定结构静态计算,输入中的 EDIFFG 不作为本步的停止条件。
使用均匀网格,不用高对称路径的 Line-mode KPOINTS。 后处理需要布里渊区内的电子态和速度,一条路径不能代替三维积分。
准备与本例一致的合法 Si POTCAR,在计算目录使用相应 VASP Slurm 脚本提交:
cd si-bulk
ls INCAR POSCAR KPOINTS POTCAR run.sh
sbatch run.sh
squeue -u "$USER"
作业完成后检查电子收敛及完整输出:
grep 'EDIFF is reached' OUTCAR
tail -n 12 OSZICAR
ls -lh vasprun.xml OUTCAR WAVECAR
VASP 的提交资源和模块选择见输入与运行指南。附件中的参考数据已经算好;准备自己材料时应在独立工作目录中生成新数据。
2. 生成形变结构并逐个计算#
在保存参考 POSCAR 的目录执行:
module load amset/0.5.1
amset deform create --help
amset deform create -f POSCAR
本例使用 ±0.5% 的形变,对称性约化后需要三个额外形变计算,实际输入保存在 inputs/si-def-01 至 03。每个形变目录都需要对应的 POSCAR,其他参数保持一致,ICORELEVEL=1、NSW=0。不要再让晶胞优化把人为施加的应变消除。
逐个提交并检查,之后才提取形变势:
cd si-def-01
sbatch run.sh
另外两个目录重复同样步骤。核心能级用于校正不同形变下的势零点;不能只把不同计算输出的本征值直接相减就当成可靠形变势。
3. 提取两个 HDF5 文件#
在 si-bulk、si-def-01 等目录的上一级执行:
module load amset/0.5.1
export NUMBA_CACHE_DIR="$PWD/.numba-cache"
mkdir -p "$NUMBA_CACHE_DIR"
amset wave -d si-bulk -e 1.5 -o wavefunction.h5
amset deform read si-bulk si-def-01 si-def-02 si-def-03 -e 1.5 -o deformation.h5
ls -lh wavefunction.h5 deformation.h5
-e 1.5 是保留电子态的能量窗口,单位 eV,不是 VASP 的 550 eV 平面波截断。后面的 settings.yaml 也使用 energy_cutoff: 1.5,三步的保留能带范围应一致。本例保留五条带;系数文件覆盖 56 个不可约 k 点,形变势覆盖 1331 个完整网格 k 点,二者的点数含义不同。
本例波函数提取器实际采用 200 eV 的系数截断;更精细研究还应检查这个近似。公开包直接提供提取后的两个 HDF5 文件,因此可以先不重跑 VASP。
如果自行重跑了同一参考数据,可将自己的 WAVECAR 放到附件 inputs/si-bulk/,然后执行:
bash recreate-inputs.sh
cat recreated/VALIDATION.json
它会重新读取四组 VASP 输出,并逐个对比生成的 HDF5 数据集;参考输入不被覆盖。更换材料后不要继续使用 Si 的参考对比,应在自己的新工作目录中执行前面的原生命令。
4. 弹性矩阵从哪里来#
本例采用已计算的 Si 内部弛豫弹性矩阵,立方对称下三个独立常数为 C11=153.14954474、C12=56.73880305、C44=72.78602494 GPa。在 settings 中要写成完整 6×6 Voigt 矩阵,详见温度与载流子扫描。
波函数、形变势与弹性参数应对应同一材料及一致的结构/电子结构设置。POTCAR、网格、应变和带隙模型更换后,不能直接套用本例材料参数。弹性计算教程、AMSET 官方输入说明