CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    twoPhaseMixture类中添加muf()函数报错求助

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

      求助大佬,为了在compressibleInterFoam求解器中添加有效粘度muEff

      surfaceScalarField muEff
          (
              "muEff",
               mixture.muf()      
            + fvc::interpolate(rho*turbulence->nut())
          );
      

      需要定义muf()函数,mixture是twoPhaseMixtureThermo类型,在对应的H文件和C文件进行更改

      virtual tmp<surfaceScalarField> muf() const;     //muf()声明
      Foam::tmp<Foam::surfaceScalarField> Foam::twoPhaseMixtureThermo::muf() const   //muf()定义
      {
          const surfaceScalarField alpha1f     
          (
              min(max(fvc::interpolate(alpha1_), scalar(0)), scalar(1))
              
          );
      
          return tmp<surfaceScalarField>    
          (
              new surfaceScalarField   
              (
                  "muf",
                  alpha1f*(thermo1_->rho())*fvc::interpolate(nuModel1_->nu())          
                + (scalar(1) - alpha1f)*(thermo2_->rho())*fvc::interpolate(nuModel2_->nu())
              )
          );
      }
      

      编译时主要报这些错误:135: 该如何解决?为什么类似的代码在incompressibleTwoPhaseMixture中可以编译?

      /home/dell/OpenFOAM/OpenFOAM-4.x/src/OpenFOAM/lnInclude/GeometricField.H:99:40: error: invalid use of incomplete type ‘class Foam::surfaceMesh’
               typedef typename GeoMesh::Mesh Mesh;
      /home/dell/OpenFOAM/OpenFOAM-4.x/src/OpenFOAM/lnInclude/GeometricField.H:103:48: error: invalid use of incomplete type ‘class Foam::surfaceMesh’
               typedef typename GeoMesh::BoundaryMesh BoundaryMesh;
      twoPhaseMixtureThermo.C:83:17: error: ‘fvc’ has not been declared
               min(max(fvc::interpolate(alpha1_), scalar(0)), scalar(1))
      
      1 条回复 最后回复 回复 引用
      • I
        Izumi 最后由 编辑

        是没添加fvc的头文件吗?

        1 条回复 最后回复 回复 引用
        • M
          Miss Zhou_DUT 最后由 编辑

          感谢回答,尝试添加了fvc.H, 只报错以下内容

          /home/dell/OpenFOAM/OpenFOAM-4.x/src/finiteVolume/lnInclude/cyclicAMIFvPatch.H:39:10: fatal error: cyclicAMILduInterface.H: 没有那个文件或目录
           #include "cyclicAMILduInterface.H"
                    ^~~~~~~~~~~~~~~~~~~~~~~~~
          

          不懂在哪里用到了cyclicAMILduInterface.H,先不管,它在src/meshTools路径下,在options里面添加路径,但是编译后又回到了一开始的报错:143:

          twoPhaseMixtureThermo.C:94:9: error: no matching function for call to ‘Foam::GeometricField<double, Foam::fvsPatchField, Foam::surfaceMesh>::GeometricField(const char [4], Foam::tmp<Foam::Field<double> >)’
                   )
          
          R 1 条回复 最后回复 回复 引用
          • R
            Rachel0096 @Miss Zhou_DUT 最后由 编辑

            @Miss-Zhou_DUT 您好,请问您解决这个问题了嘛

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