[ PROMPT_NODE_27124 ]
core_classes
[ SKILL_DOCUMENTATION ]
# Pymatgen 核心类参考
本参考文档记录了 `pymatgen.core` 中的基础类,它们构成了材料分析的基石。
## 架构原则
Pymatgen 遵循面向对象设计,其中元素、位点和结构均表示为对象。该框架强调晶体表示的周期性边界条件,同时保持对分子系统的灵活性。
**单位约定**:Pymatgen 中的所有单位通常假定为原子单位:
- 长度:埃 (Å)
- 能量:电子伏特 (eV)
- 角度:度
## 元素与周期表
### Element
表示具有全面属性的周期表元素。
**创建方法:**
python
from pymatgen.core import Element
# 通过符号创建
si = Element("Si")
# 通过原子序数创建
si = Element.from_Z(14)
# 通过名称创建
si = Element.from_name("silicon")
**关键属性:**
- `atomic_mass`:原子质量 (amu)
- `atomic_radius`:原子半径 (埃)
- `electronegativity`:鲍林电负性
- `ionization_energy`:第一电离能 (eV)
- `common_oxidation_states`:常见氧化态列表
- `is_metal`, `is_halogen`, `is_noble_gas` 等:布尔属性
- `X`:元素符号字符串
### Species
扩展了 Element 类,用于表示带电离子和特定氧化态。
python
from pymatgen.core import Species
# 创建一个 Fe2+ 离子
fe2 = Species("Fe", 2)
# 或显式指定符号
fe2 = Species("Fe", +2)
### DummySpecies
用于特殊结构表示(如空位)的占位原子。
python
from pymatgen.core import DummySpecies
vacancy = DummySpecies("X")
## Composition (组合物)
表示化学式和组成,支持化学分析和操作。
### 创建
python
from pymatgen.core import Composition
# 通过字符串公式
comp = Composition("Fe2O3")
# 通过字典
comp = Composition({"Fe": 2, "O": 3})
# 通过重量字典
comp = Composition.from_weight_dict({"Fe": 111.69, "O": 48.00})
### 关键方法
- `get_reduced_formula_and_factor()`:返回简化公式和乘法因子
- `oxi_state_guesses()`:尝试确定氧化态
- `replace(replacements_dict)`:替换元素
- `add_charges_from_oxi_state_guesses()`:推断并添加氧化态
- `is_element`:检查组合物是否为单元素
### 关键属性
- `weight`:分子量
- `reduced_formula`:简化化学式
- `hill_`