计算过程实现网格切割-Multi cut-cell
-
想请教一下大家,可能与IBM更相关。在OpenFoam中是否能够实现手动的网格切割,或者说有什么实现思路与学习方法?主要是想将立方体网格切割,使固体边缘更加光滑。如下图所示。
我没有进行过相关的网格切割测试,很担心在拓扑性那一块就过不去了。个人想法的话是直接阅读OpenFoam中的dynamicRefineFvMesh 或 snappyHexMesh?希望各位老师提一些建议。或者说是否有一些基础的代码能够学习。参考文献:
Schneiders et al., 2016, An efficient conservative cut-cell method for rigid bodies interacting with viscous compressible flows.
Schneiders et al., 2015, Sharp resolution of complex moving geometries using a multi-cut-cell viscous flow solver -
@李东岳 我知道思路,但是还没具体试过单元切割后把新的两个单元加入网格。我一直想用我的VOF库实现一个类似STAR-CCM+
Trimmed Mesher
的网格划分工具。我不喜欢snappyHexMesh
,snappyHexMesh
的边界处理太丑了。@Shihang-Chen
snappyHexMesh
不切割单元,它在往实际几何形状投影那一步只移动边界单元的边界点的坐标。 -
@队长别开枪 感谢老师,我再找找资料看看。说不定边界单元变形也能一定程度解决我的问题。
-
@李东岳 李老师,这个是浸入边界法中的锐利边界方法。每次计算的时候是将固相和液相通过切割完全分开以提高计算的准确性。那个球实际上就是固体,球体内部是有网格的。这里只是把固体内部网格抠掉显示了。
-
@队长别开枪 老师,我想问一个问题。如果我手动移动某个内部点的坐标,这样会导致该点参与的面上的四个点(比如原本是笛卡尔网格)不共面。这种情况下,OpenFoam能够正常计算和处理吗?一般来说是如何处理呢?
-
@Shihang-Chen OpenFOAM计算面和体的特征参数(面积,体积,中心等)都是使用三角分解的。具体可参考face.C中的
Foam::face::centre()
和Foam::face::areaNormal()
函数。一般来说面单元翘曲程度不严重都没啥大问题。 -
@队长别开枪 好的,感谢老师!
9/9