Skip to content
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]
皮肤
  • Light
  • Cerulean
  • Cosmo
  • Flatly
  • Journal
  • Litera
  • Lumen
  • Lux
  • Materia
  • Minty
  • Morph
  • Pulse
  • Sandstone
  • Simplex
  • Sketchy
  • Spacelab
  • United
  • Yeti
  • Zephyr
  • Dark
  • Cyborg
  • Darkly
  • Quartz
  • Slate
  • Solar
  • Superhero
  • Vapor

  • 默认(不使用皮肤)
  • 不使用皮肤
折叠
CFD中文网

CFD中文网

  1. CFD中文网
  2. OpenFOAM
  3. 自己写的一个空化求解器的气泡数,气泡质量,气泡半径和气泡半径速度的守恒方程的一些疑问

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

已定时 已固定 已锁定 已移动 OpenFOAM
18 帖子 5 发布者 15.7k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 1 离线
    1 离线
    100yearsalone
    写于 最后由 编辑
    #1

    大家好,我一直是在基于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 离线
    M 离线
    mohui
    在 中回复了 100yearsalone 最后由 编辑
    #2

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

    1 1 条回复 最后回复
  • 1 离线
    1 离线
    100yearsalone
    在 中回复了 mohui 最后由 编辑
    #3

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

    M 1 条回复 最后回复
  • yhdthuY 离线
    yhdthuY 离线
    yhdthu 大神
    写于 最后由 编辑
    #4

    界面不用处理?

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

    1 1 条回复 最后回复
  • 1 离线
    1 离线
    100yearsalone
    在 中回复了 yhdthu 最后由 编辑
    #5

    @yhdthu 没处理

    1 条回复 最后回复
  • M 离线
    M 离线
    mohui
    在 中回复了 100yearsalone 最后由 编辑
    #6

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

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 李东岳 编辑
    #7

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

    个人思路:

    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。

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 1 条回复 最后回复
  • 1 离线
    1 离线
    100yearsalone
    在 中回复了 李东岳 最后由 李东岳 编辑
    #8

    @李东岳
    你好,李老师
    我目前就想试试气泡数量密度的传输方程,我试了几个进行了测试。
    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 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 李东岳 编辑
    #9

    你开始的代码

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

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

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

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 1 条回复 最后回复
  • 1 离线
    1 离线
    100yearsalone
    在 中回复了 李东岳 最后由 100yearsalone 编辑
    #10

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

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #11

    forAll是做什么的?

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 1 条回复 最后回复
  • 1 离线
    1 离线
    100yearsalone
    在 中回复了 李东岳 最后由 编辑
    #12

    @李东岳
    读取每个cell的值

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #13

    结果越界了,用迎风试试

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 1 条回复 最后回复
  • 1 离线
    1 离线
    100yearsalone
    在 中回复了 李东岳 最后由 编辑
    #14

    @李东岳
    老师,您之前给我写了一个气泡数量密度的运输方程是图中的第一个式子
    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 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #15

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

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

    ngrd是什么?

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 1 条回复 最后回复
  • 1 离线
    1 离线
    100yearsalone
    在 中回复了 李东岳 最后由 编辑
    #16

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

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #17

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

    http://dyfluid.com/index.html
    需要帮助debug算例的看这个 https://cfd-china.com/topic/8018

    1 条回复 最后回复
  • L 离线
    L 离线
    LiuZhuang
    写于 最后由 编辑
    #18

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

    1 条回复 最后回复

  • 登录

  • 登录或注册以进行搜索。
  • 第一个帖子
    最后一个帖子
0
  • 最新
  • 版块
  • 东岳流体
  • 随机看[请狂点我]