CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    求教forAll循环内部场问题

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

      神们,阅读cellLimited代码时遇到forAll循环的问题,具体见下面代码:

      const labelUList& owner = mesh.owner();    //owner单元列表
      const labelUList& neighbour = mesh.neighbour();    //neighbour单元列表
      
      Field<Type> maxVsf(vsf.primitiveField());    //定义一个场量,并只将vsf内部场值赋给它
      Field<Type> minVsf(vsf.primitiveField());     //定义一个场量,并只将vsf内部场值赋给它
      
      forAll(owner, facei)    //facei从0到owner.size()增加,遍历owner单元
      {
      label own = owner[facei];    //facei对应的owner单元号
      label nei = neighbour[facei];    //facei对应的neighbour单元号
      
      const Type& vsfOwn = vsf[own];
      const Type& vsfNei = vsf[nei];
      
      maxVsf[own] = max(maxVsf[own], vsfNei);
      minVsf[own] = min(minVsf[own], vsfNei);
      
      maxVsf[nei] = max(maxVsf[nei], vsfOwn);
      minVsf[nei] = min(minVsf[nei], vsfOwn);
      }
      

      上面代码我知道什么意思,即求某个网格单元与其相邻的所有网格单元的某个量的最大值和最小值。但不明白的是为何上述forAll循环只是针对内部场的,owner中不是包含所有面(包括边界面)对应的owner单元吗?face文件和owner文件的size是一样的。
      另外,也请牛们看下我代码的注释对不?
      求教了,:143:

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

        owner中不是包含所有面(包括边界面)对应的owner单元吗?

        owner是内部面的label。不包括边界面。

        赵老师最近研究的深啊,是亲自操刀了么。:chouchou:

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

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

          @李东岳 在 求教forAll循环内部场问题 中说:

          owner是内部面的label。不包括边界面。

          微信图片_20220317121050.png
          但owner的size不是和faces一样吗?那遍历不是遍历所有面?:143:

          哈哈,项目和科研压力大啊,必须卷起来。不像李老师,信手拈来,风轻云淡:chouchou:

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

            @赵海盛
            mesh.owner() 返回的是 内部面的 owner,跟 polyMesh 下面的owner 文件不一样,这个文件对应的是所有面的owner,对应的函数是 mesh.faceOwner()

            赵 1 条回复 最后回复 回复 引用
            • 赵
              赵海盛 @xpqiu 最后由 编辑

              @xpqiu 牛,谢谢老兄,:146:

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