在 fipy 中连接两个或多个均匀网格

concatenate two or more uniform meshes in fipy

是否可以连接两个(或更多)网格? 示例:

import fipy
meshA = fipy.Grid2D(nx=5, ny=3)
meshB = fipy.Grid2D(nx=5, ny=6)
mesh = fipy.vstack(meshA, meshB)

一维或二维网格也是如此。

中级问题:是否可以定义偏移量?

当然可以,实际上你必须做第二个才能做第一个:

mesh = meshA + (meshB + [[0], [3]])

将 meshB 向上移动 3 个单位,然后将其连接到 meshA。

Mesh.__add__ 的文档字符串中对此进行了介绍,但不幸的是,Sphinx 文档工具并未将其包含在输出中。我们需要将它明确地放在可以阅读的文档中。

请注意,生成的网格不再是网格,因此会降低一些效率。对于这个简单的案例,您显然最好只设置 ny=9。对于更复杂的情况,您可能想要这样做:

mesh = fipy.Grid2D(nx=5, dy=[1,1,1,.5,.5,.5,.5,.5,.5])

如果你嫁接网格的原因是为了改变分辨率。