处理部分占据的另一个方法:
https://matgenb.materialsvirtuallab.org/2013/01/01/Ordering-Disordered-Structures.html
Using the EnumerateStructureTransformation:
首先需要安装enumlib,教程:
https://github.com/msg-byu/enumlib/blob/master/README.md
在COMPILING THE CODE部分,因为我的是windows系统,在黑匣子里面输入代码后,找不到enum.x文件,后来就在虚拟机里面安装了,Linux和OSX系统安装方便些。因为之前我的虚拟机没有安装conda,python,后来都重新安装了,安装过程的报错基本都可以百度得到解决方法。
from pymatgen.transformations.advanced_transformations import EnumerateStructureTransformation
specie = {"Cu": 0.5, "Au": 0.5}
cuau = Structure.from_spacegroup("Fm-3m", Lattice.cubic(3.677), [specie], [[0, 0, 0]])
trans = EnumerateStructureTransformation(max_cell_size=3) #这里max_cell_size=3跟在前面建个3x1x1的超胞效果一样
ss = trans.apply_transformation(cuau, return_ranked_list=1000)