[ PROMPT_NODE_27120 ]
pymatgen
[ SKILL_DOCUMENTATION ]
# Pymatgen - Python 材料基因组学工具包
## 概述
Pymatgen 是一个全面的 Python 材料分析库,是 Materials Project 的核心驱动力。它支持创建、分析和操作晶体结构与分子,计算相图和热力学性质,分析电子结构(能带结构、DOS),生成表面和界面,并访问 Materials Project 的计算材料数据库。支持 100 多种来自各种计算代码的文件格式。
## 何时使用此技能
当您需要进行以下操作时,请使用此技能:
- 处理材料科学中的晶体结构或分子系统
- 在不同结构文件格式(CIF, POSCAR, XYZ 等)之间进行转换
- 分析对称性、空间群或配位环境
- 计算相图或评估热力学稳定性
- 分析电子结构数据(带隙、DOS、能带结构)
- 生成表面、平板模型或研究界面
- 以编程方式访问 Materials Project 数据库
- 设置高通量计算工作流
- 分析扩散、磁性或力学性能
- 使用 VASP, Gaussian, Quantum ESPRESSO 或其他计算代码
## 快速入门指南
### 安装
bash
# 核心 pymatgen
uv pip install pymatgen
# 包含 Materials Project API 访问权限
uv pip install pymatgen mp-api
# 扩展功能的额外依赖
uv pip install pymatgen[analysis] # 附加分析工具
uv pip install pymatgen[vis] # 可视化工具
### 基础结构操作
python
from pymatgen.core import Structure, Lattice
# 从文件读取结构(自动检测格式)
struct = Structure.from_file("POSCAR")
# 从头创建结构
lattice = Lattice.cubic(3.84)
struct = Structure(lattice, ["Si", "Si"], [[0,0,0], [0.25,0.25,0.25]])
# 写入不同格式
struct.to(filename="structure.cif")
# 基础属性
print(f"化学式: {struct.composition.reduced_formula}")
print(f"空间群: {struct.get_space_group_info()}")
print(f"密度: {struct.density:.2f} g/cm³")
### Materials Project 集成
bash
# 设置 API 密钥
export MP_API_KEY="your_api_key_here"
python
from mp_api.client import MPRester
with MPRester() as mpr:
# 通过材料 ID 获取结构
struct = mpr.get_structure_by_material_id("mp-149")
# 搜索材料
materials = mpr.materials.summary.search(
formula="Fe2O3",
energy_above_hull=(0, 0.05)
)