Pymatgen学习笔记
记录pymatgen学习过程遇到的坑和方法
没有感情的敲代码机器
人美也要多读书
展开
-
用pymatgen生成晶格
若材料属于立方晶系,则代码可以直接写成:lattice = mg.Lattice.cubic(11.852) #括号里面的为晶格常数但若材料属于四方晶系(tetragonal),四方晶系有以下特点:a=b≠cα=β=γ=90°因此代码如下:lattice = Lattice.from_parameters(a=12.03, b=12.03, c=23.96, alpha=90, beta=90, gamma=90)...原创 2021-01-08 17:10:48 · 2807 阅读 · 0 评论 -
计算材料的Ehull
from pymatgen.ext.matproj import MPResterfrom pymatgen.io.vasp import Vasprunfrom pymatgen.analysis.phase_diagram import PhaseDiagram, PDPlottervasprun = Vasprun(r"D:\one-hundred structures\1_relax\vasprun.xml")# include structure so proper correction原创 2020-12-21 20:30:17 · 3693 阅读 · 15 评论 -
找到ordering后能量最低的结构
vasp计算完后生成100个结构,即100个文件夹,我们需要对文件夹中的vasprun.xml文件进行操作,这个文件几乎包括了所有的信息。首先我们需要找到能量最低的结构:from pymatgen import Structurefrom pymatgen.io.vasp.sets import MPRelaxSetfrom pymatgen.io.vasp import Vasprunall_energy = [] #python中min()函数的用法是返回列表元素中的最小值,我们先构建一个空的原创 2020-12-11 00:43:18 · 715 阅读 · 0 评论 -
python路径中有变量的写法
python中写路径时,斜杠/和反斜杠\很容易混淆。假如算完vasp后生成了十个文件夹,文件夹名为0_relax,1_relax …10_relax,想对这些文件进行批量处理,提取这些文件夹中的vasprun.xml文件:for i in range(10): v = Vasprun(r'D:/one-hundred structures/' + str(i) + '_relax/vasprun.xml')第一行中i为数字,写入路径中时,因为i的前后都是字符串,因此也要把i的类型变为字符串;原创 2020-12-10 22:40:36 · 11371 阅读 · 0 评论 -
enumerate structures
处理部分占据的另一个方法:https://matgenb.materialsvirtuallab.org/2013/01/01/Ordering-Disordered-Structures.htmlUsing the EnumerateStructureTransformation:首先需要安装enumlib,教程:https://github.com/msg-byu/enumlib/blob/master/README.md在COMPILING THE CODE部分,因为我的是windo原创 2020-12-10 22:41:39 · 636 阅读 · 3 评论 -
Ordering disordered structures
文献中会有晶体结构中一个位点部分占据的情况,实际上是在一个超胞中,用其它原子进行取代,在materials studio里面虽然可以在一个位点上面设置部分占据的数值(occupancy),导出的.cif文件里也有,但从vesta导出POSCAR后,会自动将部分占据补齐变成满占据,即vasp的输入文件中不能有部分占据。而我们可以用pymatgen建模,构建一个晶胞结构,若有部分占据的情况,pymatgen可以将其转换为vsap输入文件进行计算。具体教程参考:https://matgenb.materia原创 2020-12-10 22:43:36 · 1171 阅读 · 4 评论 -
POTCAR安装和配置环境
POTCAR安装和配置环境安装教程:https://pymatgen.org/installation.html?highlight=potcar需要在Linux环境下安装,可在虚拟机终端里面输教程里的代码。先要把赝势文件夹(使用potpaw_PBE文件夹,不带52,54)copy到电脑里,然后拖到虚拟机里,其在虚拟机的路径就是下文提到的<EXTRACTED_VASP_POTCAR>教程里面代码需要改动的地方:<EXTRACTED_VASP_POTCAR> <MY原创 2020-12-07 21:06:31 · 5079 阅读 · 3 评论