CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    OpenFOAM并行输出格式的问题

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

      我在学校集群上算东西,有些算例是直接在主文件夹里面输出每个时间点的数据,有的是在processor*/文件夹里面输出的。大家知道这个设置的点是在哪儿么?

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

        补充一下,前者是processor文件夹里面没有各个时间点的数据,而process文件夹里面没有时间点的数据,如下图

        2d8695bb-f16f-4166-a683-99ce599116ae-image.png

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

          是不是reconstruct之后的数据?然后把proce删了,又decomp一下?

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

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

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

            没有没有,这个是运行的时候就开始出现各个时间点的数据的,每个保存的时间点他都自动保存在主目录了。我就觉得很奇怪,但是又觉得这是个很好的方式。有一次似乎看过输出格式有写这样子,但是后面找不到了,所以想来问问

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

              还没这么玩过啊。我Google了一下,你试试这个?

              https://www.cfd-online.com/Forums/blogs/kkk/2957-auto-reconstructpar.html

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

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

              hurricane007 1 条回复 最后回复 回复 引用
              • Z
                Zephyr 最后由 编辑

                你可以查看这个文件 $FOAM_TUTORIALS/IO/fileHandler/Allrun

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

                  你用的是哪个版本啊,我的4.1好像没有这个东西。tutorials里面并没有IO

                  744f5951-62b1-481c-a4e1-e6f5fbba0cb5-image.png

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

                    @东岳 但是我这个运行的目录里面没有这些代码啊。。。就是OpenFOAM 4.1 的tutorials,不然我上传一下大家分析下?还是因为这是我的cluster的设置?不过不科学啊
                    Goldschmidt.zip

                    Z 1 条回复 最后回复 回复 引用
                    • Z
                      Zephyr @hurricane007 最后由 编辑

                      @hurricane007 啊,好吧,我用的版本是开发版v1712, 我直接给你贴出来好了

                      #!/bin/sh
                      cd ${0%/*} || exit 1                        # Run from this directory
                      . $WM_PROJECT_DIR/bin/tools/RunFunctions    # Tutorial run functions
                      
                      runApplication blockMesh
                      
                      application=$(getApplication)
                      
                      #- Test writing collated format
                      runApplication decomposePar -fileHandler collated
                      runParallel $application -fileHandler collated
                      runApplication reconstructPar -latestTime -fileHandler collated
                      
                      #- Delete collated files
                      rm -rf processors
                      
                      #- Test writing uncollated format
                      runApplication -s uncollated decomposePar -fileHandler uncollated
                      runParallel -s uncollated $application -fileHandler uncollated
                      
                      #- Restart from uncollated
                      runParallel -s collated $application -fileHandler collated
                      runApplication -s collated reconstructPar -latestTime -fileHandler collated
                      
                      #- Convert the parallel format to uncollated
                      runParallel foamFormatConvert -fileHandler uncollated
                      
                      #------------------------------------------------------------------------------
                      
                      hurricane007 1 条回复 最后回复 回复 引用
                      • hurricane007
                        hurricane007 @Zephyr 最后由 编辑

                        @Zephyr
                        这个做法应该是运行完再reconstructPar,然后删除processers里面的文件,用的是collated格式,应该是这篇文章里面提到的OpenFOAM Parallel I/O.
                        但是,我找了下我那个case,发现并没有这个设置,所以发上来看看大家有没有见过。

                        Z 1 条回复 最后回复 回复 引用
                        • Z
                          Zephyr @hurricane007 最后由 编辑

                          @hurricane007 你仔细看一下那些算例的Allrun怎么写的,如果用mpirun -np <nprocs> <executable> 后面必须带 -parallel参数,否则就变成算n个一模一样的串行了

                          hurricane007 3 条回复 最后回复 回复 引用
                          • hurricane007
                            hurricane007 @Zephyr 最后由 编辑

                            @Zephyr @Zephyr
                            你这个倒是提醒了我,我去提交个单核的算一算。查一下cluster的documentation,cluster用的是slurm, 看例子是上面设置好以后最后srun就可以了,似乎不用自己加parallel,提交的脚本大概是这样

                            #!/bin/bash
                            #
                            # Submission script for Lemaitre3
                            #SBATCH --job-name=testDPMFoam
                            #SBATCH --output=DPMLog
                            #SBATCH --time=24:00:00 # hh:mm:ss
                            #
                            #SBATCH --ntasks=1 # 多核就直接把这儿变成要的核数,提前做好blockMesh 和 decomposePar
                            # SBATCH --nodes=1
                            #SBATCH --mem-per-cpu=2000 # megabytes
                            #
                            srun DPMFoam
                            
                            
                            1 条回复 最后回复 回复 引用
                            • hurricane007
                              hurricane007 @Zephyr 最后由 编辑

                              @Zephyr
                              你这个倒是提醒了我,我去提交个单核的算一算。查了一下cluster的documentation,cluster用的是slurm, 看例子是上面设置好以后最后srun就可以了,似乎不用自己加parallel,提交的脚本大概是这样

                              #!/bin/bash
                              #
                              # Submission script for Lemaitre3
                              #SBATCH --job-name=testDPMFoam
                              #SBATCH --output=DPMLog
                              #SBATCH --time=24:00:00 # hh:mm:ss
                              #
                              #SBATCH --ntasks=1 # 多核就直接把这儿变成要的核数,提前做好blockMesh 和 decomposePar
                              # SBATCH --nodes=1
                              #SBATCH --mem-per-cpu=2000 # megabytes
                              #
                              srun DPMFoam
                              
                              
                              1 条回复 最后回复 回复 引用
                              • hurricane007
                                hurricane007 @Zephyr 最后由 编辑

                                @Zephyr 破案了,就是没有并行所以直接输出在case 目录了,所以要用mpirun -np 6 DPMFoam -parallel 提交。不知道学校的cluster有啥问题,用srun 运行wiki上那个MPI例子就会并行,运行DPMFoam 就不会并行。已经和学校IT说了,看有啥反馈

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

                                  感谢分享 :xiexie:

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

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

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