ATOMKIT 纳米结构建模
实际卷曲80原子碳纳米管,并用ASE生成明确半径与真空的Si球形和线形模型。
阅读本篇目录
本篇演示原生 ATOMKIT 将平面碳结构卷成纳米管,以及使用 ASE 从 Si 超胞裁剪球形和线形结构。所有输出都是未弛豫的几何初始模型。
1. 下载并先看结构#
下载输入结构、真实输出、操作和绘图工具,保存为 example.zip:
python3 -m zipfile -e example.zip .
cd atomkit-geometry-models
source ./env.sh
bash show-reference.sh
bash plot-results.sh
ls -lh plots/
本篇使用集群已有 ATOMKIT Standard 0.9.0 官方预编译程序(模块 atomkit/0.9.0),在登录节点进行小型结构处理,不需要 MPI 或 GPU。辅助几何检查和绘图使用已有 ASE 3.29.0、NumPy、SciPy 和 spglib 环境。附件包含自己构建的结构,不包含 ATOMKIT 程序或上游晶体数据库。

2. 将正交平面结构卷成纳米管#
输入 graphene80.vasp 是自己构建的正交平面碳结构,80 个 C,位于 xy 平面;输入 a 长度 24.6 Å,b 长度约 8.52169 Å,z 方向有真空。
source ./env.sh
mkdir manual-tube
cp inputs/graphene80.vasp manual-tube/POSCAR
cd manual-tube
atomkit <<'INPUT'
508
175 POSCAR
2
1
175
INPUT
head -n 10 NANOTUBE.vasp
cd ..
这里 2 选择以输入晶格 b 为纳米管轴,1 选择顺时针卷曲,最后 175 选择 VASP 输出。当前程序输出时把管轴放在 z 方向,不能继续把输出的 y 当作管轴。
实际得到 80 原子的 NANOTUBE.vasp,轴向周期约 8.52169 Å。圆周来自输入 a 方向,半径为 24.6/(2π),约 3.91521 Å;横向晶胞边长约 17.83042 Å,当前示例相邻周期管表面之间的真空间隙约 10 Å。
把旋转方向 1 改为 2 可生成相反卷曲方向,本例两组原子间几何距离相同,每个 C 都保持三个周期最近邻。改变卷曲方向不等于已经选定另一种材料手性;研究具体手性指数、曲率和电子性质时,还需检查原始晶向与所构建的模型。
3. Si球形与纳米线:使用明确的ASE裁剪流程#
对于本例 216 原子 Si 超胞和指定中心、半径,当前 ATOMKIT 506/507 原生输出没有形成可用模型。本篇的球形与线形结构采用附件中的 ASE 裁剪工具,不将这些结构称为原生 506/507 的成功输出。
bash cut-models.sh
ls ase-models/
cat ase-models/MODELS.json
工具从给定 Si 超胞中选择几何中心附近的原子。球形模型用三维距离筛选;线形模型用 xy 径向距离筛选,并保留原来 z 方向的周期长度:
| 路线 | 半径 | 原子数 | 周期与真空 |
|---|---|---|---|
| ASE球形 | 4 Å | 10 Si | 三个方向隔离 |
| ASE球形 | 5 Å | 30 Si | 三个方向隔离 |
| ASE纳米线 | 3.5 Å | 27 Si | z周期约16.29 Å,横向隔离 |
| ASE纳米线 | 4.5 Å | 63 Si | z周期约16.29 Å,横向隔离 |
![]()
每个非周期方向都留出 10 Å 的相邻模型间真空间隙。实现中 center(vacuum=5) 是在结构两边各留 5 Å,因此跨晶胞边界的总间隙为 10 Å;不能将这个参数误读成每边都有 10 Å。
输入位于 inputs/Si216.vasp。需要其他半径时,可修改 build_cuts.py 末尾的半径列表;先确认超胞足够大,避免想要的球或截面超出原始结构范围。工具不自动补出未包含在输入中的周期像。
4. 哪些部分还需要后续处理#
这些 Si 小模型没有做表面重构、钝化或能量优化。有限模型表面可能有悬挂键;更改半径后,原子数也会按离散晶格跳变。实际研究应按物理问题决定表面处理、荷电/自旋状态、模型尺度和真空。
孤立球形模型通常保留足够真空并优化原子位置;周期纳米线和纳米管还需要按研究目标考虑轴向晶格参数。不要把裁剪或卷曲本身解释成已经完成原子位置/晶胞优化,也不要把本例小结构当作已经收敛的材料性质。
相关操作:ATOMKIT表面建模、正交晶胞与随机合金、VASP结构优化。参考:ATOMKIT 官方介绍、ASE Atoms与真空居中。