VTST专题

VTST扩胞与坐标转换实操

用斜晶胞演示扩胞、分数坐标平移和XYZ导出,说明旧格式与约束处理。

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

扩胞、整体平移、导出坐标是三种不同操作。本篇保留同一结构的实际输入与输出,便于逐步对照。

下载输入、实际输出、CSV和脚本,先查看已完成的结果:

python3 -m zipfile -e vtst-geometry-cube-modes-wave968-*.zip .
cd vtst-geometry-cube-modes
bash read.sh
bash plot.sh

这两步只读取和绘图,不重新执行工具。版本为VTST scripts1040;Perl模块由vtstscripts/1040提供,数据读取使用ASE3.29.0与NumPy。结构是可公开重建的Si₂斜晶胞教学例,没有新增DFT能量计算。

需要自己重新执行整套小例子时,使用新的解压目录:

module load vtstscripts/1040
python3 setup_cube.py
python3 prepare.py
bash run.sh
bash read.sh work-new
bash plot.sh

setup_cube.py在个人目录生成匹配版本的三次Cube取样脚本,不改变公共安装。已有work-new时保留结果、换新目录。本例为小规模文件处理,大网格处理应按集群规则申请CPU资源。

1 输入结构#

cat inputs/double/POSCAR
Si
 1.0000000000000000
     5.4299999999999997    0.0000000000000000    0.0000000000000000
     1.0000000000000000    5.4299999999999997    0.0000000000000000
     0.5000000000000000    0.3000000000000000    5.4299999999999997
   2
Selective dynamics
Direct
  0.2000000000000000  0.2000000000000000  0.2000000000000000 T T T
  0.4500000000000001  0.4500000000000000  0.4500000000000000 T T T

这是旧脚本使用的VASP4格式:元素名在标题中,晶格后直接是原子数。本例保留Selective dynamics与Direct两行,即使所有原子可移动也保持这一布局。

2 沿第一晶格矢量扩胞#

在独立工作目录中,实际命令为:

double.pl POSCAR doubled.vasp

询问方向时输入1。本例体积和原子数均变成原来的2倍,Si₂变为Si₄;副本沿原来的第一晶格矢量平移。该工具使用tmp.con与tmp2.con中间文件,应在独立目录处理副本。

head -n 15 work-new/double/doubled.vasp

3 整体平移Direct坐标#

pos2pos.pl POSCAR 0.2 -0.4 0.1

输出POSCAR.out。第一原子由(0.2,0.2,0.2)变为(0.4,0.8,0.3),负方向越界后回到周期晶胞内。

此旧入口按Direct坐标处理,并把选择性约束统一写成T T T。本例保留了固定原子的输入对照;处理有约束的真实结构后,应重新设置需要的约束。它只作单次越界回卷,本例平移小于一个周期。

4 导出XYZ#

pos2xyz.pl POSCAR

输出POSCAR.xyz,位置单位Å。工具会创建并移除同名.con中间文件,因此使用新目录。普通XYZ不保存本例的周期晶胞,原POSCAR与晶胞应另行保留。

原胞与实际扩胞后的xy投影

head -n 12 analysis-read/VTST-native-tool-geometry.csv

CSV保留三维位置;图片只画xy投影。完整晶胞与原子顺序以资料包内结构文件为准。

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

查看配图

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

100%查看原图 ↗