OpenFOAM多组分返回热物性



  • 现在在解析reactingTwoPhaseEulerFoam求解器,因此以此为例说明求助问题:
    研究气液两相,液相为纯相,气相包含空气和蒸汽。
    那么我的问题是求解器内直接给的是气相的物性(应该是混合物性,比如密度等),但是每个组分在字典里都单独给了状态方程参数,我猜想会先单独求解各组分物性然后再混合,仔细看了两天代码,求解器看了一遍,热物性库也看了不少,就是没发现在哪进行的混合计算。看求解器感觉求解器里获得的直接就是混合的,看热物性库,感觉求的是每相的单组分的。中间的过度始终没找到。
    另外在rhoThermo里调用状态方程里的密度,和可压缩性是这样的:

        rho_
        (
            IOobject
            (
                phasePropertyName("thermo:rho"),
                mesh.time().timeName(),
                mesh,
                IOobject::NO_READ,
                IOobject::NO_WRITE
            ),
            mesh,
            dimDensity
        ),
    
        psi_
        (
            IOobject
            (
                phasePropertyName("thermo:psi"),
                mesh.time().timeName(),
                mesh,
                IOobject::NO_READ,
                IOobject::NO_WRITE
            ),
            mesh,
            dimensionSet(0, -2, 2, 0, 0)
        ),
    

    thermo:rho是在哪定义的,没看到。。。
    请研究这方面的各位CFDers指点、赐教、相互交流,谢谢。


  • CORE 网格教授 OpenFOAM教授 管理员

    phasePropertyName("thermo:rho"),中的thermo:rho是初始化不是定义



  • @东岳 我知道它的意思是初始化,可我想知道这个表示方法怎么来的,它的具体实现在哪?
    东岳老师了解多组分的物性计算流程吗?单组分物性到混合物性的计算过程,有大致流程就行,具体细节我可以自己去看,我的思路现在断了一块,能给些提示对我的帮助会很大,谢谢。


  • CORE 网格教授 OpenFOAM教授 管理员

    目前还没计算过带化学反应的组分传输呢。这块我放在2019年后半段 :duang:



  • @东岳 其实我也不带化学反应,只是多组分,有相变。那我先研究研究,趟趟路~:chouchou:





  • 这个更贴近些吧,不过也不全,杂七杂八看了不少,似乎快有眉目了。
    http://xiaopingqiu.github.io/2016/06/25/thermophysics1/



  • @浪迹天大 谢谢,之前看过,忘了,重看一遍,收获不小。:chigua:



  • 看时间估计楼主已经得到答案了,不过下面这个链接还是建议你看一下。这个人做的的关于OpenFOAM的东西挺好的,他在cfd-online(https://www.cfd-online.com/Forums/members/fumiya.html)上也比较活跃。

    http://caefn.com/openfoam/solvers

    热物性主要是在src/thermophysicalModels里面,我只看过basicThermo。基本逻辑是,basicThermo发展出fluidThermo,fluidThermo发展出psiThermo和rhoThermo。然后psiThermo和rhoThermo结合heThermo发展出psiHeThermo和rhoHeThermo(这两个就是你在使用求解器的时候告诉OpenFOAM的热物性名字,thermoType里面的type),你需要的关于混合物物性的计算在这两个类里面,主要是里面的calculate()函数。这也是为什么在涉及到热物性的求解器里面的能量方程(比如HEqn.H)的末尾会有一个thermo.correct(),这个correct()函数实际上就可以理解为calculate(),即在求解能量方程之后更新混合物的热物性。

    个人理解是,OpenFOAM里面热物性是单独一块,然后混合物定义是单独一块,这两块结合起来得出的类是关于混合物的热物性的。

    仅供参考,欢迎交流。



  • @东岳 请问这个thermo:rho是初始化是什么意思?如果我把里面的IOobject::NO_WRITE改成IOobject::AUTO_WRITE,我在输出结果里是可以看到thermo:rho(以及thermo:psi)的,这个thermo:rho和thermo:psi是不是就是按照混合物热物性更新得到的密度和可压缩比呢?

    一直很好奇为什么名字不直接做成"rho"和"psi",而要做成"thermo:rho"和"thermo:psi",这里面是有什么含义么,还是就是随便取个名字。

    期待解答。


  • CORE 网格教授 OpenFOAM教授 管理员

    thermo:rho这个词随便写,你可以写成thermo:::rho,这是一个名字,实际就是rho_。

    一直很好奇为什么名字不直接做成"rho"和"psi",而要做成"thermo:rho"和"thermo:psi",

    防止冲突,你这么写输出是thermo:::rho表示实在rhoThermo.C里面输出的,求解器如果还输出rho,这样两个thermo:::rho和rho不冲突



  • @东岳OpenFOAM多组分返回热物性 中说:

    实际就是rho_

    这样!明白了明白了,谢谢。


 

Forest
Mountains