CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    自己写的一个空化求解器的气泡数,气泡质量,气泡半径和气泡半径速度的守恒方程的一些疑问

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

      大家好,我一直是在基于rhoPimpleFOAM去做一个空化的求解器。

      基本思路是;
      自己写的空化求解代码 -> rhoPimpleFOAM的代码 -> 自己定义的各个量在网格的守恒方程

      从第一步的空化求解代码得到四个自定义的值,分别是气泡数,气泡质量,气泡半径和气泡半径速度。

      气泡质量 单位kg/m3
      0_1511972725963_QQ图片20171130012438.png
      气泡数 单位1/m3
      0_1511972820047_QQ图片20171130012636.png
      气泡半径 实际上是半径乘数量 单位 1/m2
      0_1511973033428_QQ图片20171130012821.png
      气泡半径速度 实际上是半径速度乘数量 单位 1/m2s
      0_1511973110859_QQ图片20171130013055.png
      以上四个就是自定义量的守恒方程,用以计算在格子中生成后,跟随流动的变化。
      其中自定义通量phit1和密度rhot的定义分别为
      0_1511973271885_QQ图片20171130013419.png
      在creatfieds处定义了rhot,然后在0文件夹中见了一个rhot文件作如下设置:
      0_1511973383782_QQ图片20171130013539.png
      在creatfields中定义了phit1,我是仿照通量phi去写的
      0_1511973506584_QQ图片20171130013746.png

      我自己简单的试了一下好像可以,但是在真的运算中气泡数缺出现了负值如图
      0_1511973753442_QQ图片20171130014126.png
      不知各位有没有类似定义过守恒方程经验的同学能够提供点意见?

      M 1 条回复 最后回复 回复 引用
      • M
        mohui @100yearsalone 最后由 编辑

        @100yearsalone 我也是做空化这方面的,我有个问题想确认下,rhopimplefoam是基于密度基写的方程,请问你是如何引入两相流进去的呢?难道类似与正压模型那样,最后基于密度得到alpha分布吗?

        1 1 条回复 最后回复 回复 引用
        • 1
          100yearsalone @mohui 最后由 编辑

          @mohui
          我是在自己写的空化代码中求 Rayleigh–Plesset 方程,得出气相的数据和气体和液体alpha。把原方程求的rho当成混合流的密度来看,再求出液相的密度。

          M 1 条回复 最后回复 回复 引用
          • yhdthu
            yhdthu 讲师 最后由 编辑

            界面不用处理?

            长风破浪会有时,直挂云帆济沧海

            1 1 条回复 最后回复 回复 引用
            • 1
              100yearsalone @yhdthu 最后由 编辑

              @yhdthu 没处理

              1 条回复 最后回复 回复 引用
              • M
                mohui @100yearsalone 最后由 编辑

                @100yearsalone 恩,看了你的代码,感觉很奇怪的一点是,你的气泡数,气泡质量,气泡半径和气泡半径速度参数的输运方程本身有意义吗?能给出详细的推导过程,我看了看,初步看不出来你所建的输运方程的合理性。

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

                  你需要群体平衡模型来描述气泡相关的东西。你自己写的这个标量传输方程很简单,气泡数,气泡质量,气泡半径和气泡半径速度这些并不能够单纯的考虑成为标量传输。

                  个人思路:

                  1. 气泡数量密度,你可以写为(跟你那个差不多)
                    \begin{equation}
                    \frac{\partial N}{\partial t}+\nabla\cdot(\mathbf{U}N)=0
                    \end{equation}
                    上述方程你没有考虑任何成核、结晶、蒸发等。也就是说你的气泡总数是不变化。
                  2. 气泡质量你不需要传输方程。
                  3. 气泡半径不存在传输方程,如果你不考虑气泡破碎等间断性变化等,气泡半径只能是连续性变化,只需要用理想气体状态方程计算就可以,因为在上面的方程中你没有考虑其他气泡产生和消失项。
                  4. 气泡半径速度是什么?

                  另外,rhoPimpleFoam是单相求解器,基于这个求解器写方程是单向耦合。多向耦合你需要多向求解器。

                  我建议你参考群体平衡模型理论。如果你觉得很复杂,可以参考简化版:

                  Predicting gas–liquid flow in a mechanically stirred tank

                  不要考虑应用工况(如stirred tank),在这篇文章中,方程12就是你的气泡数量,但是同时考虑了气泡的破碎聚并。相对来说模型已经完善了,你直接植入进去就行。我写的方程1就是不存在扩散、不存在一、二阶动力学的情况。上述文献请只参考section 4。

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

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

                    @李东岳
                    你好,李老师
                    我目前就想试试气泡数量密度的传输方程,我试了几个进行了测试。
                    0_1512186268492_QQ图片20171202124418.png
                    你的回答公式无法正式显示,所以我自己查了一下这样定义了。
                    0_1512186155149_QQ图片20171202124137.png
                    0_1512185989034_QQ图片20171202123935.png
                    其中ng2是气泡数量密度,phis2是通量,我感觉应该是没问题的,但是实际运行后结果是
                    0_1512186359196_QQ图片20171202124547.png ng2没有发生移动。
                    我试了一下另外两种定义rg0和rg1,phis0=rhog0U,phis1=rhoU

                    0_1512186449648_QQ图片20171202124712.png
                    成功流动,结果一样
                    0_1512186672172_QQ图片20171202125102.png
                    0_1512186720291_QQ图片20171202125148.png
                    rhog和rho
                    0_1512186813243_QQ图片20171202125319.png
                    0_1512186856252_QQ图片20171202125400.png

                    rho和rhog不一样,结果是一样,代表我以后传输方程只用随便定义一个密度是吗?如果不是的话,为什么一开始的式子没发生流动呢?

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

                      你开始的代码

                      fvm::ddt() + fvc::div(phis2)
                      

                      里面你只是定义了phis2,并没有更新phis2,因此这个值每个时间步不变所以没有移动。你需要在每个时间步里面计算一下:

                      while(TIMELOOP)
                      {
                          phis2 = phi*fvc::interpolate(s2);
                      }
                      

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

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

                        @李东岳
                        我按照你给我那篇论文里的式子
                        0_1512310149139_UC截图20171203230837.png
                        不含有扩散项和源项
                        0_1512310193236_UC截图20171203230820.png
                        其中mg21就是气泡数量密度,上面的phis2是通量
                        0_1512310279986_UC截图20171203225842.png
                        气泡个数发生的测试条件是这样,我觉得我设置得没有什么问题,但是有一点不太明白
                        0_1512310344676_UC截图20171203225859.png
                        就是在结果里面为什么会出现负值?

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

                          forAll是做什么的?

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

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

                            @李东岳
                            读取每个cell的值

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

                              结果越界了,用迎风试试

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

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

                                @李东岳
                                老师,您之前给我写了一个气泡数量密度的运输方程是图中的第一个式子
                                0_1512829802730_1.png
                                对于有些标量,例如a我想跟随这个N做移动,我设另外一个标量N乘以a等于Na做同一样的运输方程,如图中式子2
                                求完N和Na以后,再相除求出a,这种方法在OF里面应该是没问题的吧?
                                我试了一下,好像不太符合我的预期。
                                我设了ng0作为第一个式子的N,得出下图:
                                0_1512830924312_UC截图20171209234652.png
                                而rg0作为a,a为常值1,ngrd的结果:
                                0_1512831035622_UC截图20171209234730.png
                                我很不解为什么ngrd的运输方程计算后会出现这种结果?

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

                                  例如a我想跟随这个N做移动,我设另外一个标量N乘以a等于Na做同一样的运输方程,如图中式子2

                                  不理解你这句话。另外你上面三个图实际上是完全一样的方程。为什么要求解三个?

                                  ngrd是什么?

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

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

                                    @李东岳
                                    ngrd就是两个标量的乘积,第一个式子求了ng,第二个式子求ngrd,最后相除得rd
                                    不过听您这么一说我可能又想错了
                                    0_1512871499145_UC截图20171210110416.png
                                    这图上面ng0是气泡数,mg0是气泡质量,rg0是气泡半径,rhog0是根据这三个计算的密度。
                                    在运输之前只有一个格子有值,运行运输方程后变成三个格子有值了,可是从密度来看另外两个格子都变成了极大的数,
                                    我就是找个方法比较稳定的传输这几个值,让他们运输以后不偏差密度值太多。

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

                                      提示一点:如果求解本身不符合物理的传输方程,结果肯定是不复合物理。

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

                                      1 条回复 最后回复 回复 引用
                                      • L
                                        LiuZhuang 最后由 编辑

                                        @100yearsalone da68eb02-968f-44a9-9840-d11aca39badb-image.png 新写的phit1里的U,这个U是从0文件夹下的U调用的么?

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