e8858934846becde4f4da87cd629d46d9fdf06c9
高通量筛选与扩胞项目
环境配置需求
项目需要配置两个 Conda 环境,名称分别为 screen 和 zeo。
1. zeo 环境 (用于几何结构分析)
- Python: 2
- 核心库:
zeo++(需编译),pymatgen==2018.12.12,numpy==1.16.6 - 其他:
os,argparse,PrettyTable,monty,future
2. screen 环境 (用于逻辑筛选与数据处理)
- Python: 3.11.4
- 核心库:
pymatgen==2024.11.13,pandas(新增,用于处理CSV)
快速开始
- 数据准备:
- 如果数据来源为 Materials Project (MP),请将 CIF 文件放入
data/input_pre。 - 如果数据来源为 ICSD,请直接将 CIF 文件放入
data/input。
- 如果数据来源为 Materials Project (MP),请将 CIF 文件放入
- 运行:
- 确保已创建上述两个 Conda 环境。
- 在根目录下运行自动化脚本:
bash main.sh
处理流程详解
Stage 1: 预处理与基础筛选 (Step 1)
- Pre-process: 清洗数据,统一放入
input文件夹。 - Step 1:
- 读取 CIF 文件,利用
crystal_2库检查电荷平衡与化学式。 - 文件重组: 将通过筛选的文件按阴离子类型分类。
- 新结构: 每个材料拥有独立的文件夹(例如
after_step1/O/141/141.cif),便于管理后续的计算日志。
- 读取 CIF 文件,利用
- Make SH: 自动生成用于调用 Zeo++ 的
analyze.sh脚本。
Stage 2: Zeo++ 计算
- 切换至
zeo环境。 - 计算材料的孔径 (Percolation diameter)、比表面积等几何参数。
- 结果输出为每个文件夹下的
log.txt。
Stage 3: 数据提取与联合筛选 (Step 2-4)
- 数据提取 (
extract_data.py):- 自动遍历所有文件夹中的
log.txt。 - 提取关键参数:
Percolation Diameter(Step 2),Minimum of d(Step 3),Maximum Node Length(Step 4)。 - 结果汇总为 CSV 文件保存在
output/目录下(例如output/O/O.csv)。
- 自动遍历所有文件夹中的
- 联合筛选 (
step2_4_combined.py):- 读取 CSV 文件,根据预设的阈值(如 O: Perc>0.5, Min_d<3.0, Node>2.2)进行过滤。
- 结果: 将符合所有条件的材料,以软链接的形式汇聚到
data/after_screening文件夹中。
扩胞逻辑 (Step 5 - 待后续执行)
目前扩胞逻辑维持原状,基于筛选后的结构进行处理。
算法分解
- 读取结构: 解析 CIF 文件。
- 统计 Occupation:
- 将具有相同 Occupation 值的原子归为一类。
- 生成
Occupation_list字典。
- 计算扩大倍数:
- 根据 Occupation 的分子分母情况(如 0.5 对应 1/2),计算公约数。
- 生成结构列表:
- 根据分子与分母生成
structure_list。
- 根据分子与分母生成
- 对称性处理与扩胞:
- 根据材料结构的对称性,生成三个方向的扩胞列表 (如
{"x":1, "y":2, "z":1})。
- 根据材料结构的对称性,生成三个方向的扩胞列表 (如
- 生成新文件:
- 结合
structure_list与扩胞倍数生成最终的超胞 CIF。
- 结合
假设条件
- 只考虑两个原子在同一位置上的共占位情况。
- 不考虑 Li 原子的共占位情况,对 Li 原子不做处理。
Description
Languages
Python
97.4%
Shell
2.6%