ASE专题

ASE合金候选结构与能量凸包

五个Cu–Ni固定晶格EMT结构,计算形成能、分解组合与候选集合凸包。

更新于 2026-10-28约 3 分钟阅读按任务与环境选择适用配置
阅读本篇目录

下载全部输入、可运行脚本、实际数据和四张高清图。在已分配CPU资源内,使用新解压目录执行 bash run.sh;ASE3.29.0、单进程单线程,生成 work/。本包不调用GPU或外部DFT程序。

1 这个例子解决什么问题#

给定一组候选结构及一致方法计算的能量,可以判断这组候选之间哪些组合能量更低。本例用ASE EMT快速计算Cu–Ni五种组成,演示形成能归一与PhaseDiagram接口,不将它称为真实Cu–Ni平衡相图。

所有候选均为同一个a=3.6Å的FCC四原子胞,Ni原子数依次为0、1、2、3、4;不优化原子或晶胞,不做有限温度混合熵计算。

bash run.sh
cat work/transport-phase-output/alloy.csv
ls work/transport-phase-output/alloy-*.extxyz

2 建立并计算五个候选#

from ase.build import bulk
from ase.calculators.emt import EMT

references = []
for n_Ni in range(5):
    atoms = bulk('Cu', 'fcc', a=3.6, cubic=True)
    atoms.symbols = ['Ni'] * n_Ni + ['Cu'] * (4 - n_Ni)
    atoms.calc = EMT()
    energy = atoms.get_potential_energy()
    references.append((atoms.get_chemical_formula(), energy))

energy是整个四原子胞的eV总能。Cu和Ni两端也采用相同晶胞与势函数,避免把不同能量零点混到一起。这里的Ni端点受共同晶格参数约束,不是独立优化后的Ni基态。

3 形成能按原子数归一#

Ni原子分数为x,四原子胞能量记为E:

ΔEform/atom = [E − (1−x)E(Cu4) − xE(Ni4)] / 4
候选 Ni原子分数 形成能/meV·atom⁻¹ 高于候选凸包/meV·atom⁻¹
Cu4 0 0 0
Cu3Ni 0.25 10.338584 10.338584
Cu2Ni2 0.50 13.808074 13.808074
CuNi3 0.75 10.372949 10.372949
Ni4 1 0 0

固定晶格Cu–Ni候选的形成能与初始结构

对于这五个固定晶格EMT候选,三个混合组成都高于两端点连线。这一结论只针对当前势函数、结构和约束;不能据此推断真实合金的混溶温度或实际相分离行为。

4 用PhaseDiagram提取分解组合#

from ase.phasediagram import PhaseDiagram
pd = PhaseDiagram(references, verbose=False)
energy, indices, coefficients = pd.decompose(formula='Cu2Ni2')
print(energy, indices, coefficients)

返回当前参考集合中满足目标成分的最低能量组合、参考索引和系数。索引对应输入 references 的顺序;这里是按化学式组成求分解,不能把系数直接当作某个结构的原子坐标。

附件还用独立线性规划核对了相同组成约束,比较的是同一集合、同一归一规则的能量。加入新候选后,原凸包可能改变,因此应保存完整参考列表与来源。

5 用自己的DFT数据时怎样替换#

先准备元素参考和各组成的候选结构;使用一致泛函、赝势、截断能、电子与结构收敛标准计算,明确是否允许晶胞优化,再将化学式及对应整胞能量传入PhaseDiagram。不同胞大小必须保持化学式与能量对应。

需要有限温度相稳定性时,还要考虑相应的振动、电子、磁性或构型自由能,并确保候选相足够完整。本页的五个未优化经验势结构仅用于操作参考。参考:ASE相图接口。

需要根据你的体系选择资源?联系讨论计算需求。实际可用软件与权限,以当前账户和运行环境为准。

查看配图

放大后可滚动查看细节,按 Esc 关闭。

100%查看原图 ↗