sisl专题

sisl从SIESTA本征值提取DOS与绘图

sdata读取实际Si2 EIG和KP,用两种Gaussian展宽生成DOS表格和图,说明费米能、k点权重、自旋简并与态数积分。

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

本篇将真实SIESTA输出接到终端DOS处理。数据来自鸢算科技集群Si2的DZP/150Ry实际计算:2个Si、26个空间轨道、44条k点记录,非磁单自旋块。后处理用sisl0.16.4/Python3.11,NumPy/SciPy/Matplotlib,不重新计算DFT。

1. 准备实际文件#

下载EIG/KP、完整脚本和真实参考结果,保存为sisl-cli.zip并在新目录解压:

unzip sisl-cli.zip -d sisl-cli
cd sisl-cli
module load sisl/0.16.4
head -n 3 inputs/si.EIG
head -n 3 inputs/si.KP
sdata inputs/si.EIG --help

EIG保存费米能与各k点本征值,KP提供相同k点顺序的权重。不能拿另一个网格的KP配这个EIG;本例44项权重之和为1。

需要重新生成全部图和数据时,在可用CPU分区sbatch job.slurm;模板按56物理核整节点申请。在已分配的CPU作业中也可bash run.sh。包内参考在reference-*目录,新运行写入独立results/analysis/figures。

2. 一条命令提取DOS和图片#

mkdir work
sdata inputs/si.EIG --kp-file inputs/si.KP \
  --dos 0.02 0.1 gaussian --out work/dos-0p1.txt --plot work/dos-0p1.png

--kp-file放在--dos前,先读取权重。三个DOS参数依次为能量步长0.02eV、Gaussian展宽0.1eV和分布类型。表格第一列为相对SIESTA费米能的能量eV,第二列为DOS。

再运行0.2eV展宽:

sdata inputs/si.EIG --kp-file inputs/si.KP \
  --dos 0.02 0.2 gaussian --out work/dos-0p2.txt --plot work/dos-0p2.png

展宽增大使谱峰更平滑,但不会增加物理信息。参数和原生图例中以kT或K标记的量在这里控制Gaussian展宽,不表示这份Si数据真的在相应温度平衡。

3. 只看费米能附近,并叠加两种展宽#

sdata inputs/si.EIG --kp-file inputs/si.KP --energy=-10:10 \
  --dos 0.02 0.1 gaussian --dos 0.02 0.2 gaussian \
  --out work/dos-window.txt --plot work/dos-window.png
head work/dos-window.txt

同一能量网格下,两次--dos将两种展宽保存在一张图和同一表里:能量、0.1eV DOS、0.2eV DOS共三列。--energy=-10:10的等号可以避免负号被终端参数解析器当成另一个选项。

原生sdata生成的真实Si2 DOS,两个展宽叠加

图来自原生sdata,图例中的温度标签只是对应展宽的换算;能量零点为SIESTA文件中的费米能。若比较不同体系或不同计算,先统一能量参照,不能只把每张图都平移到零就比较绝对能级。

4. 积分出来26是什么意思#

从全能窗表格积分:

python - <<'PY'
import numpy as np
x = np.loadtxt('work/dos-0p1.txt')
print(np.trapezoid(x[:,1], x[:,0]))
PY

本例完整精度原生数据的积分:

展宽 全能窗空间轨道态数
0.1eV 25.999996301
0.2eV 25.999997018

**26是本基组在非磁单块中的空间轨道数,不是占据电子数。**sdata此处没有自动乘上非磁自旋简并2;若需要自旋求和的全部单粒子态数,可将这份单块DOS乘2,但仍不能把全能窗积分当价电子数。Si2的8个价电子需结合占据和自旋简并统计。

费米能附近的dos-window.txt只覆盖−10到10eV,不包含所有高能轨道,因此不能用它核对全态数。完整DZP高能谱也受有限基组影响,不宜把远离目标能窗的峰直接作为精确实验谱。

5. 表格精度与独立检查#

CLI表格默认写六位有效数字。配套脚本保留原表格,并通过sisl的原生文件ArgumentParser接口取得完整精度DOS;再用原EIG的本征值、KP权重和独立Gaussian求和核对:两种展宽的最大差均约10⁻¹⁵。它同时检查CLI表格是否为同一数据的正确序列化。

运行完整包后:

cat analysis/SUMMARY.json
ls results/dos-fullprecision-*.txt

这解释了为什么直接从CLI文本重算的最后几位可能与表中完整精度值略有区别;不应为了末位差异改动原始输出。

需要轨道投影PDOS、Hamiltonian本征态等操作,可继续sisl DOS与PDOS和真实SIESTA文件读取。几何与密度网格见前一篇。本篇演示sdata对EIG的实际入口,不把它称为所有文件格式和stoolbox专用功能的完整覆盖。

命令入口也可参考sisl官方CLI说明,具体参数与行为以上述安装版0.16.4的帮助和实际文件为准。

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

查看配图

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

100%查看原图 ↗