vasp计算完后生成100个结构,即100个文件夹,我们需要对文件夹中的vasprun.xml文件进行操作,这个文件几乎包括了所有的信息。
首先我们需要找到能量最低的结构:
from pymatgen import Structure
from pymatgen.io.vasp.sets import MPRelaxSet
from pymatgen.io.vasp import Vasprun
all_energy = [] #python中min()函数的用法是返回列表元素中的最小值,我们先构建一个空的列表
for i in range(100):
v = Vasprun(r"D:\\one-hundred structures\\" + str(i) + "_relax\\vasprun.xml") #这里路径中的用变量写法在另一篇博文里面提到过,注意斜杠和反斜杠的区别
#print(v.final_energy)
all_energy.append(v.final_energy) #这里得到的v.final_energy是浮点数类型,可放入列表中比较大小
n = all_energy.index(min(all_energy)) #遍历all_energy列表中的所有元素,找到最小的能量和其在列表中对应的位置
print(n , min(all_energy))
#输出结果:
1 -154.8229777 eV #这个在列表中的位置与文件名一致;如这里位置是1,就是1_relax这个结构能量最低,结构最稳定