CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    snappyHexMesh并行后导致对topoSet建立的faceZone流量监测不准!

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

      各位老师同学好,我想通过topoSet建立faceZone监测内部面的流量,但是出现了以下问题:

      • 当snappyHexMesh不是并行时,对faceZone流量监测是准的,使用的脚本是:

      blockMesh
      surfaceFeatureExtract
      snappyHexMesh
      topoSet
      checkMesh
      decomposePar
      mpirun -np 32 icoFoam -paralle
      reconstructPar

      • 但是,当使用snappyHexMesh并行时,就会出现对faceZone流量监测不准的情况,此时使用的脚本是:

      blockMesh
      surfaceFeatureExtract
      decomposePar
      mpirun -np 32 snappyHexMesh -parallel
      reconstructParMesh -constant -noZero
      topoSet
      checkMesh
      rm -rf processor*
      decomposePar
      mpirun -np 32 icoFoam -parallel
      reconstructPar

      希望各位老师同学给点建议,谢谢🙏

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

        @MingfengWang 在 snappyHexMesh并行后导致对topoSet建立的faceZone流量监测不准! 中说:

        就会出现对faceZone流量监测不准的情况

        差多少。1%?5%?还是20 30%?

        监测内部面的流量

        怎么监控的

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

        M 3 条回复 最后回复 回复 引用
        • M
          MingfengWang @李东岳 最后由 MingfengWang 编辑

          @李东岳 感谢李老师的回复!

          1. 监控方法:
          • 用topoSet建立一个内部面faceZone,该面垂直于流动方向,平行于出入口
          • 使用surfaceFieldValue监控,具体如下:
          flowRateFaceZone
          {
            type            surfaceFieldValue;
            libs            (fieldFunctionObjects);
          
            operation       sum;
            regionType      faceZone;
            name          middleFace;
          
            fields
              (
                  phi
              );
            writeFields    false;
          }
          
          1. 误差
          • snappyHexMesh单核时,内部面的流量等于出入口的流量,为2.093200e-13 m3/s
          • snappyHexMesh并行时,内部面流量6.733410e-14 m3/s,出入口流量为2.093200e-13 m3/s
          • 误差较大,差了一个数量级
          1 条回复 最后回复 回复 引用
          • M
            MingfengWang @李东岳 最后由 编辑

            @李东岳 而且这种情况只出现在服务器上,不知道为什么!
            我在自己笔记本上测试时,snappyHexMesh单核和并行的结果都对。但是,把相同的设置放到服务器上时,snappyHexMesh并行就会有问题。

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

              @李东岳
              我测试了一下,在服务器上模拟时,当核心数为4、8时监控的内部面上的流量正常。但是,当核心数为16、32、64时监控的内部面上的流量出错,且核心数越多误差越大,最大误差在一个数量级。

              以上使用的监控方法为在controlDict文件中写入以下代码:

              flowRateFaceZone
              {
                type            surfaceFieldValue;
                libs            (fieldFunctionObjects);
                operation       sum;
                regionType      faceZone;
                name          middleFace;
                fields
                  (
                      phi
                  );
                writeFields    false;
              }
              

              另外,我也尝试着使用另外一种方法,将flowRateFaceZone写入到controlDict中,具体如下:

              #includeFunc flowRateFaceZone(name=middleFace)

              结果还是不行,没有结果输出。

              最后,还使用了后处理命令 "postProcess -func "flowRateFaceZone(name=middleFace)",同样还是没有结果输出。

              求李老师指点,谢谢!

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