This commit is contained in:
2025-12-07 13:56:33 +08:00
parent 49f54b04cd
commit c83985cd02
22 changed files with 2732 additions and 0 deletions

68
readme.md Normal file
View File

@@ -0,0 +1,68 @@
# 高通量筛选
## 配置需求
需要两个conda环境名字分别为**screen**,**zeo**
### zeo
#### 运行库需求
``` 2018.12.12
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字典预留分子与分母两个参数
需要函数为
```angular2html
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原子不做处理