GPUMDkit 成分、范围与数据筛选
成分、范围与数据筛选:终端操作、输入输出、集群示例与适用条件。
阅读本篇目录
本篇以集群GPUMDkit 1.5.8为准。下载输入与参考结果,解压进入gpumdkit-examples。所有工具操作在自己的工作副本执行。
module load gpumdkit/1.5.8
gpumdkit.sh -doctor
按什么顺序操作#
筛选阈值必须对应自己的体系,不能把本例1.5 Å与20 eV/Å当通用规则。周期体系优先使用带_pbc的距离检查。先查看数量和范围,再筛选;保留原文件,检查被剔除的构型。电荷平衡检查基于化学氧化态推断,不是电子密度或Bader电荷计算。
本章功能与终端入口#
带“→”的是交互菜单:先运行gpumdkit.sh,再逐项输入编号;不是把箭头整行粘进终端。
| 功能 | 命令或菜单 | 输入、输出与关键条件 |
|---|---|---|
| 成分分组501 | gpumdkit.sh -analyze_comp train.xyz |
统计并可选择导出不同化学组成 |
| 元素种类503 | gpumdkit.sh -chem_species train.xyz |
列出数据集中出现的元素 |
| 氧化态电荷平衡504 | gpumdkit.sh -cbc train.xyz |
输出balanced.xyz、unbalanced.xyz和indices.txt;不适用于任意金属价态解释 |
| 能量范围505 | gpumdkit.sh -range train.xyz energy |
查看能量标签的分布 |
| 力范围505 | gpumdkit.sh -range train.xyz force hist |
统计并画直方图;先查看再决定筛选阈值 |
| virial范围505 | gpumdkit.sh -range train.xyz virial |
检查训练标签范围 |
| 最小距离非周期 | gpumdkit.sh -min_dist trajectory.xyz |
直接几何距离,可能漏掉跨边界近邻 |
| 最小距离周期 | gpumdkit.sh -min_dist_pbc trajectory.xyz |
最小镜像距离,周期材料优先使用 |
| 距离筛选非周期506 | gpumdkit.sh -filter_dist trajectory.xyz 1.5 |
保留与剔除文件分别输出 |
| 距离筛选周期 | gpumdkit.sh -filter_dist_pbc trajectory.xyz 1.5 |
阈值Å;不能跨体系直接沿用 |
| 元素对距离范围 | gpumdkit.sh -filter_range trajectory.xyz Si Si 1.5 3.0 |
检查指定元素对距离范围的筛选条件 |
| 盒长筛选 | gpumdkit.sh -filter_box trajectory.xyz 25 |
按盒长阈值筛选,运行后检查保留数量 |
| 属性阈值筛选 | gpumdkit.sh -filter_value train.xyz force 20 |
按力阈值筛选;不要删除原始数据 |
| 能量参考对齐509 | gpumdkit.sh -shift_energy |
参考组对齐、零原子基线、DFT到NEP三种模式;只改energy字段,保留原标签来源 |
使用时注意#
1.5.8的能量范围脚本与当前ASE的energy存放位置存在兼容差异。若-range ... energy读不到标签,使用ASE正式接口,不修改共享软件:
python - <<'ASE'
from ase.io import read
f = read("train.xyz", index=":")
e = [a.get_potential_energy()/len(a) for a in f]
print("energy eV/atom:", min(e), max(e))
ASE
旧数据的force:R:3与ASE识别的forces:R:3不同。不要删掉力列;优先从DFT输出重新转换,或只在副本中规范字段名。本专题硅标签实例已使用工具输出的forces格式。
实际操作:chem_species#
从附件根目录新建这个示例:
python new-case.py chem_species
cd work/chem_species
执行以下命令:
gpumdkit.sh -chem_species train.xyz
本次生成的参考文件:见附件reference/chem_species,其中保留对应结构与输出。自己的输出会写在当前work/chem_species目录。
下一例开始前执行cd ../..回到附件根目录;不要把两个例子的输出放在同一目录。
实际操作:analyze_comp#
从附件根目录新建这个示例:
python new-case.py analyze_comp
cd work/analyze_comp
执行以下命令:
gpumdkit.sh -analyze_comp train.xyz
交互提示中依次输入(空行表示接受默认值):
0
也可直接执行附件的bash run-tool.sh,它会读取配套answers.in。
本次生成的参考文件:见附件reference/analyze_comp,其中保留对应结构与输出。自己的输出会写在当前work/analyze_comp目录。
下一例开始前执行cd ../..回到附件根目录;不要把两个例子的输出放在同一目录。
实际操作:min_dist#
从附件根目录新建这个示例:
python new-case.py min_dist
cd work/min_dist
执行以下命令:
gpumdkit.sh -min_dist trajectory.xyz
本次生成的参考文件:见附件reference/min_dist,其中保留对应结构与输出。自己的输出会写在当前work/min_dist目录。
下一例开始前执行cd ../..回到附件根目录;不要把两个例子的输出放在同一目录。
实际操作:min_dist_pbc#
从附件根目录新建这个示例:
python new-case.py min_dist_pbc
cd work/min_dist_pbc
执行以下命令:
gpumdkit.sh -min_dist_pbc trajectory.xyz
本次生成的参考文件:见附件reference/min_dist_pbc,其中保留对应结构与输出。自己的输出会写在当前work/min_dist_pbc目录。
下一例开始前执行cd ../..回到附件根目录;不要把两个例子的输出放在同一目录。
实际操作:filter_dist#
从附件根目录新建这个示例:
python new-case.py filter_dist
cd work/filter_dist
执行以下命令:
gpumdkit.sh -filter_dist trajectory.xyz 1.5
本次生成的参考文件:见附件reference/filter_dist,其中保留对应结构与输出。自己的输出会写在当前work/filter_dist目录。
下一例开始前执行cd ../..回到附件根目录;不要把两个例子的输出放在同一目录。
实际操作:filter_dist_pbc#
从附件根目录新建这个示例:
python new-case.py filter_dist_pbc
cd work/filter_dist_pbc
执行以下命令:
gpumdkit.sh -filter_dist_pbc trajectory.xyz 1.5
本次生成的参考文件:见附件reference/filter_dist_pbc,其中保留对应结构与输出。自己的输出会写在当前work/filter_dist_pbc目录。
下一例开始前执行cd ../..回到附件根目录;不要把两个例子的输出放在同一目录。
实际操作:filter_box#
从附件根目录新建这个示例:
python new-case.py filter_box
cd work/filter_box
执行以下命令:
gpumdkit.sh -filter_box trajectory.xyz 25
本次生成的参考文件:见附件reference/filter_box,其中保留对应结构与输出。自己的输出会写在当前work/filter_box目录。
下一例开始前执行cd ../..回到附件根目录;不要把两个例子的输出放在同一目录。
实际操作:filter_range#
从附件根目录新建这个示例:
python new-case.py filter_range
cd work/filter_range
执行以下命令:
gpumdkit.sh -filter_range trajectory.xyz Si Si 1.5 3.0
本次生成的参考文件:见附件reference/filter_range,其中保留对应结构与输出。自己的输出会写在当前work/filter_range目录。
下一例开始前执行cd ../..回到附件根目录;不要把两个例子的输出放在同一目录。
实际操作:cbc#
从附件根目录新建这个示例:
python new-case.py cbc
cd work/cbc
执行以下命令:
gpumdkit.sh -cbc train.xyz
本次生成的参考文件:见附件reference/cbc,其中保留对应结构与输出。自己的输出会写在当前work/cbc目录。
下一例开始前执行cd ../..回到附件根目录;不要把两个例子的输出放在同一目录。
实际操作:shift-zero#
从附件根目录新建这个示例:
python new-case.py shift-zero
cd work/shift-zero
执行以下命令:
gpumdkit.sh -shift_energy
交互提示中依次输入(空行表示接受默认值):
train.xyz
aligned.xyz
2
n
也可直接执行附件的bash run-tool.sh,它会读取配套answers.in。
本次生成的参考文件:aligned.xyz。自己的输出会写在当前work/shift-zero目录。
下一例开始前执行cd ../..回到附件根目录;不要把两个例子的输出放在同一目录。