2015-09-21 18 views
1

是否可以連接兩個(或多個)網格? 示例:在fipy中連接兩個或多個統一網格

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

同樣適用於一維或二維網格。

中級問題:是否可以定義偏移量?

回答

1

當然,你居然還要做第二要做的第一件:

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

其向上移位meshB 3個單位,然後它加到米沙。

這包含在Mesh.__add__的文檔字符串中,但不幸的是,Sphinx文檔工具不包括在輸出中。我們需要明確地將它放在可以閱讀的文檔中。

請注意,生成的網格不再是網格,因此失去了一些效率。對於這個簡單的例子,你只需設置ny=9即可。對於比較複雜一點的情況下,你可能想要做的:

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

如果你移植網的原因是更改分辨率。

+0

非常感謝。我想使用它的原因是定義兩個分辨率不同的域(僅在一個維度上)。我認爲使用'dy'解決方案是最好的。 – DavidT

+1

BTW:我剛試過'mesh = fipy.Grid2D(nx = 5,dy = [1] * 2 + [.5] * 4,Lx = 3,Ly = 1)',它的細胞中心看起來不正確。它似乎忽略了「Lx」和「Ly」輸入。 – DavidT

+0

我想說'mesh = fipy.Grid2D(nx = 5,dy = [1] * 2 + [.5] * 4,Lx = 3,Ly = 1)'做的是正確的事情,但它不做我們記錄的事情。我很好奇你預期的細胞中心,因爲沒有辦法調和dy = [1] * 2 + [.5] * 4'和'Ly = 1'。 – jeguyer

相關問題