Navigation

    CFD中文网

    CFD中文网

    • Login
    • Search
    • 最新

    算例topoSet、refineMesh后,无法decomposePar

    OpenFOAM
    3
    7
    118
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • H
      hy1112006 last edited by

      最近在试运行一个算例,整体计算区域是标准六面体,结构化网格(网格单元亦为六面体):
      (1)串行运算:blockMesh --> checkMesh --> XXXFoam(运行求解器),没有问题;
      (2)并行运算:blockMesh --> topoSet --> refinMesh --> checkMesh 至此没有问题,但是开始分解网格时decomposePar,出现错误,过程如下;

      --- blockMesh如下(无问题):
      374bf096-52c5-4a1e-9a04-dafe667beaf0-image.png

      --- topoSet -constant 如下 (无问题):
      57716544-4b75-4a27-9a0a-43831f2a9bce-image.png

      --- refineMesh -overwrite 如下(无问题):
      7a0f86b6-a7b8-4d97-9050-e9e72cf84eac-image.png

      --- decompossePar 如下,报错!!:
      0e2312a1-8e5e-40fa-a6b7-8b9239ce2763-image.png

      请问各位专家,这个有可能是什么原因呐,感谢!

      W 1 Reply Last reply Reply Quote
      • W
        wsxfyy @hy1112006 last edited by

        @hy1112006 我之前这种做法分块的时候并没有报错,也能正常运行。你要不换一下分块方式,不要用这种分块方式,用scotch试一下

        H 1 Reply Last reply Reply Quote
        • H
          hy1112006 @wsxfyy last edited by

          @wsxfyy 我看了下,这个算例就是用scotch 分解的:143: 只有看看以后有没有啥方法了

          X 1 Reply Last reply Reply Quote
          • X
            xpqiu 教授 @hy1112006 last edited by

            @hy1112006
            先 refineMesh,后 topoSet 试试。
            topoSet 生成的 cellZone 或者 cellSet 等,保存的网格ID是你refineMesh 之前的, refineMesh 之后,网格数量都变了,所以保存在 cellZone 或者 cellSet 里面的编号跟refine之后的网格都不匹配了。

            H 1 Reply Last reply Reply Quote
            • H
              hy1112006 @xpqiu last edited by

              @xpqiu 刚才试了下,如果先refineMesh的话,会报错:
              05284b26-cf3a-49b2-a5f8-37b62413c0c9-image.png

              这又是什么原因呐,疑惑~~

              X 1 Reply Last reply Reply Quote
              • X
                xpqiu 教授 @hy1112006 last edited by

                @hy1112006
                哦,你的 refineMeshDict 里面需要一个 cellSet 来定义需要refine 的网格。这个 cellSet 也只是用来起这个作用吧。
                所以,你需要在 refineMesh 之前,先 topoSet 把 cellSet 生成出来,然后 refineMesh
                但是,在 decomposePar 的时候要排除对 cellSet 进行 decompose,因为我上一条回复说的原因。可以给 decomposePar 加一个选项,-noSets,这样在 decomposePar 的时候就不读取 cellSet 了,也就不会再触发你主楼遇到的错误了。

                H 1 Reply Last reply Reply Quote
                • H
                  hy1112006 @xpqiu last edited by

                  @xpqiu 好的,已经尝试成功,感谢老师指点啊!

                  1 Reply Last reply Reply Quote
                  • First post
                    Last post

                  CFD中文网 | 东岳流体 | 京ICP备15017992号-2
                  论坛登录问题反馈可联系 li.dy@dyfluid.com