CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    OpenFoam张量取值运算

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

      我的部分代码是这样的

              volTensorField gradU("gradU", fvc::grad(U));
              scalarField parU1 = gradU.xz();
              scalarField parU2 = gradU.zz(); 
      

      我想取速度梯度中的某两个量,可是出现了这样的错误

      TEqn.H:4:35: error: ‘Foam::volTensorField {aka class Foam::GeometricField<Foam::Tensor<double>, Foam::fvPatchField, Foam::volMesh>}’ has no member named ‘xz’
               scalarField parU1 = gradU.xz();
                                         ^
      TEqn.H:5:35: error: ‘Foam::volTensorField {aka class Foam::GeometricField<Foam::Tensor<double>, Foam::fvPatchField, Foam::volMesh>}’ has no member named ‘zz’
               scalarField parU2 = gradU.zz(); 
                                         ^
      

      大神们帮我看看这是为什么呢?该怎么改呢?

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

        xz()只能用于tensor,但是你的gradU是volTensorField,因此只能用于处理gradU[celli].xy()。

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

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

          @李东岳 那我该怎么提取速度梯度中的量呢?

          gradU.component(tensor::ZX)
          

          这样对吗?

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