2025-12-07 13:56:33 +08:00
2025-12-07 13:55:13 +08:00
V1
2025-12-07 13:56:33 +08:00
V1
2025-12-07 13:56:33 +08:00
V1
2025-12-07 13:56:33 +08:00
V1
2025-12-07 13:56:33 +08:00

高通量筛选

配置需求

需要两个conda环境名字分别为screen,zeo

zeo

运行库需求

python == 2
pymatgen == 2018.12.12
Numpy = 1.16.6
os
argparse = 1.4.0
PrettyTable = 1.01
monty = 1.0.0
future = 1.0.0

zeo++软件需求

需要编译后放入python库中

screen

python == 3.11.4
pymatgen == 2024.11.13

使用说明

如果配置的conda环境同名运行main.sh即可

当数据来源为MP时需要将数据放在input_pre中

如果数据来源为ICSD仅需将数据放在input中即可

扩胞

以下为每一步的分解

Step1

读取cif文件

Step2

统计Occupation情况将具有相同Occupation值的记为一类用Occupation值作为Key创建字典该字典的一个项为atom_serial,是一个列表记录相同Ocupation值的原子序号 将上述字典输入一个列表Occupation_list字典预留分子与分母两个参数 需要函数为

def process_cif_file(struct)
    return Occupation_list 

step3

根据Occupation_list来计算扩大倍数\ 首先逐一计算每个字典的分子与分母根据key来计算例如第一个key值为0.5,此时其对应分子为1分母为2 合并没一个字典,探索每一个分数的情况并求出公约数与对应的分子,更新每一个字典的值

step4

根据分子与分母情况生成structure_list其中Occupation_list中的元素的number处的和为分子总共个数为分母

step5

根据材料结构决定对称性,对不同对称性得到不同等效情况 根据对称性与最终扩胞生成三个方向扩胞列表,其中每个元素是字典,遵循格式为{["x":1,"y":2,"z":1]}

step5

根据structure_list与Occupation_list生成新的cif并保存

一些假设

只考虑两个原子在同一位置上,暂不考虑三个原子以上的情况 不考虑Li原子的共占位情况对Li原子不做处理

Description
No description provided
Readme 252 KiB
Languages
Python 97.4%
Shell 2.6%