2

我正在尝试使用 FiPy 实现三元合金的相场凝固模型。我查看了 FiPy 网站上提供的大多数相场示例,我的模型类似于examples.phase.quaternary

浓度的演化方程如下所示:

http://i.stack.imgur.com/KvM1r.png

应该解决 C_1 和 C_2(C_3 是溶剂)的问题。浓度方程与相演化方程耦合,我们有 D_i = D_i(phi),h = h(phi)。

在所有三个术语中为 (C_i) 求解的变量存在非线性依赖关系,这让我不确定如何在 FiPy 中定义它们。第一项(红色)是具有非线性系数的扩散项,应该没问题,但我应该如何定义反扩散和相变项?

我尝试将它们定义为具有非线性系数的扩散和对流项,但没有成功。因此,我希望就如何定义一些建议让 FiPy 喜欢它。

任何帮助都非常感谢,谢谢!/安德斯

4

1 回答 1

1

这组方程可以耦合方式求解。反扩散项可以定义为耦合扩散项,相变项可以定义为对流项。方程将是,

eqn1 = fipy.TransientTerm(var=C_1) == \
       fipy.DiffusionTerm(D_1 - coeff_1 * (D_1 - D_3), var=C_1) \ # coupled
       - fipy.DiffusionTerm(coeff_1 * (D_2 - D_3), var=C_2) \ # coupled
       + fipy.ConvectionTerm(conv_coeff_1, var=C_1)

在哪里

coeff_1 = D_1 * C_1 / ((D_1 - D_3) * C_1 + (D_2 - D_3) * C_2 + D_3)
conv_coeff_1 = Vm / R * D_1 * h.faceGrad * inner_sum_1.faceValue

inner_sum_1是相变项中的复杂内和。$\nabla h$ 部分已从内部总和中取出。您可以对构成 的变量使用(h.grad * inner_sum_1).faceValueh.faceGrad * inner_sum_1.faceValue使用面值inner_sum_1。我不知道它有多大的不同。在C_1C_2方程都以类似的方式定义后,然后将它们组合成一个方程

eqn = eqn1 & eqn2
于 2016-10-06T14:32:08.763 回答