GPAW介电响应与k网格
实际展示Si从粗网格到12×12×12的介电响应变化。
阅读本篇目录
下载完整Python输入、原始结果、CSV和绘图脚本。以下短命令在解压目录、已分配的CPU资源中执行,输出写入 work/。本模块为CPU构建,加载GPU资源不会自动启用GPU计算。
1 生成匹配的基态#
bash run.sh response-ground
bash run.sh dielectric
基态使用Si2原胞、PBE、PW250 eV、Γ中心2×2×2网格、16条带,保存全部波函数。响应从同一文件读取,不能只给总能结果而缺少波函数。
from gpaw.response.df import DielectricFunction
df = DielectricFunction('state.gpw',
frequencies={'type':'nonlinear', 'domega0':0.1,
'omega2':10.0, 'omegamax':12.0},
ecut=50, nbands=16, eta=0.2)
without_lf, with_lf = df.get_dielectric_function(
direction='x', filename='epsilon.csv')
这里响应截断50 eV与基态PW250 eV控制不同对象,不能互相替代。eta为0.2 eV展宽。本安装版这条Hilbert路径使用非线性频率描述符,实际得到82个能量点。
2 不要只用2×2×2判断材料介电常数#
bash run.sh dielectric-mesh
该入口依次生成4、6、8、10、12网格的基态和对应响应。其余设置不变,含局域场的静态实部为:
| 每方向k网格 | Re ε(0) |
|---|---|
| 2 | 53.4534 |
| 4 | 22.3231 |
| 6 | 15.4265 |
| 8 | 13.2795 |
| 10 | 12.5704 |
| 12 | 12.3225 |

粗网格的偏大值是明显的数值采样信号,不应当作Si的最终介电常数。10到12仍有约2%的变化;空带数、响应截断和展宽也还需要独立检查,所以本篇不宣称已完全收敛。
3 局域场与复数曲线#
返回的without_lf和with_lf均为复数数组,分别对应不含/含局域场修正的宏观响应。实部和虚部按同一频率数组作图,不能把CSV中的两列当成不同自旋。
4 换成自己的体系#
先完成合适k网格和足够空带的基态,保存波函数,再做响应。金属的内带贡献、低维体系的截断和真空体积归一化需要额外处理;本例是三维半导体,不能直接把含真空二维超胞的ε当作可比体材料量。
需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。