CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    如何输出特定patch的流场

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

      各位前辈好!我现在有一个volScalarField类型的流场c_flow_origin,但我只想在程序中输出名字为“BOTTOM”的这个面的流场

      代码如下:

      volScalarField c_flow_origin = 8.97*pos(0.99-alpha1)*sqrtp_rgh/rho1); //流场c_flow
      
      label patchID = mesh.boundaryMesh().findPatchID("BOTTOM"); //查找名字为BOTTOM的面ID
      
       volScalarField c_flow_BOTTOM     //输出这个面的流场
              (
                  IOobject
                (
                  "c_flow_BOTTOM",
                  runTime.timeName(),
                  mesh,
                  IOobject::NO_READ,
                  IOobject::AUTO_WRITE
               ),         
               c_flow_origin.boundaryField()[patchID]
              );
      

      编译发现报错:

      createFields.H:139:9: error: no matching function for call to ‘Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>::GeometricField(Foam::IOobject, Foam::fvPatchField<double>&)’
      

      根据报错分析 应该是输出的 BOTTOM面流场的 数据类型volScalarField有问题,但更改了好像也不行,请问这个问题应该如何解决呢?

      感谢

      小 1 条回复 最后回复 回复 引用
      • 小
        小考拉 @小考拉 最后由 编辑

        @小考拉 自问自答来解决这个问题。

        首先定义一个全为0的流场命名为c_flow

        然后利用下面的命令

        c_flow.boundaryField()[patchID] = c_flow_origin.boundaryField()[patchID]
        

        最后输出c_flow流场即可:chitang:

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