Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. OpenFOAM
  3. twoPhaseMixture类中添加muf()函数报错求助

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

已定时 已固定 已锁定 已移动 OpenFOAM
4 帖子 3 发布者 3.1k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • M 离线
    M 离线
    Miss Zhou_DUT
    写于 最后由 编辑
    #1

    求助大佬,为了在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 离线
    I 离线
    Izumi
    写于 最后由 编辑
    #2

    是没添加fvc的头文件吗?

    1 条回复 最后回复
  • M 离线
    M 离线
    Miss Zhou_DUT
    写于 最后由 编辑
    #3

    感谢回答,尝试添加了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 离线
    R 离线
    Rachel0096
    在 中回复了 Miss Zhou_DUT 最后由 编辑
    #4

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

    1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]