处理形变计算结果模块
本模块用于对形变计算结果目录进行分类和VASP数据提取,生成统一格式的数据文件。
模块概述
该模块提供了一组函数,用于:
对形变计算目录进行自动分类整理
创建按基础结构和缩放系数分类的目录结构
从VASP计算结果文件中提取关键物理量
生成统一格式的数据文件用于后续分析
主要函数说明
classify_deform_directories(root_dir)
对形变计算目录进行分类。
参数:
- root_dir: 包含形变计算结果的根目录路径
返回:
- 字典,分类后的目录结构:{base_name: [dir_paths]}
作用:
识别形变目录模式(如 structure_0.8, structure_1.0),按基础名称进行分组。
create_classified_structure(root_dir, classified_dict)
创建分类后的目录结构。
参数:
- root_dir: 根目录路径
- classified_dict: 分类后的目录字典
返回: - 无返回值
作用: 创建新的目录结构,将形变目录按基础名称和缩放系数重新组织。
extract_vasp_data(directory)
从VASP计算结果中提取数据。
参数:
- directory: 包含VASP计算结果的目录路径
返回:
- 字典,包含提取的数据:{'a', 'V', 'E', 'P'}
作用: 从POSCAR、OSZICAR、OUTCAR文件中提取晶格常数、体积、能量和压力数据。
process_all_deform_results(root_dir)
处理所有形变计算结果。
参数:
- root_dir: 根目录路径
返回: - 无返回值
作用: 整合所有处理步骤:目录分类、结构重组、数据提取,生成最终的数据文件。
输出文件结构
处理后生成的目录结构:
root_dir/
├── base_structure_1/ # 基础结构目录
│ ├── scale_0.8/ # 缩放系数0.8
│ ├── scale_0.9/ # 缩放系数0.9
│ ├── scale_1.0/ # 缩放系数1.0
│ └── a_V_E_P.txt # 提取的数据文件
├── base_structure_2/
└── ...
数据文件格式
生成的数据文件 a_V_E_P.txt 格式:
a V E P
3.905 60.245 -27.6834 0.000
4.010 64.120 -27.6521 0.125
4.115 68.345 -27.6012 0.275
列说明:
- a: 晶格常数(Å)
- V: 单元格体积(ų)
- E: 能量(eV)
- P: 压力(GPa)
使用示例
# 直接运行脚本
python process_deform_results.py --root_dir ./deform_calculations
# 或在Python代码中调用
from process_deform_results import process_all_deform_results
process_all_deform_results('./deform_calculations')
注意事项
原始目录命名需符合模式:
basename_scalefactor``(如 ``BaTiO3_0.95)目录中需要包含完整的VASP计算结果文件(POSCAR、OSZICAR、OUTCAR)
数据提取可能受VASP输出格式影响,需要适当调整正则表达式
处理过程会移动原始目录,建议先备份数据