VTST:晶胞角度、面积与体积
用实际晶胞及正缩放因子2的例子读取物理尺寸,并说明旧Jvasp查看格式。
阅读本篇目录
POSCAR的全局缩放因子会影响长度、面积和体积。只读取前三个晶格向量的原始数字,可能得到错误的物理尺寸。本篇提供一个个人晶胞读取器,用Si晶胞、缩放后的Si晶胞和Co模型原胞演示。
1. 下载并查看结果#
下载结构、实际输出、个人晶胞读取器与绘图脚本,保存为 example.zip:
python3 -m zipfile -e example.zip .
cd vtst-pair-lattice
bash read.sh
bash plot.sh
默认读取附带结果,CSV在 analysis-read,图片在 figures。全部操作只处理结构数据,不会重新计算DFT或MD。

本例使用Python、NumPy与ASE;无需编译。资料包中的个人读取器修正了旧 getangle.py 的语法和正缩放因子的面积/体积计算,不修改公共脚本。
module load ase/3.29.0 vtstscripts/1040
2. 直接读取晶胞#
python3 private-tools/getangle-fixed.py inputs/Si8.vasp
python3 private-tools/getangle-fixed.py inputs/Si8-scale2.vasp
python3 private-tools/getangle-fixed.py inputs/Co-hex.vasp
第三个文件名是资料包标识,对应本例实际Co模型原胞;三对晶格向量夹角均为60°。Si常规胞三角均为90°。
输出依次给出三对向量夹角(度)、三个面面积(Ų)和物理体积(ų)。
3. 全局缩放2改变了什么#
head -5 inputs/Si8.vasp
head -5 inputs/Si8-scale2.vasp
cat analysis-read/VTST-cell-angles-area-volume.csv
两个Si文件的晶格向量原始数字和分数坐标相同,第二行全局正缩放因子分别为1和2:
长度:×2
角度:不变
面面积:×4
体积:×8
这表示实际晶胞与原子间距一起变大。它是明确的几何缩放例,不代表重新优化后的稳定结构。
下载实际角度、面积和体积CSV。本篇个人工具仅对展示的正全局缩放因子用法给出实例;POSCAR以负数指定目标体积时,应使用支持该格式的标准结构读取工具。
4. 用ASE看标准晶胞属性#
from ase.io import read
atoms = read("inputs/Si8.vasp")
print(atoms.cell.lengths())
print(atoms.cell.angles())
print(atoms.get_volume())
ASE的三角顺序是α、β、γ,个人脚本按v1–v2、v1–v3、v2–v3排列;比较输出时要先看对应向量,不能只按列号照搬。
5. 旧Jvasp查看格式#
mkdir view-work
cp inputs/Si8.vasp view-work/POSCAR
cd view-work
perl "$VTSTSCRIPTS_ROOT/pos2jvasp.pl" POSCAR
head -12 POSCAR.vasp
此输出把类型数、原子数、晶格与坐标按旧Jvasp查看器的格式组织。本例Si₈与NaCl₆₄转换后,晶胞、原子数及坐标都与输入一致。
生成的文件虽然扩展名是 .vasp,仍是查看器专用格式,不能直接作为普通VASP计算的POSCAR。要在现代结构工具里继续处理,优先保留原始标准POSCAR,或采用CON、XYZ与CIF转换中的相应操作。
6. 换成自己的晶胞#
先确认文件是标准POSCAR、缩放因子定义和坐标类型;读取物理长度、夹角、面积及体积;需要转换时再检查输出是否仍采用目标程序要求的格式。
cd ..
bash read.sh
bash plot.sh
本资料包的结构变换和个人读取脚本都在本地文件中完成,不更改公共环境或提交新的电子结构作业。