V1
This commit is contained in:
68
readme.md
Normal file
68
readme.md
Normal 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原子不做处理
|
||||
Reference in New Issue
Block a user