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指点、赐教、相互交流,谢谢。 -
好像可以参考:OpenFOAM 如何更新混合物的属性
-
这个更贴近些吧,不过也不全,杂七杂八看了不少,似乎快有眉目了。
http://xiaopingqiu.github.io/2016/06/25/thermophysics1/ -
看时间估计楼主已经得到答案了,不过下面这个链接还是建议你看一下。这个人做的的关于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里面热物性是单独一块,然后混合物定义是单独一块,这两块结合起来得出的类是关于混合物的热物性的。
仅供参考,欢迎交流。