openfoam画上亿的网格
-
我想画一个2亿的网格,有没有什么好的方法,多核好像画不了,大家能给个建议吗?
我目前的方法是先画的粗网格,然后refine加密一次,但是在并行运算的时候,会报错 -
-
刚搞完这方面的测试,给点结果你参考一下。
2T内存的FAT节点串行blockMesh至少可以生成10亿,即1024立方的网格,划分8192个processors,生成网格耗时2-3天左右,划分网格时间比较长,3-4天吧。
snappyHexMesh那种加密背景网格的方法,64G内存的节点连1亿的网格生成都会爆内存,snappyHexMesh生成过程中,大量数据会集中在master节点,爆内存,其他slave节点消耗内存很小。
既然在超算上,找超算要个FAT节点串行生成是比较有搞头的。毕竟2亿不算多。 -
@李东岳 在 openfoam画上亿的网格 中说:
各位大佬算出结果之后发来看看
已经跑路在找下家,交接给别人了,看不到结果了。
@氕氘-川 在 openfoam画上亿的网格 中说:
@李东岳 两种方法,一种是用胖节点可以一次性画好,另一种是先画差网格(千万级别),之后多次refine就可以。我的总共用时3个小时,总共网格是2.6亿
你这边节点内存是不是更大一点?
-
@trojason http://dyfluid.com/simpleFoam.html#testcase 我这个算例就是用的两次refineMesh 可以下载下来研究研究
算例首先针对单建筑生成较粗的结构网格,然后通过refineMesh工具进行两次网格局域细化。同时对进口速度采用一个比较简单的大气边界层生成条件。最后对比文献中的实验数据。速度场的结果较为吻合。算例文件网格数量共264万。算例文件适配OpenFOAM-8。
-
@李东岳 现在的瓶颈是单个节点内存不足的问题,但优势是节点数够多。我这边一直想通过parallel mesh generation的方法生成上亿网格。步骤跟之前的帖子您提到的差不多,blockMesh->decomposePar->snappyHexMesh...原来以为这种方法,能绕开内存不足的问题,结果发现processor0通讯开销太大导致内存不足。单节点64G内存的话,千万网格大概占20%内存。因此,上亿网格需要100G以上的节点支持。但这个设计是非常浪费的,因为千万网格->亿网格加密过程中,其他processor只占内存0.4%,processor0直接超过100%。不知道东岳老大有没有其他的方法绕开内存不足的问题,多次refine的话,我认为最终refine那一次所占的内存,跟直接blockMesh所需要的内存差别不大
8/15