GPUMDkit 结构与数据格式转换
结构与数据格式转换:终端操作、输入输出、集群示例与适用条件。
阅读本篇目录
本篇以集群GPUMDkit 1.5.8为准。下载输入与参考结果,解压进入gpumdkit-examples。所有工具操作在自己的工作副本执行。
module load gpumdkit/1.5.8
gpumdkit.sh -doctor
按什么顺序操作#
先区分只有坐标的结构文件和带能量、力、应力标签的训练集。格式转换不会替你计算缺少的DFT标签。OUTCAR转换在独立目录运行:-out2xyz会重建NEPdataset,-out2exyz会覆盖当前train.xyz。LAMMPS类型编号与元素顺序必须一一对应。
本章功能与终端入口#
带“→”的是交互菜单:先运行gpumdkit.sh,再逐项输入编号;不是把箭头整行粘进终端。
| 功能 | 命令或菜单 | 输入、输出与关键条件 |
|---|---|---|
| OUTCAR shell转换 | gpumdkit.sh -out2xyz vasp-results |
递归读取OUTCAR,输出NEPdataset/train.xyz;会重建NEPdataset |
| OUTCAR Python转换 | gpumdkit.sh -out2exyz vasp-results |
输出当前train.xyz;不要覆盖原训练集 |
| Born有效电荷转换 | gpumdkit.sh -out2xyz_bec vasp-results |
每个OUTCAR最后构型;需要完整BORN EFFECTIVE CHARGES块,输出bec:R:9 |
| CP2K输出转换 | gpumdkit.sh -cp2k2xyz |
在CP2K结果根目录选择SCF/MD路线;能量、坐标、力和晶胞须对应 |
| MTP cfg转换 | python "$GPUMDkit_path/Scripts/format_conversion/mtp2xyz.py" train.cfg Pd Ag |
菜单102;元素顺序与cfg类型编号对应 |
| ABACUS转换 | gpumdkit.sh → 1 → 104 |
选择SCF/MD与数据目录;从running_scf.log/running_md.log读取 |
| POSCAR转extxyz | gpumdkit.sh -pos2exyz POSCAR model.xyz |
保留晶胞和周期性;坐标转换不提供DFT标签 |
| extxyz转POSCAR | gpumdkit.sh -exyz2pos model.xyz |
逐帧写POSCAR_1.vasp等;按元素排列,不导出速度 |
| CIF转POSCAR | gpumdkit.sh -cif2pos structure.cif converted.vasp |
读取CIF晶胞与原子 |
| CIF转extxyz | gpumdkit.sh -cif2exyz structure.cif converted.xyz |
输出GPUMD常用结构格式 |
| POSCAR转LAMMPS | gpumdkit.sh -pos2lmp POSCAR lammps.data |
需要OVITO,共享环境暂不包含;可先用ASE转换 |
| LAMMPS dump转extxyz | gpumdkit.sh -lmp2exyz dump.lammpstrj Si |
需要OVITO;后面元素必须按type=1,2…排列 |
| XDATCAR转换 | gpumdkit.sh -xdat2exyz XDATCAR converted.xyz |
坐标轨迹转换,不补能量力标签 |
| ASE轨迹转换 | gpumdkit.sh -traj2exyz structure.traj converted.xyz |
ASE二进制traj读取 |
| extxyz转DeepMD | gpumdkit.sh -xyz2dp train.xyz Te Pb |
带标签训练集,输出deepmd_data;type_map顺序严格按Te Pb |
| DeepMD转extxyz | gpumdkit.sh -dp2xyz deepmd_data roundtrip.xyz |
递归寻找type.raw、type_map.raw和set.000 |
使用时注意#
共享环境未安装OVITO,因此pos2lmp与lmp2exyz需另配依赖。坐标格式转换可改用ASE,例如:
python - <<'ASE'
from ase.io import read, write
a = read("POSCAR")
write("lammps.data", a, format="lammps-data", atom_style="atomic")
ASE
本次DeepMD双向转换保持原始类型顺序;转回后应再核对每帧原子数、晶胞、能量和力。
实际操作:pos2exyz#
从附件根目录新建这个示例:
python new-case.py pos2exyz
cd work/pos2exyz
执行以下命令:
gpumdkit.sh -pos2exyz POSCAR converted.xyz
本次生成的参考文件:converted.xyz。自己的输出会写在当前work/pos2exyz目录。
下一例开始前执行cd ../..回到附件根目录;不要把两个例子的输出放在同一目录。
实际操作:exyz2pos#
从附件根目录新建这个示例:
python new-case.py exyz2pos
cd work/exyz2pos
执行以下命令:
gpumdkit.sh -exyz2pos model.xyz
本次生成的参考文件:见附件reference/exyz2pos,其中保留对应结构与输出。自己的输出会写在当前work/exyz2pos目录。
下一例开始前执行cd ../..回到附件根目录;不要把两个例子的输出放在同一目录。
实际操作:cif2pos#
从附件根目录新建这个示例:
python new-case.py cif2pos
cd work/cif2pos
执行以下命令:
gpumdkit.sh -cif2pos structure.cif converted.vasp
本次生成的参考文件:见附件reference/cif2pos,其中保留对应结构与输出。自己的输出会写在当前work/cif2pos目录。
下一例开始前执行cd ../..回到附件根目录;不要把两个例子的输出放在同一目录。
实际操作:cif2exyz#
从附件根目录新建这个示例:
python new-case.py cif2exyz
cd work/cif2exyz
执行以下命令:
gpumdkit.sh -cif2exyz structure.cif converted.xyz
本次生成的参考文件:converted.xyz。自己的输出会写在当前work/cif2exyz目录。
下一例开始前执行cd ../..回到附件根目录;不要把两个例子的输出放在同一目录。
实际操作:traj2exyz#
从附件根目录新建这个示例:
python new-case.py traj2exyz
cd work/traj2exyz
执行以下命令:
gpumdkit.sh -traj2exyz structure.traj converted.xyz
本次生成的参考文件:converted.xyz。自己的输出会写在当前work/traj2exyz目录。
下一例开始前执行cd ../..回到附件根目录;不要把两个例子的输出放在同一目录。
实际操作:xdat2exyz#
从附件根目录新建这个示例:
python new-case.py xdat2exyz
cd work/xdat2exyz
执行以下命令:
gpumdkit.sh -xdat2exyz XDATCAR converted.xyz
本次生成的参考文件:converted.xyz。自己的输出会写在当前work/xdat2exyz目录。
下一例开始前执行cd ../..回到附件根目录;不要把两个例子的输出放在同一目录。
实际操作:xyz2dp#
从附件根目录新建这个示例:
python new-case.py xyz2dp
cd work/xyz2dp
执行以下命令:
gpumdkit.sh -xyz2dp train.xyz Te Pb
本次生成的参考文件:deepmd_data/Te125Pb125/set.000/box.npy、deepmd_data/Te125Pb125/set.000/force.npy、deepmd_data/Te125Pb125/set.000/energy.npy、deepmd_data/Te125Pb125/set.000/coord.npy。自己的输出会写在当前work/xyz2dp目录。
下一例开始前执行cd ../..回到附件根目录;不要把两个例子的输出放在同一目录。
实际操作:dp-roundtrip#
从附件根目录新建这个示例:
python new-case.py dp-roundtrip
cd work/dp-roundtrip
执行以下命令:
gpumdkit.sh -xyz2dp train.xyz Te Pb
gpumdkit.sh -dp2xyz deepmd_data roundtrip.xyz
本次生成的参考文件:roundtrip.xyz、deepmd_data/Te125Pb125/set.000/box.npy、deepmd_data/Te125Pb125/set.000/force.npy、deepmd_data/Te125Pb125/set.000/energy.npy、deepmd_data/Te125Pb125/set.000/coord.npy。自己的输出会写在当前work/dp-roundtrip目录。
下一例开始前执行cd ../..回到附件根目录;不要把两个例子的输出放在同一目录。