这个号我打算记录我学习 VASP / CP2K / LAMMPS 的过程,尽量分享一些实用、能直接用的东西。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 已生成")
2.赝势目录结构是potpaw_PBE/元素/POTCAR