CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    求并行生成网格以及划分网格的方法

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

      需要搞个大网格,亿到百亿量级,分个上万核甚至更多。
      之前试过在fat节点用blockMesh生成1024立方的网格,以及串行划分网格,耗时太长,而且1024立方已经相当极限了,这才10亿。
      blockMesh好像没有并行的,不知道各位大佬有没有好的方法?
      至于并行划分网格,我知道OpenFOAM装的scotch和metis都有并行版本的,不会用,求个使用方法?

      算不准,发个散,报error,没问题!

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

        @number44 目前openfoam并行算法都是要给予网格的。就是要网格生成出来之后才能并行计算。因此不存在并行生成网格。所以你说的scotch以及metis,不能用于并行生成网格。老铁你这碉堡了。这么多经费么,上万核百亿级。用openfoam算咩?

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

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

        Number44 1 条回复 最后回复 回复 引用
        • Number44
          Number44 @李东岳 最后由 编辑

          @李东岳 在 求并行生成网格以及划分网格的方法 中说:

          @number44 目前openfoam并行算法都是要给予网格的。就是要网格生成出来之后才能并行计算。因此不存在并行生成网格。所以你说的scotch以及metis,不能用于并行生成网格。老铁你这碉堡了。这么多经费么,上万核百亿级。用openfoam算咩?

          那scotch和metis可以并行decompose吗?
          我知道OpenFOAM编译的时候都可以把并行的ptscotch一起编了的。
          blockMesh的耗时其实还能接受,decomposePar是真的久。
          老板要求,可能而已,先准备好工具,毕竟超算,超级算钱。算是OpenFOAM算吧。

          算不准,发个散,报error,没问题!

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

            @number44

            那scotch和metis可以并行decompose吗?

            不能。

            不过我想到一个曲线救国的方案就是用snappyHexMesh生成网格。这个可以并行。只不过仅仅进行refineMesh处理而已。应该也可以。

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

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

            Number44 T 2 条回复 最后回复 回复 引用
            • Number44
              Number44 @李东岳 最后由 编辑

              @李东岳 在 求并行生成网格以及划分网格的方法 中说:

              @number44

              那scotch和metis可以并行decompose吗?

              不能。

              不过我想到一个曲线救国的方案就是用snappyHexMesh生成网格。这个可以并行。只不过仅仅进行refineMesh处理而已。应该也可以。

              还是没解决decompose的问题,不过还是非常感谢大佬的专业意见。

              算不准,发个散,报error,没问题!

              1 条回复 最后回复 回复 引用
              • 田畔的风
                田畔的风 讲师 最后由 田畔的风 编辑

                我能想到的一个方法是先用blockMesh画一个比较粗的网格,然后执行decomposePar做分区,最后并行执行refineMesh/refineHexMesh在每个计算节点上细分网格。
                不过这个操作我没尝试过,毕竟孩子长这么大最多也就画过1000万网格:quwan:

                1 条回复 最后回复 回复 引用
                • 李子橙
                  李子橙 最后由 编辑

                  可以试试cartesianMesh,用的是 openMP 并行技术,需要设置一下环境变量(export OMP_NUM_THREADS=n),不过没试过上亿量级的网格划分:146:

                  1 条回复 最后回复 回复 引用
                  • bestucan
                    bestucan 版主 副教授 最后由 编辑

                    我不生产知识,我只是知识的搬运工:mihu:

                    Parallel mesh generation - Wikipedia.zip

                    滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

                    异步沟通方式(《posting style》from wiki)(下载后打开):
                    https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
                    提问的智慧(github在gitee的镜像):
                    https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way/blob/master/README-zh_CN.md

                    1 条回复 最后回复 回复 引用
                    • T
                      TroJason @李东岳 最后由 编辑

                      @李东岳 在 求并行生成网格以及划分网格的方法 中说:

                      @number44

                      那scotch和metis可以并行decompose吗?

                      不能。

                      不过我想到一个曲线救国的方案就是用snappyHexMesh生成网格。这个可以并行。只不过仅仅进行refineMesh处理而已。应该也可以。

                      如果这样的话,分别在各processor去refineMesh,reconstructPar会报错吧

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