4. 多组元扩散与Onsager框架

在二元合金中,扩散通量由一个扩散系数就能描述清楚;一旦进入三元及以上体系,这种直觉就失效了。某一种组元的浓度梯度,不仅驱动它自身的扩散,还会拖拽其他组元一起迁移,甚至让某个组元逆着自己的浓度梯度方向流动——这就是交叉扩散效应。DICTRA 处理多元扩散时,核心任务就是把这种耦合关系用 Onsager 框架定量表达出来。

从 Fick 第一定律到多元通量方程

二元体系中,Fick 第一定律写作 J = −D ∂c/∂x,通量只与本组元的浓度梯度有关。对含 n 个组元的体系,通量必须写成矩阵形式。在实验室坐标系下,第 k 个组元的通量可表示为:

J_k = − Σ_j  D_kj^(n)  ∂c_j/∂x        (j = 1 … n−1)

其中:
  J_k        第 k 组元的扩散通量 (mol·m⁻²·s⁻¹)
  D_kj^(n)   实验室坐标系下的多元扩散系数矩阵 (m²·s⁻¹)
  ∂c_j/∂x    第 j 组元的浓度梯度 (mol·m⁻⁴)
  n          参考组元(通常取溶剂或含量最多的组元)

注意求和只对 n−1 个独立组元进行,因为浓度满足 Σc_i = 常数,参考组元的通量由其他组元通量线性组合得到。矩阵 D_kj 的对角项 D_kk 描述自扩散(本组元梯度驱动本组元通量),非对角项 D_kj (k≠j) 描述交叉扩散(第 j 个组元的梯度驱动第 k 个组元的通量)。

Onsager 框架:热力学因子与动力学因子的分离

多元扩散系数矩阵并不是一个基本物理量,它由两部分相乘得到:热力学因子矩阵和动力学因子(原子迁移率)矩阵。这是 Onsager 框架最核心的思想——把“体系想不想扩散”和“原子能不能扩散”分开。

严格来说,扩散的真正驱动力不是浓度梯度,而是化学势梯度。Onsager 线性响应理论给出:

J_k = − Σ_j  L_kj  ∂μ_j/∂x

其中:
  L_kj        Onsager 动力学系数 (mol²·J⁻¹·m⁻¹·s⁻¹)
  μ_j         第 j 组元的化学势 (J·mol⁻¹)
  ∂μ_j/∂x     化学势梯度

化学势梯度与浓度梯度之间通过热力学因子联系:∂μ_j/∂x = Σ_i (∂μ_j/∂c_i) ∂c_i/∂x。把这一关系代入 Onsager 方程,再与 Fick 矩阵形式对比,就得到 DICTRA 实际使用的分解式:

D_kj = Σ_i  L_ki  ·  (∂μ_i/∂c_j)

即:  扩散系数矩阵 = 动力学因子矩阵 × 热力学因子矩阵

动力学因子 L_ki:由原子迁移率 M_i 决定,L_ki = Σ 相关项,反映原子跳跃能力
热力学因子 ∂μ_i/∂c_j:由 Gibbs 自由能模型给出,反映热力学驱动力

这个分离非常实用。动力学因子来自原子迁移率数据库(如 MOB 数据库),热力学因子来自热力学数据库(如 TDB 数据库)。DICTRA 计算时分别读取这两个数据库,在每一步把两者相乘得到扩散系数矩阵,再求解扩散方程。这意味着:如果热力学模型改了,动力学因子不变;如果迁移率参数改了,热力学因子不变。两个数据库可以独立维护和更新。

交叉扩散效应的物理图像

交叉扩散最经典的例子是三元体系中的“上坡扩散”。考虑 Fe-Cr-Ni 三元系,在某个成分区间,Cr 的浓度梯度可能驱动 Ni 向 Cr 浓度升高的方向迁移,即 Ni 逆着自己的浓度梯度流动。这不是错误,而是热力学因子矩阵非对角项导致的必然结果。

交叉扩散的强弱由两个因素共同决定:一是动力学因子矩阵的非对角项 L_kj (k≠j),它反映不同组元原子跳跃的关联性;二是热力学因子矩阵的非对角项 ∂μ_i/∂c_j (i≠j),它反映组元间热力学相互作用的强弱。在正规溶体模型下,热力学因子非对角项与相互作用参数 Ω_ij 直接相关。Ω_ij 越负(吸引越强),交叉扩散效应越显著。

判断交叉扩散是否重要,可以看两个指标:一是热力学因子矩阵非对角项与对角项的比值,二是动力学因子矩阵非对角项与对角项的比值。两者都不小时,交叉扩散不能忽略;若其中一个接近零,交叉扩散可以近似忽略。

DICTRA 中的实际操作与参数设置

在 DICTRA 中建立多元扩散模拟,关键步骤是正确指定组元、参考组元、数据库和初始条件。以下是一个三元 Fe-Cr-Ni 扩散偶的典型设置示例:

# DICTRA 扩散模拟输入示例(示意)
# 定义体系
ELEMENT FE CR NI
SPECIES FE CR NI

# 选择热力学数据库和迁移率数据库
DATABASE THERMO  TCFE9.TDB
DATABASE MOBILITY MOBFE4.TDB

# 定义相
PHASE BCC_A2 % 1 1 1 !

# 定义扩散偶初始成分(摩尔分数)
# 左侧合金:Fe-20Cr-10Ni
# 右侧合金:Fe-10Cr-20Ni
CONDITION  REGION_LEFT  X(CR)=0.20  X(NI)=0.10
CONDITION  REGION_RIGHT X(CR)=0.10  X(NI)=0.20

# 温度与时间
CONDITION TEMPERATURE=1273
CONDITION TIME=3600

# 网格设置
GRID  REGION_LEFT  0  1e-4  50
GRID  REGION_RIGHT 1e-4  2e-4  50

运行后,DICTRA 会输出每个组元在不同时间步的浓度-距离曲线。观察重点不是单条曲线,而是三条曲线之间的耦合关系:Cr 和 Ni 的浓度剖面是否出现非单调变化?某个组元是否在界面附近出现浓度峰或谷?这些特征就是交叉扩散的直接证据。

结果判读与交叉扩散的识别

判断交叉扩散是否显著,可以从模拟结果中提取扩散路径。在三元体系中,把 Cr 和 Ni 的浓度画在成分平面上,得到一条扩散路径。如果路径是直线,说明两个组元的扩散相互独立,交叉扩散可忽略;如果路径弯曲,说明存在交叉扩散耦合。弯曲程度越大,耦合越强。

另一个判据是检查扩散系数矩阵的非对角项。DICTRA 可以在输出中给出每个节点的 D_kj 矩阵。若 |D_kj| / |D_kk| 大于约 0.1,交叉扩散对通量的贡献就不可忽略。在 Fe-Cr-Ni 体系中,1273 K 下 D_CrNi 与 D_CrCr 的比值典型值在 0.2~0.5 之间,说明交叉扩散确实重要。

Onsager 框架:热力学因子与动力学因子的分离 动力学因子矩阵 L_kj(Onsager 系数) 来源:原子迁移率数据库 MOBFE / MOBAL 等 反映原子跳跃能力 与温度、成分相关 “原子能不能扩散” 热力学因子矩阵 ∂μ_i/∂c_j 来源:热力学数据库 TCFE / TCNI 等 反映热力学驱动力 与 Gibbs 自由能模型相关 “体系想不想扩散” × 多元扩散系数矩阵 D_kj D_kj = Σ L_ki · (∂μ_i/∂c_j) 对角项:自扩散 | 非对角项:交叉扩散 交叉扩散效应:非对角项 D_kj (k≠j) 的物理表现 Cr 浓度梯度 → 驱动 Ni 通量(可能逆 Ni 自身浓度梯度) 判据:|D_kj| / |D_kk| > 0.1 时交叉扩散不可忽略 独立维护 可分别更新 独立维护 可分别更新

工程实践中的注意事项

使用 DICTRA 进行多元扩散计算时,有几个容易出错的点。第一,参考组元的选择会影响扩散系数矩阵的数值,但不会影响最终浓度分布结果;不过不同参考组元下矩阵元素的物理含义不同,比较不同文献数据时必须确认参考组元一致。第二,热力学因子矩阵在相变点附近可能剧烈变化,甚至出现奇异,导致扩散系数矩阵病态。此时需要检查热力学数据库在该成分-温度区间的可靠性。第三,迁移率数据库的适用范围有限,超出推荐温度或成分范围时,动力学因子外推可能带来较大误差。

交叉扩散效应的工程意义在于:它决定了多元合金中元素分布演化的路径和速率。在高温合金涂层扩散、渗碳渗氮、焊接接头成分偏析等场景中,忽略交叉扩散会导致对扩散路径和最终成分分布的预测出现系统性偏差。Onsager 框架的价值,正是把这种耦合关系用可计算、可验证的矩阵形式表达出来,让 DICTRA 能够在热力学和动力学两个数据库的支撑下,定量预测多元体系的扩散行为。