Fipy

时间:2018-03-26 14:48:07

标签: fipy

对包含衍生物的术语的正确方法是什么,这些术语无法用FiPy中的对流或扩散来表示(至少以任何明显的方式)?例如,在PDE的系统中,在具有坐标x,y的2d区域上求解函数u_i,其中一个方程包含术语

u_2 * \ partial_x u_1

我可以将它表示为源,假设x和u_i是单元格变量:

eq = ... + fipy.tools.numerix.dot(x.grad,u_1.grad) * u_2

然而,由于在FiPy中计算梯度的方式,x.grad是一个值为(1,0)的向量,除了直接在x边界旁边的单元格,它变为(2,0)。这意味着我必须从头开始使用向量(1,0)而不是x.grad。但是在这一点上,我不确定u_1.grad是否会在边界处具有正确的值以表示我的术语,并且很可能,我的整个方法是不正确的。我该怎么做才能代表这样一个词?

1 个答案:

答案 0 :(得分:0)

[编辑回答以反映问题]

u_2 \partial_x u_1相当于u_2 (1 0)\cdot\nabla u_1,在FiPy中呈现为:

eq = ... + fp.ImplicitSourceTerm(coeff=fp.tools.numerix.dot([[1], [0]], u1.grad), var=u2)