py4vasp数据导出:CSV、HTML、图片与轨迹
用真实Si能带及20帧MD练习表格、Plotly网页、PNG、POSCAR和MDTraj导出。
阅读本篇目录
本篇使用配套API实例包。目标是把实际VASP HDF结果变成常用文件,不重新运行VASP。
1 一条命令导出主要结果#
cd py4vasp-API
bash run.sh
ls results
得到bands.csv、bands.html、energy.csv、energy.html和POSCAR。CSV可继续用Python或表格软件处理,HTML用本地浏览器打开;交互HTML通过Plotly CDN加载绘图库,联网后可缩放和查看数据点。
2 能带CSV和图怎样生成#
python - <<'PYCODE'
import py4vasp
c = py4vasp.Calculation.from_path('sample-band')
c.band.to_csv(filename='bands.csv')
c.band.to_plotly().write_html('bands.html', include_plotlyjs='cdn')
print(c.band.to_frame().head())
PYCODE
to_frame返回Pandas表,to_csv直接写表,to_plotly返回可继续设置标题和字号的图对象。改变图的字号不会改变能带数据。

这里是已有有限网格示例,主要练习读取和导出;研究材料能隙时仍应检查计算方法及采样。
3 MD必须明确选择哪些帧与哪种能量#
python - <<'PYCODE'
import py4vasp
c = py4vasp.Calculation.from_path('sample-md')
print(c.energy[:].read())
c.energy[:].to_csv('TOTEN, EKIN, ETOTAL', filename='energy-all.csv')
c.energy[:].to_plotly('ETOTAL').write_html('total-energy.html')
print(c.structure[:].number_steps())
PYCODE
[:]明确选择全部帧。本站提供20帧短MD,用于演示切片和导出,不能据此报告扩散系数或热力学统计。TOTEN、离子动能EKIN和动力学总能ETOTAL的含义不同,分析能量时先选对物理量。

4 图片与结构文件#
有Chrome的环境可以直接:
python export_png.py
这会调用原生to_image写results/bands.png。没有Chrome时先使用已生成HTML;安装或指定浏览器后再导出图片,不需要重算VASP。
python - <<'PYCODE'
import py4vasp
c = py4vasp.Calculation.from_path('sample-band')
with open('POSCAR-exported', 'w') as f:
f.write(c.structure.to_POSCAR())
print(c.structure.to_ase())
print(c.structure.to_lammps())
PYCODE
to_lammps只转换结构格式;后续LAMMPS仍需正确的势函数、原子类型和单位设置,不会自动生成可用的材料模型。
5 导出MDTraj轨迹#
当前公共py4vasp环境未包含MDTraj。若需要这项导出,可把兼容Python3.11的可选包安装在实例目录:
bash install-mdtraj.sh
bash trajectory.sh
脚本把MDTraj1.11.0放到本目录addons,不修改公共环境。输出results/trajectory.pdb,包含本例20帧、每帧2个Si原子。structure[:].to_mdtraj()需要轨迹切片;直接对单帧结构调用当前接口会提示不支持。
大型网格、长轨迹和批量图像应按资源规则申请计算资源;本包默认操作只读取两个小示例文件。