GPAW的Berry相位与Wannier90
Si绝缘价带的极化相位、四个Wannier函数和实际展宽结果。
阅读本篇目录
下载完整Python输入、原始结果、CSV和绘图脚本。以下短命令在解压目录、已分配的CPU资源中执行,输出写入 work/。本模块为CPU构建,加载GPU资源不会自动启用GPU计算。
1 生成适合接口的波函数#
bash run.sh berry-wannier
此流程计算Si原胞,PBE/PW250 eV、12条带、Γ中心2×2×2网格,并关闭点群与时间反演缩减以保留接口需要的完整网格。代码在berry_wannier.py。
2 Berry相位不是直接的唯一极化数#
from gpaw.berryphase import polarization_phase
result = polarization_phase(calc=atoms.calc)
phase = result['phase_c']
当前版本返回含总相位、电子和原子等分量的字典,不能把整个字典当作三维数组。本次总相位约(6.28318570,6.28318487,6.28318521) rad,模2π后接近0,与此中心对称Si参照相符。
极化有分支和量子,研究自发极化应沿绝热结构路径追踪变化,而不是把单个端点直接减到某个任意分支。参考官方Berry相位教程。
3 向Wannier90写接口文件#
from gpaw import GPAW
from gpaw.wannier.wannier90 import Wannier90
calc = GPAW('state.gpw', legacy_gpaw=True)
w = Wannier90(calc, seed='si', bands=range(4),
orbitals_ai=[[], [0,1,2,3]])
w.write_input(num_iter=200, plot=False,
write_xyz=True, write_u_matrices=True)
选择4条占据价带和4个初始投影。先运行 wannier90.x -pp si,再由接口写projections、eigenvalues、overlaps,最后运行 wannier90.x si。包内脚本用独立子进程加载4.0.3-serial模块,避免覆盖GPAW父进程的MPI环境。
4 查看实际中心和展宽#
grep -A6 'Final State' work/response-berry-wannier/si.wout
cat work/response-berry-wannier/si_centres.xyz

四个Wannier函数各自展宽约1.01098 Ų,总和4.04392 Ų;中心坐标保留在文件中。图中橙色X为Wannier中心,蓝色为Si原子,X不是额外化学元素。
这个例子定位占据价带,不包含导带纠缠窗口优化。若要做输运、费米面或拓扑响应,还应检查插值能带及相应后处理开关,不仅凭展宽较小就宣布模型适用于所有性质。
需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。