拓扑结构变化的网格并行时的网格重新分配



  • 计算中网格拓扑变化,导致在不同的计算区域中网格分配不均。比如,layerAddRemoval类的网格拓扑变化,就导致在某几个并行计算区域中的网格持续增加,导致计算效率下降。OpenFOAM有没有能够在并行中重新划分并行区域的功能。Fluent中是可以随着网格的变化动态更改并行区域,保证每一个区域网格数量基本一致



  • @史浩

    OpenFOAM有没有能够在并行中重新划分并行区域的功能

    目前我还没发现。不过你说这个还真对,Fluent那面做的不错啊。存在生死单元的时候确实某些区域会长出来特别多的网格。

    你写这么个玩意,可以发俩SCI :duang:



  • @史浩拓扑结构变化的网格并行时的网格重新分配 中说:

    layerAddRemoval

    之前不是说 layerAddRemoval 需要手动分块吗?为了防止需要 add(remove) 的网格出现在相邻 processor。
    计算中自动重新分块的话,怎么保证这点呢?



  • 另外按照负载自动重新分块(loadBalance)已经在foam-extend中有代码了,不过还没完善,等4.1发布应该就能用了。



  • @浪迹天大 OpenFOAM中是先把模型分块(decomposePar),然后在进行并行计算。在某些动网格算例中,这些并行的块有的会增加网格,即网格数量变多,有的就保持不变,因此容易导致某些块中的网格量变得巨大,影响计算效率。我想是怎么能将这些网格重新分配到每一个并行进程中。
    关于layerAddRemoval出错的问题,是OpenFOAM中并行的bug,这个暂时没有办法保证,避免的办法就是让移动的网格不要扫过processor的边界就好。


 

Forest
Mountains