当前位置:首页>python>用Python自动生成VASP的POTCAR

用Python自动生成VASP的POTCAR

  • 2026-09-02 19:07:35
用Python自动生成VASP的POTCAR
大家好,这里是二元计算
这个号我打算记录我学习 VASP / CP2K / LAMMPS 的过程,尽量分享一些实用、能直接用的东西。
平时我们做 VASP,一般流程是:
   1.准备好 POSCAR
   2.根据元素顺序去找赝势
   3.一个一个 cat 拼成 POTCAR
比如:
cat PAW_PBE/Si/POTCAR PAW_PBE/O/POTCAR > POTCAR
元素少还好说,元素一多,命令就变得很复杂了。

而利用python编写生成POTCAR文件的脚本就可以很轻松的避免这个问题。
思路其实很简单:从 POSCAR 里读取元素种类,然后按顺序拼接 POTCAR,一个标准的POSCAR文件如下:
SiO2 example              ← 第1行:注释(随便写)1.0                       ← 第2行:缩放因子5.431 0.000 0.000         ← 第3行:晶格向量 a0.000 5.431 0.000         ← 第4行:晶格向量 b0.000 0.000 5.431         ← 第5行:晶格向量 cSi O                      ← 第6行:元素种类(关键)2 4                       ← 第7行:每种元素的个数Direct                    ← 第8行:坐标类型(Direct/Cartesian)0.000 0.000 0.000         ← 第9行开始:原子坐标
核心脚本如下:
import os# 你的赝势库路径(自己改)potcar_dir = "/path/to/potpaw_PBE"# 读取 POSCAR 第6行(元素)with open("POSCAR", "r") as f:    lines = f.readlines()    elements = lines[5].split()# 生成 POTCARwith open("POTCAR", "wb") as outfile:    for elem in elements:        potcar_path = os.path.join(potcar_dir, elem, "POTCAR")        with open(potcar_path, "rb") as infile:            outfile.write(infile.read())print("POTCAR 已生成")
用法很简单
  1. 把脚本放在计算目录
  2. 确保有 POSCAR
  3. 改好赝势路径
然后运行:
python gen_potcar.py
两个小提醒:
   1. 这个脚本默认POSCAR 第6行是元素顺序
   2.赝势目录结构是potpaw_PBE/元素/POTCAR
如果你用的是:
   1.不同赝势(如 PBE_54)
   2.或带后缀(如 O_s)
记得稍微改一下路径规则。

最新文章

随机文章