配置管理模块
概述
配置管理模块是自动化训练集生成系统的核心模块,负责加载、解析和管理项目的所有配置参数。该模块通过 YAML 配置文件统一管理 Materials Project API 设置、路径配置、形变参数、VASP 计算参数等,确保整个工作流的可配置性和可扩展性。
主要功能
YAML 配置加载:从 YAML 文件加载项目配置
智能默认值设置:为所有配置参数提供合理的默认值
配置验证:确保配置的完整性和有效性
结构化配置:提供层次化的配置参数管理
核心函数
load_config 函数
函数签名: load_config(config_file="input.yaml")
功能说明: 加载和验证项目的 YAML 配置文件,并返回包含所有配置参数的字典。
参数:
- config_file (str, 可选): 配置文件的路径,默认为 "input.yaml"
返回值:
- dict: 包含所有配置参数的字典,已填充默认值
异常:
- FileNotFoundError: 当指定的配置文件不存在时
- yaml.YAMLError: 当配置文件格式错误时
示例代码: .. code-block:: python
import config # 加载配置文件 config_data = config.load_config(“my_config.yaml”) # 获取 API 密钥 api_key = config_data[‘api’][‘key’] # 获取元素列表 elements = config_data[‘elements’]
_set_default_values 函数
函数签名: _set_default_values(config)
功能说明: 为配置参数设置默认值,确保配置字典的完整性。
参数:
- config (dict): 原始配置字典
返回值:
- dict: 包含默认值的完整配置字典
内部函数:此函数是内部函数,通常由 load_config 调用,不建议直接使用。
配置结构
路径配置 (paths)
控制文件系统的目录结构。
base_dir: 项目根目录cif_dir: CIF 文件存储目录poscar_dir: POSCAR 文件存储目录deform_dir: 形变结构目录vasp_dir: VASP 计算目录birch_murnaghan_dir: Birch-Murnaghan 拟合结果目录extxyz_set_dir: 最终训练集目录
形变参数 (deformation)
控制晶格形变生成。
max_atoms: 每个结构的最大原子数(默认: 150)scaling_factors: 体积缩放因子列表(默认: [0.8, 0.9, 1.0, 1.1, 1.2])max_supercell: 最大超胞倍数(默认: 4)
微扰参数 (perturbation)
控制原子位置微扰生成。
max_atoms: 每个结构的最大原子数(默认: 150)max_supercell: 最大超胞倍数(默认: 4)n_structures: 生成的微扰结构数量(默认: 100)cell_pert_fraction: 晶胞扰动幅度(默认: 0.05)atom_pert_distance: 原子扰动距离(默认: 0.05)atom_pert_style: 扰动风格,如 “uniform”(默认)
VASP 计算参数 (vasp)
控制第一性原理计算设置。
INCAR 参数 (incar_parameters)
ALGO: 电子最小化算法(默认: “normal”)EDIFF: 能量收敛标准(默认: 1E-3)KSPACING: K点间距(默认: 0.2)ENCUT: 截断能(默认: 400)ISIF: 离子位置和晶胞优化控制(默认: 2)
POTCAR 配置 (potcar)
method: POTCAR 生成方法(默认: “auto”)functional: 泛函类型(默认: “PBE”)potcar_variants: 特定元素的赝势变体potcar_base_dir: POTCAR 文件基础目录
作业提交配置 (submission)
slurm_headers: SLURM 作业头信息modules: 环境模块加载命令environment: 环境变量设置vasp_execution: VASP 执行命令max_batch_size: 最大批量提交数(默认: 10)check_interval: 作业检查间隔(秒,默认: 60)
Birch-Murnaghan 拟合配置 (birch_murnaghan_fitting)
控制状态方程拟合参数。
source: 数据源配置results: 结果保存配置data_filter: 数据过滤条件fitting: 拟合算法参数output: 输出配置
Extxyz 数据集生成配置 (extxyz_generation)
控制训练集生成参数。
vasp: VASP 计算结果提取配置birch_murnaghan: 基于拟合结果的配置pressure_filter: 压力过滤条件
配置文件示例
# Materials Project API 配置
api:
key: "your_mp_api_key_here"
# 材料列表
materials:
- "mp-134" # 材料ID
- "Fe" # 元素符号
- "Fe3Al" # 化合物
# 路径配置
paths:
base_dir: "./my_project"
cif_dir: "base/dir_CIF"
poscar_dir: "base/dir_POSCAR"
# 形变参数
deformation:
max_atoms: 100
scaling_factors: [0.85, 0.90, 0.95, 1.0, 1.05, 1.10, 1.15]
# VASP 计算参数
vasp:
incar_parameters:
ENCUT: 520
EDIFF: 1E-5
potcar:
functional: "PBE"
# Birch-Murnaghan 拟合
birch_murnaghan_fitting:
fitting:
initial_guess:
B0: 150
B1: 4.5
使用流程
准备配置文件: 基于示例配置创建或修改 YAML 文件
加载配置: 在代码中使用
load_config函数加载配置import config my_config = config.load_config("my_input.yaml")
访问配置参数: 通过字典键值访问具体配置
# 访问路径配置 base_dir = my_config['paths']['base_dir'] # 访问 VASP 参数 encut = my_config['vasp']['incar_parameters']['ENCUT'] # 访问形变参数 scaling_factors = my_config['deformation']['scaling_factors']
传递配置: 将配置字典传递给其他模块使用
from my_module import process_materials process_materials(my_config)
依赖关系
Python 包: - PyYAML (
pyyaml): YAML 文件解析文件系统: - 有效的 YAML 配置文件 - 必要的目录结构
最佳实践
版本控制: 将配置文件纳入版本控制系统
环境变量: 敏感信息(如 API 密钥)可通过环境变量注入
配置模板: 维护不同项目的配置模板
配置验证: 在关键节点验证配置的有效性
相关模块
/phymlp/auto_generate_set - 自动化训练集生成主模块
/phymlp/converters - 数据格式转换工具
/phymlp/train_and_validation/core - 训练和验证模块