ABACUS 专题

PYATB 折射率与吸收光谱提取

从实际复介电函数提取n、κ、吸收系数和反射率,明确单位与适用范围。

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

下载真实Si矩阵、8个PYATB条件、离线依赖和绘图脚本。解压进入附件根目录,先直接提取已有结果:

bash analyze.sh

首次运行会用附件内已固定版本的依赖,在本目录创建 venv,不修改公共环境;图在 reference/figures,数据在 reference/analysis。新解压目录重新执行全部PYATB计算:

sbatch submit.slurm

模板在分配资源中建立 work,顺序运行8个分析条件,再核对与画图。P100模板这里分配主机资源,实际PYATB使用1个CPU进程、1线程,不是GPU加速测试。它读取已有ABACUS矩阵,不重新运行DFT;已有 work 时请新解压,以免覆盖结果。

环境为PYATB1.1.2、mpi4py4.1.1、OpenMPI5.0.10,Python3.11及ASE3.29.0环境内的NumPy/SciPy用于后处理。离线轮子和哈希随附件提供。ABACUS矩阵来源为集群真实Si2计算:3.10.1、LCAO/PBE、80 Ry、8 Bohr DZP、26个NAO、8价电子、电子k网格2³;这些是有限采样教学结果,不能当作已经收敛的材料光谱。

1 先有复介电函数#

先看PYATB光学响应。这里使用同一个6³网格、η=0.1 eV算例的 dielectric_function_real_part.dat 和 dielectric_function_imag_part.dat,不是拼接不同条件的实部/虚部。

bash analyze.sh

脚本自动生成 optical_observables.png;原始σ、ε和派生数据都在 reference/analysis/pyatb-data.npz,使用你自己的新结果时运行 venv/bin/python -B analyze.py work 和 venv/bin/python -B plot_results.py work。调用这两条命令前加载 openmpi/5.0.10-cuda12.8,完整脚本会自动处理环境。

2 四个量分别是什么#

对本例立方、各向同性体相,采用 n+iκ=√ε 的被动介质分支:

输出 含义与单位
n 折射率,无量纲
κ 消光系数,无量纲
α 吸收系数,本图为cm⁻¹
R 真空到体相的法向入射反射率,图中用百分比

吸收系数用 α=2ωκ/c,注意光子能量/eV先转换成角频率/s;S/m、eV与cm⁻¹不能直接混乘。反射率为 |(n+iκ−1)/(n+iκ+1)|²。

从实际复介电函数得到的四种光谱量

附件会同时核对 (n+iκ)²=ε、被动分支符号和反射率范围,保留原始曲线。不能人为把峰位移动到文献位置,也不能根据显示效果单独缩放某条曲线。

3 怎样迁移到自己的材料#

先用你自己的同一套H/S/r计算复介电函数,再保持两个文件同一能量网格。各向异性材料不能把一个对角分量直接当成任意传播方向的折射率;二维含真空超胞的体积归一化也不能直接解释成实验薄膜吸收。斜入射、多层膜和表面粗糙度需要另外的光学传播模型。

本例的有限η、响应网格、虚跃迁上限和PBE近似会一起传递到n、κ、α和R。它给出可操作的数据处理流程,尚不用于确定实验峰位、收敛静态折射率或器件性能。

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

查看配图

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

100%查看原图 ↗