VASP数据如何用于CALPHAD建模
从Cu–Au实际计算出发,整理成分、构型、参照态和单位一致的热力学输入。
阅读本篇目录
想把第一性原理结果交给热力学建模人员,第一步是整理清楚“什么结构、什么参照态、什么单位”。本文用鸢算科技集群已经计算的6个Cu–Au结构,演示怎样生成可追溯的DFT数据表。
1. 先计算纯元素和目标构型#
本例沿用相稳定性教程中的fcc Cu、fcc Au及4个合金构型。每个结构都优化晶胞和原子位置,采用PBE PAW64、ENCUT=550 eV、EDIFF=1E-6、ISIF=3,自由原子力低于0.02 eV/Å。4原子晶胞用9×9×9 k网格,8原子模型用5×9×9网格。
下载附件后,按每个POSCAR的元素顺序准备合法POTCAR,再进入相应目录:
sbatch run.sh
参照物必须采用相同泛函、兼容的PAW数据集和数值精度。各结构的网格可以因晶胞大小而不同,但能量差仍需检查截断能和k点收敛。本例使用vasp/6.6.1-p100,NVHPC25.3、CUDA12.8及配套MPI,经Slurm计算。
2. 先除以原子数,再减去参照物#
记合金Au原子分数为x,单胞有N个原子:
e = E_cell / N
Δe = e − (1−x) e_Cu_fcc − x e_Au_fcc
ΔE[J/mol atoms] = Δe[eV/atom] × 96485.33212331
本例纯Cu和Au的每原子能量分别为−3.7302235975和−3.2221795000 eV。这里的mol是“摩尔原子”,不是每摩尔CuAu化学式;每摩尔CuAu含2 mol原子,二者相差2倍。
在附件根目录运行:
module load ase/3.29.0
python export_calphad.py
脚本读取6个目录自己的vasprun.xml和OUTCAR,核对优化受力,输出CALPHAD-DFT-DATA.csv。CSV保留单胞能量、原子数、成分、构型名称和参照态,避免只留一列无法追溯的“形成能”。
3. 本例导出的结果#
| 构型目录 | Au原子分数 | 静态形成能 / eV·atom⁻¹ | 静态形成能 / J·mol原子⁻¹ |
|---|---|---|---|
| cu-bulk | 0.00 | 0.000000 | 0.00 |
| au-bulk | 1.00 | 0.000000 | 0.00 |
| cuau-1 | 0.25 | -0.047635 | -4596.06 |
| cuau-2 | 0.50 | -0.056460 | -5447.55 |
| cuau-3 | 0.75 | -0.027278 | -2631.96 |
| cuau-mixed | 0.50 | -0.040957 | -3951.73 |

两个x=0.5的周期构型能量不同,不能因为成分相同就把它们当作同一个数据点,更不能简单平均后称为无序固溶体能量。构型身份应随CSV一同交给后续建模人员。
4. 怎样继续形成CALPHAD模型#
这张表提供的是零温静态电子能参照;尚未包含零点振动、有限温度振动、电子激发、磁性与组态自由能。它可以约束选定相或子晶格模型的低温能量,但不是可直接导入并计算完整相图的TDB数据库。
下一步先确定要建模的相及其有序/无序描述,再结合声子、实验热化学和相平衡资料拟合自由能参数。对于有序结构,不能直接在每个DFT点上加理想混合熵就声称得到该合金相图。
对照已有数据库时,确认其参照元素相和参照温度。本文的“零温fcc元素电子能参照”与298.15 K标准元素参照并不自动相同;pycalphad允许明确指定参照相及温压条件。pycalphad参照态说明
实际交接时,建议同时保留CSV、结构输入、泛函/PAW版本、收敛参数和能量定义。本例展示到数据准备这一步,没有把这些点拟合成新的CALPHAD数据库。