关于二维模型的计算,这两种snappyHexMesh方法有什么不同,应该采用哪一个?
-
@DY大世界 某个方向设置为 empty,那么这个方向的流场就不会再计算。以前的版本如果empty方向的网格不是固定层数,是无法计算的,checkMesh 也会报一个提示:
***Total number of faces on empty patches is not divisible by the number of cells in the mesh. Hence this mesh is not 1D or 2D.
经测试,现在新的版本可以计算,但是结果我没有验证过。从计算的角度来讲,即使这样算出来结果是合理的,也增加了很多没必要的计算,因为这样处理,网格数量会比单层的2维网格多很多。
另外,假设举个例子,一个方形计算区域,中心部分用snappyHexMesh进行了加密,然后x 方向设置为 empty ,那么你计算完的结果,在x 方向上不同位置的截面上流场可能是不一样的,因为网格数量可能不一样,这样显然跟二维计算的概念是不符合的。 -
@xpqiu @DY大世界
我也遇到这个问题了。看网上说的是先createPatch,就是说把empty的一个面先提取出来,然后用extrudeMesh把这个patch沿着垂直方向推一个网格,形成三维的网格。但是我发现,沿着那个方向竟然不是一层网格。原因在于悬挂节点,因为shm的时候用了refine的设置,加密的交界面是悬挂节点,这导致在extrude的时候没法是一层网格,见下图
首先是我按上述说法做出的沿厚度方向只有一层网格的图:
然后提取加密交接面的网格,外表看起来是一层网格
然而细看,竟然是两层网格
我就是通过patch extrude出来的一层网格,但是有的地方(主要是加密变化造成的悬挂节点的地方)还是出现两层网格,很疑惑。。 -
@Samuel-Tu 你好,最近自己也刚好尝试过一个二维算例,网格划分参照的是OpenFOAM/OpenFOAM-8/tutorials/incompressible/pimpleFoam/RAS/wingMotion这个自带算例。里面包括如何先用snappy划分,再利用extrudeMesh和createPatch。会不是顺序有哪里出错了呢