导入到 fipy 的任何 gmsh 模型的表面积

surface area of any gmsh model imported to fipy

我想计算通过 gmsh 导入 fipy 的任何网格的 shell 表面,类似于单元体积:

sum(mesh.cellVolumes) 

到目前为止,我已经找到了外面的面孔:

    f = FaceVariable(mesh=mesh,value=False, name='Aussen')
    f.value[where(mesh.exteriorFaces == True)] = True 

如果 fipy 中某处存在 faceVolume,我想对它们求和,这是要走的路吗?

应该这样做,

import numpy as np
from fipy import Grid2D

mesh = Grid2D(nx=2, ny=2)

np.sum(mesh._faceAreas[mesh.exteriorFaces.value])

以上似乎需要 .value 才能使面部区域的 "take" 正常工作。

值得做 mesh._ 然后点击 ipython 中的选项卡以查看可用于网格的所有额外属性。还有很多隐藏的。

经过编辑使代码成为完整的工作示例。