首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >我应该如何在FiPy中编写这些耦合的PDE?

我应该如何在FiPy中编写这些耦合的PDE?
EN

Stack Overflow用户
提问于 2016-10-05 23:30:00
回答 1查看 444关注 0票数 2

我正在尝试用FiPy实现一个三元合金的相场凝固模型。我已经看过FiPy网站上提供的大多数阶段领域示例,我的模型类似于examples.phase.quaternary

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

对于C_1和C_2 (C_3是溶剂),应该解决这个问题。将浓度方程与相变方程耦合,得到D_i = D_i(phi),h= h(phi)。

在所有三个项中,(C_i)的求解变量都存在非线性依赖关系,这使得我不确定如何在FiPy中定义它们。第一项(red)是具有非线性系数的扩散项,这应该很好,但我应该如何定义反扩散项和相位变换项?

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

非常感谢您的帮助,谢谢!/Anders

EN

回答 1

Stack Overflow用户

发布于 2016-10-06 22:32:09

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

代码语言:javascript
运行
复制
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)

哪里

代码语言:javascript
运行
复制
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方程之后,使用

代码语言:javascript
运行
复制
eqn = eqn1 & eqn2
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/39878128

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档