CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    关于OF并行分区的问题

    OpenFOAM
    4
    11
    2172
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • aiweimo
      aiweimo 最后由 编辑

      一个方形box计算域,中间一小块区域(如下图红框处)需要放在单独设置出来放在1个核心上算,剩下的其余区域想要自动分区。这种该如何指定?
      QQ截图20190425220032.jpg
      我看了论坛里关于setFields(或者cellDict)指定manual进行手动分区的,感觉这样做太累了:xinlei: ,我有56个核心需要指定,而且网格有局部加密,手动分区难以做到负载均衡。请问,还有什么其他便捷方法么?:chouchou:
      感谢关注!

      1 条回复 最后回复 回复 引用
      • 李东岳
        李东岳 管理员 最后由 编辑

        试试这个方法?你需要topoSet创建两个区域

        https://www.openfoam.com/releases/openfoam-v1712/parallel.php

        numberOfSubdomains 2048; 
        method metis; 
        
        regions 
        { 
            heater 
            { 
                numberOfSubdomains 2; 
                method      hierarchical; 
                coeffs 
                { 
                    n           (2 1 1); 
                } 
            } 
        
            "*.solid" 
            { 
                numberOfSubdomains 16; 
                method      scotch; 
            } 
        } 
        

        线上CFD课程开始报名:http://www.dyfluid.com/class.html

        CFD高性能服务器 http://dyfluid.com/servers.html

        液 1 条回复 最后回复 回复 引用
        • 液
          液固两相流 @李东岳 最后由 编辑

          @东岳 在 关于OF并行分区的问题 中说:

          https://www.openfoam.com/releases/openfoam-v1712/parallel.php

          基金会版本的用不了:duang:

          1 条回复 最后回复 回复 引用
          • X
            xpqiu 教授 最后由 编辑

            这种应该可以

            constraints
            {
                   geometric
                {
                    type    geometric;
            
                    grow    false;
            
                    selection
                    {
                        box1
                        {
                            source  box;
                            min     (-0.1 -0.01 -0.1);
                            max     (0.1 0.30 0.1);
                        }
                        ball
                        {
                            source  sphere;
                            origin  (-0.1 -0.01 -0.1);
                            radius  0.25;
                        }
                        blob
                        {
                            source      surface;
                            surfaceType triSurfaceMesh;
                            surfaceName blob.obj;
                        }
                    }
                }
            }
            
            液 1 条回复 最后回复 回复 引用
            • 液
              液固两相流 @xpqiu 最后由 编辑

              @xpqiu 手动划分网格吗?

              X 1 条回复 最后回复 回复 引用
              • X
                xpqiu 教授 @液固两相流 最后由 编辑

                @液固两相流 不是,这个是把选定区域内的网格放到一个processor里面

                液 1 条回复 最后回复 回复 引用
                • 液
                  液固两相流 @xpqiu 最后由 编辑

                  @xpqiu 您能够介绍一下上述方法,单看您发的文件不太懂

                  X 1 条回复 最后回复 回复 引用
                  • X
                    xpqiu 教授 @液固两相流 最后由 编辑

                    @液固两相流
                    把上面这一段加到 decomposeParDict 的后面,然后在分块的时候,就会保证选出来的区域内的网格会分到同一个processor里面。

                    李东岳 1 条回复 最后回复 回复 引用
                    • 李东岳
                      李东岳 管理员 @xpqiu 最后由 编辑

                      @xpqiu 感谢分享!!:threaten: 大佬的到来让本群蓬荜生辉!

                      线上CFD课程开始报名:http://www.dyfluid.com/class.html

                      CFD高性能服务器 http://dyfluid.com/servers.html

                      X 1 条回复 最后回复 回复 引用
                      • aiweimo
                        aiweimo 最后由 编辑

                        :142: 多谢,我一定尝试一下告知结果。后来给老师干活儿忘记了:mihu:

                        1 条回复 最后回复 回复 引用
                        • X
                          xpqiu 教授 @李东岳 最后由 编辑

                          @东岳 :mihu:

                          1 条回复 最后回复 回复 引用
                          • First post
                            Last post