GPAW的GW与RPA接口
实际计算Si单个Γ点的准粒子能量与RPA相关能贡献。
阅读本篇目录
下载完整Python输入、原始结果、CSV和绘图脚本。以下短命令在解压目录、已分配的CPU资源中执行,输出写入 work/。本模块为CPU构建,加载GPU资源不会自动启用GPU计算。
1 准备共同基态#
bash run.sh response-ground
bash run.sh gw
bash run.sh rpa
共同基态是Si2原胞、PBE、PW250 eV、Γ中心2×2×2网格、16条带,保存全部波函数。它是小型接口示例,不能代替生产GW所需的k网格和大量空带收敛。
2 G0W0/PPA#
from gpaw.response.g0w0 import G0W0
gw = G0W0('state.gpw', filename='gw', ecut=50, nbands=16,
bands=(3,6), kpts=[0], ppa=True)
result = gw.calculate()
本例实际Γ点索引为0,能带采用Python从0开始的索引3、4、5。不是所有输入网格的Γ都位于索引0,自己的体系应先打印实际k点坐标并定位。
| Γ点能带索引 | PBE能量/eV | G0W0/PPA能量/eV |
|---|---|---|
| 3 | 5.615705 | 5.848911 |
| 4 | 8.054147 | 9.100446 |
| 5 | 8.054147 | 9.096987 |

表中是同一参照下的本征值。这里只有一个Γ点的有限带窗口,不能据此报告完整基本带隙;Γ点直接跃迁与Si间接带隙也是不同概念。
3 RPA相关能贡献#
from gpaw.xc.rpa import RPACorrelation
rpa = RPACorrelation('state.gpw', ecut=[20,30,50],
nfrequencies=8, txt='rpa.txt')
correlation = rpa.calculate(nbands=16)
本次三个响应截断得到−5.52213、−9.05954、−10.12040 eV/原胞。变化很明显,说明这些低截断参数还不能用于最终能量差。
这些只是RPA相关能项,不是完整RPA总能。 不能将其直接与PBE总能相减作为反应能;完整能量比较还需要一致的交换、单电子及其他项,并对空带、频率积分和截断作收敛检查。
4 改自己的输入时检查什么#
基态波函数、响应截断和空带窗口分别影响计算。明确PPA或其他频率处理、所选k点和能带索引,再检查结果的自能和重整化信息。教程示例的成功执行不表示这些小参数具有材料预测精度。
需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。