SuperAPI AI 工具集

pycalphad

数据与分析

查看项目

更新于 10-27 12:34

技能介绍

用途

pycalphad 是采用 Python 实现的计算热力学库,基于 CALPHAD(相图计算)框架。它面向材料科学、冶金与计算热力学领域的研究者和工程人员,目标是以编程方式开展相图计算、相平衡分析与热力学性质预测,并可用于多组分材料体系的热力学建模与材料设计自动化。

主要能力

  • 读取并处理 Thermo-Calc 数据库(TDB)文件,数据库中包含相定义与组元、各相的 Gibbs 能模型、拟合实验数据的模型参数及温度、成分、压力范围。
  • 计算二元、三元和多组分相图。
  • 通过 Gibbs 能最小化执行相平衡计算。
  • 计算热力学性质,如活度、化学势、热容等。
  • 对有序相以及包含带电物种的体系进行建模。
  • 计算驱动力与亚稳性(metastability)。
  • 提供计算函数 calculate()(在指定条件下评估性质,不做平衡最小化)与 equilibrium()(通过最小化 Gibbs 能寻找稳定相组合)。
  • 输出基于 xarray 的 Dataset,包含稳定相名称、相分数(NP)、整体摩尔分数(X)、位点分数(Y)、化学势(MU)、摩尔 Gibbs 能(GM)、摩尔焓(HM)、摩尔熵(SM)、摩尔热容(CPM)以及活度(ACR_*)等变量。
  • 提供 binplot 绘制二元相图,eqplot 绘制三元相图,并支持通过 Mapping API(pycalphad.mapping.strategy.Strategy)自定义相图绘制策略。
  • 支持通过继承 Model 类扩展自定义性质模型。

使用方式

安装命令:

pip install pycalphad

或

conda install -c conda-forge pycalphad

开发版本:

pip install git+https://github.com/pycalphad/pycalphad.git

依赖:Python 3.9+、numpy、scipy、xarray、sympy、matplotlib。

基本流程为:使用 Database('database.tdb') 加载数据库;定义组元(如 AL、ZN、VA,其中 VA 表示空位)与相(如 LIQUID、FCC_A1、HCP_A3);随后调用 binplot 绘制二元相图,或调用 equilibrium/calculate 指定温度、压力、成分等条件进行计算。典型条件示例包括 {'P': 101325, 'T': (300, 1000, 10), 'X(ZN)': (0, 1, 0.01)},以及 {v.T: 1500, v.P: 101325, v.X('AL'): 0.5}。

计算完成后,可以从 equilibrium 返回的数据集中读取 Phase、NP、X、Y、MU、GM、HM、SM、CPM、ACR_* 等结果;该数据集为 xarray Dataset,可按条件索引、切片、布尔筛选,或转换为 pandas DataFrame。结果可通过 matplotlib 绘制,例如绘制 Gibbs 能曲线、热容分布图等。

适用场景

  • 计算二元、三元或多组分体系的相图。
  • 确定特定温度、成分、压力条件下的相平衡。
  • 从 CALPHAD 数据库计算热力学性质。
  • 分析相变的亚稳性与驱动力,例如沉淀驱动力计算、T0 温度求解。
  • 对有序相或含带电物种的体系建模。
  • 面向材料设计的热力学计算自动化。
  • 创建自定义热力学模型或性质框架。
  • 可视化相稳定区域与性质分布图。

限制与注意事项

  • 不适用于第一性原理计算(资料建议改用 VASP、Quantum ESPRESSO、GPAW)。
  • 不适用于分子动力学模拟(资料建议改用 ASE、LAMMPS)。
  • 不用于动力学模型;pycalphad 面向平衡热力学。
  • equilibrium() 求全局最小值,可能遗漏亚稳状态;研究亚稳性需排除特定相、比较能量或计算驱动力。
  • 组元列表中应包含空位(VA),否则涉及空位的相可能失败。
  • 相名称必须与数据库中的名称完全一致且区分大小写。
  • 多组分体系指定成分时需注意依赖组元,通常只指定 n-1 个成分。
  • 使用 SI 单位:温度为开尔文,压力为帕斯卡(101325 Pa = 1 atm)。
  • 可使用 pdens 参数控制计算密度;资料称较低 pdens 更快但相界精度较低(如测试用 100–500,生产用 2000 或更高)。
  • 资料提示应验证结果,例如相分数非负且总和为 1、成分守恒等。

资源与引用

官方文档:https://pycalphad.org/docs/latest/ GitHub:https://github.com/pycalphad/pycalphad 示例:https://pycalphad.org/docs/latest/examples/ 引用:Otis, R. & Liu, Z.-K., (2017). pycalphad: CALPHAD-based Computational Thermodynamics in Python. Journal of Open Research Software. 5(1), p.1. DOI: http://doi.org/10.5334/jors.140