pymatgen专题

pymatgen局域配位与结构维数

从真实Si、Cu、hBN结构及理想NaCl模型提取近邻配位、周期成键图和维数。

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

下载主要模块实操包,解压后在包的根目录执行:

bash run.sh
ls analysis
ls figures

脚本使用集群已有的pymatgen 2026.9.24环境,包含绘图依赖,单次使用1个CPU核心;不启动新的VASP计算。也可以分步执行:

module load pymatgen/2026.9.24
python modules.py
python plot.py

1. 先确认输入是什么#

inputs/POSCAR-Si、inputs/POSCAR-Cu和inputs/POSCAR-hBN来自既有VASP计算的实际几何;NaCl则由脚本按5.64Å立方晶胞生成理想岩盐模型。它们用于演示结构分析,不会在这一步重新计算电子结构。

cat inputs/POSCAR-hBN
cat analysis/coordination.csv

2. 定义近邻,再读配位#

本例用MinimumDistanceNN,以最近原子间距为基准,保留距离在其10%范围内的近邻,并设置8Å搜索截断。这个判据比简单数出8Å内所有原子更适合展示第一壳层,但仍是几何定义,不是唯一的化学成键标准。

结构 原子数 各位点最近壳层配位 周期成键网络维数
Si原胞 2 4 3
Cu常规胞 4 12 3
单层hBN 2 3 2
理想NaCl常规胞 8 6 3

近邻配位与周期网络维数

脚本的核心参数是:

nn = MinimumDistanceNN(tol=0.1, cutoff=8)
counts = [nn.get_cn(structure, i) for i in range(len(structure))]
graph = StructureGraph.from_local_env_strategy(structure, nn)
dimension = get_dimensionality_larsen(graph)

完整导入和输入读取代码在附件modules.py中。换材料时先调整近邻判据,再观察配位和维数是否稳定;不同元素、不同键长或分子晶体不应机械沿用这个窗口。

3. 晶胞有三个方向,不等于成键网络是三维#

hBN虽然放在三维周期晶胞中,层间有真空,按本例近邻判据只形成面内连接,因此网络维数是2。维数来自带周期映像的StructureGraph与Larsen算法,而不是简单查看z方向晶胞是否很长。

ls analysis/*-bond-graph.json
head analysis/hBN-bond-graph.json

各JSON保留周期成键图,便于接着做连通性分析。对层间距离较小、弱键或混合维数材料,要同时检查构造近邻图的方法;错误连边会改变维数。pymatgen近邻与维数接口。

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

查看配图

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

100%查看原图 ↗