Pymatgen材料分析Skill pymatgen

Pymatgen是一个用于材料科学的Python库,用于晶体结构创建、分析、对称性检查、文件I/O、Materials Project API集成、相图构建和电子结构分析。它支持多种文件格式如CIF、POSCAR、XYZ,并可用于生成DFT计算输入。关键词:pymatgen, 材料科学, 晶体结构, 对称性分析, Python, 计算化学, 材料数据库。

数据分析 0 次安装 0 次浏览 更新于 3/12/2026

name: pymatgen description: | 使用pymatgen(Python材料基因组学)进行计算材料科学的全面指南。覆盖结构创建和操作、文件I/O(CIF、POSCAR、XYZ)、 对称性分析、Materials Project API集成、相图、电子结构分析以及DFT输入生成。适用于处理晶体结构、材料 属性、计算化学计算或材料数据库。触发词包括 ‘pymatgen’、‘晶体结构’、‘Materials Project’、‘CIF文件’、‘POSCAR’、‘能带结构’、 '相图’或材料分析任务。 allowed-tools: “*”

Pymatgen材料分析

使用pymatgen分析晶体结构、访问材料数据库以及与计算化学代码接口的系统指南。

Pymatgen工作流

1. 确定任务类型

你想做什么?

结构创建/加载:

  • 从零创建结构 → references/core-objects.md
  • 从文件读取(CIF、POSCAR、XYZ) → references/file-io.md
  • 从Materials Project获取 → references/materials-project.md
  • 从对称性生成 → references/structure-analysis.md

结构分析:

  • 分析对称性/空间群 → references/structure-analysis.md
  • 比较结构 → references/structure-analysis.md
  • 计算属性 → references/properties.md
  • 可视化结构 → references/visualization.md

结构操作:

  • 创建超晶胞/表面 → references/transformations.md
  • 替代原子 → references/transformations.md
  • 应用对称操作 → references/transformations.md
  • 为NEB插值 → references/transformations.md

材料数据库:

  • 查询Materials Project → references/materials-project.md
  • 检索结构/属性 → references/materials-project.md
  • 构建相图 → references/phase-diagrams.md

电子结构:

  • 解析能带结构 → references/electronic-structure.md
  • 绘制DOS → references/electronic-structure.md
  • 分析VASP输出 → references/vasp-integration.md

输入生成:

  • 创建VASP输入 → references/vasp-integration.md
  • 生成Gaussian输入 → references/file-io.md
  • 设置计算 → references/vasp-integration.md

2. 核心Pymatgen工作流

基本模式:

# 1. 导入模块
from pymatgen.core import Structure, Lattice, Element

# 2. 加载或创建结构
structure = Structure.from_file("POSCAR")

# 3. 分析或操作
print(f"化学式: {structure.composition.reduced_formula}")
print(f"空间群: {structure.get_space_group_info()}")

# 4. 如有需要,进行变换
supercell = structure * (2, 2, 1)  # 2x2x1超晶胞

# 5. 写入输出
supercell.to(filename="POSCAR_supercell")

快速参考 - 常见任务

加载结构: Structure.from_file("file.cif") - 自动检测格式 创建结构: 参见references/core-objects.md了解Element、Lattice、Structure创建 分析对称性: SpacegroupAnalyzer(struct).get_space_group_symbol() 制作超晶胞: structure * (2, 2, 1)或使用变换 查询MP: MPRester(key).get_structure_by_material_id("mp-149") 生成VASP: MPRelaxSet(struct).write_input("dir") 绘制能带/DOS: 参见references/electronic-structure.md

所有任务的详细示例在参考文件中。

任务路由

核心对象和创建

路由到: references/core-objects.md

何时使用:

  • 从零创建结构
  • 理解Element、Site、Structure类
  • 处理Lattice对象
  • 创建分子
  • 组成分析

关键类:

  • Element、Species
  • Lattice
  • Site、PeriodicSite
  • Structure、Molecule
  • Composition

文件输入/输出

路由到: references/file-io.md

何时使用:

  • 读取CIF、POSCAR、XYZ文件
  • 将结构写入文件
  • 格式转换
  • 解析计算输出
  • 处理多种格式

支持格式:

  • CIF(晶体学信息文件)
  • POSCAR/CONTCAR(VASP)
  • XYZ(分子坐标)
  • JSON(序列化)
  • 许多计算化学代码

结构分析

路由到: references/structure-analysis.md

何时使用:

  • 查找空间群
  • 对称操作
  • 比较结构
  • 获取原始/常规晶胞
  • 邻居分析

关键工具:

  • SpacegroupAnalyzer
  • StructureMatcher
  • VoronoiAnalysis
  • 距离计算

结构变换

路由到: references/transformations.md

何时使用:

  • 创建超晶胞
  • 制作表面/表面
  • 替代元素
  • 扰动结构
  • 高通量工作流

关键模块:

  • pymatgen.transformations.standard_transformations
  • pymatgen.transformations.advanced_transformations
  • pymatgen.alchemy

Materials Project API

路由到: references/materials-project.md

何时使用:

  • 查询材料数据库
  • 通过化学式获取结构
  • 检索计算属性
  • 访问实验数据
  • 构建化学系统

关键类:

  • MPRester用于API访问
  • 需要来自materialsproject.org的API密钥

相图

路由到: references/phase-diagrams.md

何时使用:

  • 构建相图
  • 分析稳定性
  • 查找分解产物
  • Pourbaix图
  • 巨势图

关键类:

  • PhaseDiagram
  • PhaseDiagramError(用于稳定性分析)
  • PourbaixDiagram

电子结构

路由到: references/electronic-structure.md

何时使用:

  • 分析能带结构
  • 绘制DOS
  • 查找带隙
  • 分析轨道贡献
  • 电子属性计算

关键模块:

  • pymatgen.electronic_structure.bandstructure
  • pymatgen.electronic_structure.dos
  • pymatgen.electronic_structure.plotter

VASP集成

路由到: references/vasp-integration.md

何时使用:

  • 生成VASP输入
  • 解析VASP输出
  • 创建输入集
  • 高通量VASP
  • 自定义INCAR设置

关键类:

  • MPRelaxSet、MPStaticSet等
  • Vasprun、Outcar解析器
  • Poscar、Incar类

常见模式

模式1:结构分析

  • 加载 → 分析组成/对称性 → 获取原始/常规
  • 参见examples/structure_analysis.py了解完整工作流

模式2:从Materials Project到计算

  • 查询MP → 获取结构 → 生成VASP输入 → 自定义设置
  • 参见examples/mp_to_vasp.py

模式3:高通量替代

  • 加载基础结构 → 应用变换 → 写入输出
  • 参见examples/substitution_study.py

模式4:电子结构分析

  • 解析vasprun.xml → 提取能带结构/DOS → 绘制并分析
  • 参见examples/band_structure.py

所有模式在examples/目录中有完整代码详细说明。

安装和设置

安装Pymatgen

pip install pymatgen
# 或带有可选依赖
pip install pymatgen[all]

配置Materials Project API

# 在materialsproject.org注册以获取API密钥
pmg config --add PMG_MAPI_KEY your_api_key_here

设置VASP赝势路径

pmg config --add PMG_VASP_PSP_DIR /path/to/vasp/potentials

配置文件

位于~/.pmgrc.yaml

PMG_MAPI_KEY: your_api_key_here
PMG_VASP_PSP_DIR: /path/to/vasp/potentials
PMG_DEFAULT_FUNCTIONAL: PBE

常见问题和解决方案

问题:结构未定义

问题: NameError: name 'Structure' is not defined

解决方案:

from pymatgen.core import Structure

问题:API密钥无效

问题: MPRester返回认证错误

解决方案:

  1. 从materialsproject.org获取API密钥(免费账户)
  2. 配置:pmg config --add PMG_MAPI_KEY your_key
  3. 或直接传递:MPRester("your_key")

问题:POTCAR生成失败

问题: 无法写入POTCAR文件

解决方案:

  1. 设置PSP目录:pmg config --add PMG_VASP_PSP_DIR /path
  2. 确保VASP赝势已正确安装
  3. 检查目录结构是否符合预期格式

问题:可选依赖导入错误

问题: ImportError用于绘图或专业模块

解决方案:

pip install pymatgen[all]  # 安装所有可选依赖
# 或特定依赖:
pip install matplotlib  # 用于绘图
pip install scipy      # 用于分析工具

最佳实践

面向对象方法

  • 使用Structure/Molecule对象,而非原始坐标
  • 利用内置方法(组成、对称性等)
  • 链接操作以提高清晰度

序列化

  • 使用as_dict() / from_dict()进行持久化
  • 偏好JSON而非pickle以支持代码演化
  • 对复杂对象使用MontyEncoder/MontyDecoder

变换

  • 使用Transformation类以提高可重现性
  • TransformedStructure跟踪历史
  • Alchemy框架用于高通量

输入集

  • 使用MPRelaxSet、MPStaticSet进行标准计算
  • 通过修改Incar进行自定义
  • 使用InputGenerator进行自定义工作流

Materials Project

  • 使用上下文管理器:with MPRester(...) as mpr:
  • 尽可能批量查询
  • 缓存结果以避免重复API调用

示例目录

参见examples/了解完整工作流:

  • structure_analysis.py - 综合结构分析
  • mp_query.py - Materials Project查询
  • phase_diagram.py - 相图构建
  • band_structure.py - 电子结构分析
  • vasp_workflow.py - VASP计算设置
  • substitution_study.py - 高通量替代研究

参考文档

  • references/core-objects.md - Element、Structure、Lattice、Composition
  • references/file-io.md - 读写所有文件格式
  • references/structure-analysis.md - 对称性、比较、邻居
  • references/transformations.md - 超晶胞、替代、扰动
  • references/materials-project.md - API使用和查询
  • references/phase-diagrams.md - 相图构建
  • references/electronic-structure.md - 能带结构和DOS
  • references/vasp-integration.md - VASP输入/输出处理
  • references/properties.md - 计算属性
  • references/visualization.md - 结构可视化

外部资源