我正在尝试使用FiPy实现三元合金的相场凝固模型。我查看了FiPy网站上提供的大多数阶段字段示例,我的模型类似于examples.phase.quaternary。
浓度的演化方程式如下:
C_1和C_2应该解决哪个问题(C_3是溶剂)。浓度方程与相位演化方程耦合,我们得到D_i = D_i(phi),h = h(phi)。
在所有三个术语中,(C_i)解决了变量的非线性依赖性,这使我不确定如何在FiPy中定义它们。第一项(红色)是具有非线性系数的扩散项,应该没问题,但我应该如何定义反扩散和相变项呢?
我尝试将它们定义为具有非线性系数的扩散和对流项,但没有成功。因此,我希望就如何定义以便FiPy喜欢它提供一些建议。
非常感谢任何帮助,谢谢! /安德斯
答案 0 :(得分: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).faceValue
或h.faceGrad * inner_sum_1.faceValue
,也可以将面值用于构成inner_sum_1
的变量。我不知道它有多大的不同。在以类似的方式定义C_1
和C_2
方程后,然后将它们组合成一个方程
eqn = eqn1 & eqn2