Navigation

    CFD中文网

    CFD中文网

    • Login
    • Search
    • 最新

    如何输出特定patch的流场

    OpenFOAM
    1
    2
    256
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • 小
      小考拉 last edited by

      各位前辈好!我现在有一个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 Reply Last reply Reply Quote
      • 小
        小考拉 @小考拉 last edited by

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

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

        然后利用下面的命令

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

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

        1 Reply Last reply Reply Quote
        • First post
          Last post

        CFD中文网 | 东岳流体 | 京ICP备15017992号-2