CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    OpenFOAM多组分返回热物性

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

      现在在解析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指点、赐教、相互交流,谢谢。

      1 条回复 最后回复 回复 引用
      • 李东岳
        李东岳 管理员 最后由 编辑

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

        线上CFD课程开始报名:http://www.dyfluid.com/class.html

        CFD高性能服务器 http://dyfluid.com/servers.html

        Z C 2 条回复 最后回复 回复 引用
        • Z
          zwl @李东岳 最后由 编辑

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

          1 条回复 最后回复 回复 引用
          • 李东岳
            李东岳 管理员 最后由 编辑

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

            线上CFD课程开始报名:http://www.dyfluid.com/class.html

            CFD高性能服务器 http://dyfluid.com/servers.html

            Z 1 条回复 最后回复 回复 引用
            • Z
              zwl @李东岳 最后由 编辑

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

              1 条回复 最后回复 回复 引用
              • 浪
                浪迹天大 最后由 编辑

                好像可以参考:OpenFOAM 如何更新混合物的属性

                OpenFOAM 学习交流:https://openfoam.top

                Z 1 条回复 最后回复 回复 引用
                • Z
                  zwl 最后由 编辑

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

                  1 条回复 最后回复 回复 引用
                  • Z
                    zwl @浪迹天大 最后由 编辑

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

                    1 条回复 最后回复 回复 引用
                    • C
                      cccrrryyy 教授 最后由 编辑

                      看时间估计楼主已经得到答案了,不过下面这个链接还是建议你看一下。这个人做的的关于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里面热物性是单独一块,然后混合物定义是单独一块,这两块结合起来得出的类是关于混合物的热物性的。

                      仅供参考,欢迎交流。

                      I don't want to survive, I want to thrive.

                      1 条回复 最后回复 回复 引用
                      • C
                        cccrrryyy 教授 @李东岳 最后由 编辑

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

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

                        期待解答。

                        I don't want to survive, I want to thrive.

                        1 条回复 最后回复 回复 引用
                        • 李东岳
                          李东岳 管理员 最后由 编辑

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

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

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

                          线上CFD课程开始报名:http://www.dyfluid.com/class.html

                          CFD高性能服务器 http://dyfluid.com/servers.html

                          C 1 条回复 最后回复 回复 引用
                          • C
                            cccrrryyy 教授 @李东岳 最后由 编辑

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

                            实际就是rho_

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

                            I don't want to survive, I want to thrive.

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