包含在 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 是一个向量,除了与 x 边界直接相邻的单元格之外,x.grad 是一个值为 (1,0) 的向量,在该处它变为 (2,0)。这意味着我必须从一开始就使用向量 (1,0) 而不是 x.grad 。但是在这一点上,我不确定 u_1.grad 是否会在边界处具有正确的值来代表我的术语,而且很可能,我的整个方法是不正确的。我应该怎么做才能代表这样一个术语?