【发布时间】:2021-07-05 03:37:24
【问题描述】:
OpenFOAM 部分:
我在 OpenFOAM 中网格化了一个空心圆柱体。在这个模型中,流动是从外筒壁流向内筒壁;右手法则用于网格点如下: 我试图通过 OpenFOAM 编译的 paraFoam 绘制面部法线,但我做不到。可以通过 Glyph 法线绘制边界网格面(位于顶部、底部、内部和外部圆柱壁上),但不能绘制内部网格面。
Q OpenFOAM:是否有任何函数代码或方法可以在 paraFoam 中绘制它们?
Mesh 文件已经导出到 python 里面绘制,如上右图。很明显,这样一来,Start-End 重叠平面上的网格面与其他旋转面法线相比具有相反的方向。
Q OpenFOAM:这些面法线方向会导致错误的结果吗?还是结果仅由右手法则控制?如果需要,是否有任何代码或方法可以更改这些方向?
注意:我已经通过 Gmsh3D 将此网格文件导入 python FiPy,并使用它的 faceNormals 和 cellCenters 通过 matplotlib 绘制面部法线。
FiPy 部分:
由于我需要使用逆时针 faceNormals 方向,我已通过以下代码将顺时针 Start-End 网格面法线方向更改为逆时针方向:
for i in range(self.mesh.numberOfCells):
for f in self.mesh.cellFaceIDs.data.T[i]:
if self.mesh.faceCenters().T[f][0] > 0 > self.mesh.faceNormals.T[f][1] and self.mesh.faceCenters().T[f][1] == 0:
self.mesh.faceNormals.T[f] = np.multiply(np.array([-1, -1, 1]), self.mesh.faceNormals.T[f])
Q FiPy:这些面法线方向变化对FiPy求解结果有影响吗? 正如我从最近的explanation 中了解到的那样(由于没有足够的声誉仲裁,我无法在那儿问这个问题),FiPy 认为共享面的细胞 faceNormal 方向向外指向其相应的相邻细胞, 和 faceNormal 方向(使用 FiPy mesh.FaceNormals 显示在图片中)本身对解决方案没有影响;这意味着求解器可以根据情况在相反的方向上考虑它。这样对吗??是否有任何 FiPy 网格模块来创建这样的 O'grid 圆柱型网格系统,其中节点的 x、y 和 z 坐标可用?我已经尝试使用“CylindricalGrid2D”进行径向网格划分,但它只给出节点的 r 和 z 坐标。
【问题讨论】:
标签: mesh paraview normals fipy openfoam