Wannier90专题

Wannier90 二阶移位电流:GaAs实际操作

输入矩阵、18个张量文件、相位约定比较和全占据对照。

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

下载完整输入、参考数据和绘图程序,保存为example.zip:

python3 -m zipfile -e example.zip .
cd wannier-response-examples
bash results.sh
bash plot.sh

环境使用wannier90/4.0.3-serial,Intel ifx2024.2、AVX2、MKL顺序库;MPI构建使用Intel MPI2021.13。本文小例子用单线程即可。job.slurm申请CPU分区资源,再由run.py在新的work/算例名下运行。查看参考结果不需要重新计算;重复计算时换用新的解压目录。

1. 从已有GaAs检查点开始#

本例使用官方固定GaAs模型,在集群运行5³教学积分网格。不是新的材料收敛光谱。

cat inputs/GaAs-shift-phase1/gaas.win
sbatch job.slurm GaAs-shift-phase1
sbatch job.slurm GaAs-shift-phase2

关键开关为:

berry = true
berry_task = sc
berry_kmesh = 5 5 5
kubo_freq_min = 0
kubo_freq_max = 10
kubo_freq_step = .5
sc_phase_conv = 1
sc_use_eta_corr = true

第二个例子只把sc_phase_conv改为2,并保留相同eta修正。其他展宽参数、能量单位与矩阵采用完整输入;比较约定时不要同时改变展宽或积分网格。

2. 读取张量并绘图#

ls reference-results/GaAs-shift-phase1/gaas-sc_*.dat
head -n 8 reference-results/GaAs-shift-phase1/gaas-sc_xyz.dat
bash plot.sh

原生写出18个独立分量文件,每个两列为光子能量eV、响应A/V²,0–10eV共21个频点。xyz后两个场指标使用程序的对称约定,画图前先明确张量分量和坐标轴,不把文件名直接当成实验样品方向。

两种相位约定在相同eta修正下,本例18个分量打印值一致。以xyz为例,0.5eV处约1.6803796×10⁻⁴A/V²,1eV处约2.0003464×10⁻⁶A/V²。图中乘10⁶显示µA/V²,坐标单位随之改变;不能只换标签不换数据。

GaAs相位比较与Te局部响应示意

这些小网格峰值没有做光谱收敛,不用于推荐GaAs器件响应。需要继续比较原始Wannier模型、积分网格、展宽和频率步长。

3. 检查占据条件#

sbatch job.slurm GaAs-shift-filled
head -n 8 reference-results/GaAs-shift-filled/gaas-sc_xyz.dat

把本有限模型的EF提高到100eV,所有保留带占据后,18个分量均为打印数值零。这说明占据差是工作流中的必要部分;它不证明粗网格光谱已经收敛。

与仅需能量的DOS不同,移位电流依赖波函数导出的矩阵与相位约定。不要只提供HR能量模型就假定所有非线性光学算符已经齐全。矩阵需求见官方Berry文档。

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

查看配图

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

100%查看原图 ↗