qvasp结构处理:CIF、超胞与固定原子
用真实Cu结构练习格式转换、超胞、固定层、原胞、对称性和轴变换。
阅读本篇目录
本篇使用鸢算科技集群实际生成的结构或已经完成的VASP计算数据。环境为官方Linux预编译qvasp2.26(模块 qvasp/2.26),辅助环境为ASE3.29.0、Spglib2.7.0、NumPy和Matplotlib;qvasp原生二进制的编译器版本未公开确认,不将它写成本地重新编译版本。
下载输入、真实数值数据与绘图脚本。解压进入目录,以普通账号运行:
bash run.sh
运行后查看 work/cases、work/analysis-core、work/analysis-extra 和 work/figures。这一命令执行文件准备和后处理,不启动VASP。包内不含POTCAR、WAVECAR或完整原始OUTCAR/XML;精简OUTCAR由明确标注的实际数值摘录生成,仅供工具练习。处理自己的任务时应使用自己的完整原始文件。
1 CIF转POSCAR并检查#
资料包给出列顺序已经核对的两种Cu4 CIF。在练习目录查看转换结果:
cd work/cases/cif-cu
cat sample.cif
cat sample.vasp
自己的新目录中用:
qvasp -c2p sample.cif
Materials Studio格式对应:
qvasp -c2p2 sample.cif
本例使用“原子标签、元素类型、分数x/y/z、其余属性”的列顺序。部分ASE默认CIF顺序在本版本中会生成错误元素或不完整结构,不能只看“Transfer done”。用ASE读回检查更直接:
module load ase/3.29.0
python -c "from ase.io import read; a=read('sample.vasp',format='vasp'); print(a.get_chemical_symbols(),len(a),a.cell.cellpar())"
结果应为4个Cu,晶胞3.61、3.61、3.61 Å,三个角约90°。若元素显示成数字,回到CIF格式或使用ASE明确转换,别继续生成势文件。

2 扩胞与固定表面底层#
qvasp -sc POSCAR
本例交互输入 2 2 1,得到 supercellx2x2x1.vasp,16个Cu,体积变为原来的4倍,晶胞7.22×7.22×3.61 Å。
qvasp -fix POSCAR
Cu(111)四层例子输入 0 .5,按分数z坐标固定下半部分:底部两个原子的三个标志为F,顶部两个为T。晶胞和坐标不变。F F F表示该原子不移动;优化输入还应使用合适ISIF,固定原子并不等于自动固定晶胞。
3 找原胞与查对称性#
qvasp -findcell .01
qvasp -findsym .01
在Cu4常规胞中,cell.vasp为1个Cu,体积为原来的1/4;对称性为225号空间群。.01是结构识别容差,不是优化步长。对畸变、缺陷或热振动结构应谨慎选容差,不能把强行识别为高对称结构当成优化结果。
4 导出CIF与交换晶格基矢#
qvasp -p2c POSCAR
本版本在Cu例中导出 export-cu.cif,但空间群字符串为无效的 T。资料包分析脚本保留原文件,显式写出P1副本 analysis-core/export-cu-P1.cif,按完整原子表处理;P1只是保存完整原子坐标的表示方式,实际材料对称性另查。自己的工作优先使用:
python -c "from ase.io import read,write; write('structure.cif',read('POSCAR',format='vasp'))"
当前 qvasp -sw POSCAR 实际进入CIF导出,未交换晶格轴。需要交换表面面内基矢时,可使用包内明确的ASE脚本:
cd work/cases/axis-with-ASE
cat swap_axes.py
python swap_axes.py
它采用 (a,b,c)→(b,-a,c),保持右手晶胞、真空c方向和周期原子几何,写 POSCAR-swapped.vasp。这只是基矢表示变换,不代表重新优化或将表面转成另一晶面。
参考:qvasp官方教程与模块实际 qvasp -help。在线手册标记2.25,个别行为与当前2.26不同,本文按本例实际输入输出说明。