CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    OpenFOAM v-2012 singleGraph 提取一条线上的数据出错

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

      各位老师好,求助
      我使用v-2012版本自带的singleGraph工具,提取半槽道流中,一条从壁面开始,垂直于壁面的线上的数据,想看速度剖面。但是不成功,报错信息如下:

      Starting time loop
      
      Fatal error in PMPI_Recv: Message truncated, error stack:
      PMPI_Recv(171)....................: MPI_Recv(buf=0x7ffd0114aa70, count=1, MPI_BYTE, src=0, tag=1, MPI_COMM_WORLD, 
      status=0x7ffd0114a8f0) failed
      MPIDI_CH3U_Receive_data_found(131): Message from rank 0 and tag 1 truncated; 44 bytes received but buffer size is 1
      

      singleGraph的代码如下:

      \*---------------------------------------------------------------------------*/
      
      start   (0.4 0.01 -0.1);
      end     (0.4 0.01 0.1);
      fields  (nut U);
      
      // Sampling and I/O settings
      #includeEtc "caseDicts/postProcessing/graphs/sampleDict.cfg"
      
      // Override settings here, e.g.
      setConfig {     
          type    midPoint;   // midPoint, midPointAndFace uniform
          axis    distance;  // x, y, z, xyz, distance
          nPoints 2500; 
      }
      
      // Must be last entry
      #includeEtc "caseDicts/postProcessing/graphs/graph.cfg"
      // Override settings
      writeControl    adjustableRunTime;
      writeInterval	2e-3;
      // ************************************************************************* //
      

      也尝试过修改setConfig中的type,但是三种方式都是报错。修改start点和end点也无法解决问题。
      看报错信息是和MPI并行有关,但是不太懂。
      我的网格是用ICEM画的,网格量是1713万,在壁面处有边界层加密,使用scotch方法分成了12块,打算用工作站先跑着,看能不能算出湍流。
      请各位老师指点一二。

      sampleDict.cfg

      interpolationScheme cellPoint;
      
      setFormat   raw;
      
      setConfig
      {
          type    uniform;   // midPoint, midPointAndFace
          axis    distance;  // x, y, z, xyz
          nPoints 100;
      }
      

      graph.cfg

      type            sets;
      libs            ("libsampling.so");
      
      writeControl    writeTime;
      
      sets
      (
          line
          {
              $setConfig;
              start $start;
              end   $end;
          }
      );
      
      1 条回复 最后回复 回复 引用
      • 李东岳
        李东岳 管理员 最后由 编辑

        你用单核处理会出现报错么

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

        学流体的小明 1 条回复 最后回复 回复 引用
        • 学流体的小明
          学流体的小明 @李东岳 最后由 编辑

          @李东岳 串行是可以运行的,不会报错。应该就是decomposePar的时候有些问题。
          搜索了一下,下面这个也是同同样的问题,不过也没个最终的解决方案
          https://blog.csdn.net/imastrid/article/details/121085124

          学流体的小明 1 条回复 最后回复 回复 引用
          • 学流体的小明
            学流体的小明 @学流体的小明 最后由 编辑

            @学流体的小明 在 OpenFOAM v-2012 singleGraph 提取一条线上的数据出错 中说:

            串行是可以运行的,不会报错。
            但是会有警告……

            --> FOAM Warning : 
            The search for an edge-connected face and tet-point failed.
            
                From void Foam::particle::changeFace(Foam::label)
                in file particle/particle.C at line 329.
            --> loading function object 'singleGraph'
            
            wallShearStress wallShearStress:
                processing all wall patches
            

            下面的壁面剪切力的工具是正常输出了数据,但是singleGraph没有。
            bb49e778-73fb-4682-92ab-04505770a196-image.png

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

              The search for an edge-connected face and tet-point failed

              这个错误我倒是遇到过。当时换了个网格就好了。你这个是规规矩矩的六面体网格?你用sample也会报这个错误么

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

              学流体的小明 1 条回复 最后回复 回复 引用
              • 学流体的小明
                学流体的小明 @李东岳 最后由 编辑

                @李东岳 sample提取某一个点的值,没有问题,不报错也没有警告

                李东岳 1 条回复 最后回复 回复 引用
                • 李东岳
                  李东岳 管理员 @学流体的小明 最后由 编辑

                  @学流体的小明 你用sample提取一个线试试呢

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

                  学流体的小明 1 条回复 最后回复 回复 引用
                  • 学流体的小明
                    学流体的小明 @李东岳 最后由 编辑

                    @李东岳 也只能这样了,之前是一直想直接使用singleGraph
                    谢谢大佬~

                    1 条回复 最后回复 回复 引用
                    • 学流体的小明
                      学流体的小明 最后由 编辑

                      更新一下
                      发现了问题的源头,是网格的问题。
                      我使用ICEM画网格,或者OpenFOAM的blockMesh工具画网格,都是先画背景网格,然后对近壁面进行多次加密。加密是八叉树类型的加密,所以在网格尺寸变化的地方,大网格的尺寸直接是小网格的二倍。这样的网格确实不好,可能一些拓扑结构上的不好导致了singleGraph程序进行插值时找不到插值的基点。
                      解决办法:
                      举例说距离壁面0~1的网格尺寸是1,1~2的网格尺寸是2,那么就使用singleGraph在0~1这个范围内提取一条线,在1~2再提取一条线,这时的type可以是uniform,也可以是midPoint或者midPointAndFace。一句话,就是分段提取信息。
                      我是重新画了网格, 老师说之前画的这网格根本不能用:mihu:

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