tPEF湍流模型



  • 各位Foamer大家好。
    最近我在修改openFoam中twoPhaseEulerFOAM中的湍流模型。主要是因为目前里边的continousGasKEpsilon(CGKE)湍流模型是基于kEpsilon的。而我想创建一个基于RNGkEpsilon的版本,叫做continousGasRNGkEpsilon(CGRNGKE)。在CGKE基础上修改代码后,在phaseCompressible湍流分类中也已经通过编译,形成了新的库文件phaseCompressibleTurbulenceModels.so。以上均没有问题。但是在重新编译twoPhaseEulerFoam求解器的时候,总是得到错误如下:
    undefined reference to `Foam::RASModels::RNGkEpsilon<Foam::EddyDiffusivity<Foam::ThermalDiffusivity<Foam::PhaseCompressibleTurbulenceModelFoam::phaseModel > > >::typeName'。
    不知道哪位大神知道原因,敬请指教。谢谢


  • 管理员

    @dzsmoglaitPEF湍流模型 中说:

    undefined reference

    这个问题太普遍了,不好确定,推荐几个贴:

    http://www.cfd-china.com/topic/926/未定义的引用-undefined-reference

    http://www.cfd-china.com/topic/3191/编译自己的求解器遇到问题-undefined-reference/10

    主要是你的类函数问题



  • @dzsmoglaitPEF湍流模型 中说:

    oPhaseEulerFoam求解器的时候,总是得

    感谢@东岳 老师的答复。目前此问题已经解决。原因也很简单。因为CGKE是基于kEpsilon的。而在PhaseCompressible湍流模型类中,在编译CGKE之前,事先通过PhaseCompressible这一类中的宏makRASModel(kEpsilon)编译了PhaseCompressible版本的kEpsilon模型。因此CGKE中任何函数在调用kEpsilon时就可以调用的到。本问题的解决办法就是同样的在makePhaseCompressibles.C中make一下RNGkE就行了,即makRASModel(RNGkEpsilon)。
    如果有其它Foamer对上述解释不理解,我就再补充两句。kEpsilon, RNGkEpsilon这类湍流模型实际上是通用的模型,在incompressible,compressible, phaseCompressible等不同类的湍流模型类中有不同的体现。当然,这个涉及到OpenFoam的湍流模型代码结构,集成关系最多有8层左右,尚不了解的童鞋可以去参考此博客https://marinecfd.xyz/post/openfoam-templated-turbulence-modeling-framework-part-1/。链接是第一部分,一共三个部分。


Log in to reply
 


CFD中文网 | 东岳流体学术 | 东岳流体商业 | 吉ICP备20003622号-1