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. MPPICInterFoam 的Ueqn中到底該不該再乘以alphac

MPPICInterFoam 的Ueqn中到底該不該再乘以alphac

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

    我也很纠结, 我问过好几个人, 他们也不清楚. 不过我的算例中, 乘和不乘对结果影响不大. 我的是dilute flow

    1 条回复 最后回复
  • 李东岳李 在线
    李东岳李 在线
    李东岳 管理员
    写于 最后由 编辑
    #3
    fvVectorMatrix UEqn
    (
        fvm::ddt(alphacRho, U)
      + MRF.DDt(alphacRho, U)
      - fvm::Sp(fvc::ddt(rho) + fvc::div(rhoPhi), U)
      + fvm::div(rhoPhi, U)
      + turbulence->divDevRhoReff(U)
      ==
        fvOptions(rho, U)
      + cloudSU
    );
    

    之前好像看到过类似的问题,为何不把上面的代码变成

    fvVectorMatrix UEqn
    (
        fvm::ddt(rho, U)
      + MRF.DDt(rho, U)
      - fvm::Sp(fvc::ddt(rho) + fvc::div(rhoPhi), U)
      + fvm::div(rhoPhi, U)
      + turbulence->divDevRhoReff(U)
      ==
        fvOptions(rho, U)
      + cloudSU
    );
    

    你说的就是上面这种形式吧?然后计算试试?

    目前没有一行一行的推导这个求解器方程,大略看一眼好像方程植入不一致,不过需要更深层次的debug

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

    zheZ 1 条回复 最后回复
  • zheZ 离线
    zheZ 离线
    zhe
    在 中回复了 李东岳 最后由 编辑
    #4

    @东岳 改成您寫的這個形式,相當於全部都只是用rho,不再考慮alphac.但是在應力項中也得把alphac去掉.
    您這個就相當於跟interFoam一樣了,但是MPPICInterFoam用的是可壓縮的模型,考慮到了固體粒子的相分數和密度. 那麼是不是代表,可以把流體相(氣體+液體)整體的密度rho通過alpha1rho1+alpha2rho2計算出來,然後再通過alphac+theta=1來跟固相耦合.那麼就需要再考慮每項都需要alphac. 那麼就是說根據現在的公式只要把公式裏的對流相乘以個alphac. 我會把兩種情況都試試,後期跟新上來.如果有覺得我這個觀點有問題的,歡迎隨時更正,謝謝.

    1 条回复 最后回复
  • Y 离线
    Y 离线
    yfclark 神
    写于 最后由 编辑
    #5

    我觉得应该,但是传统的欧拉朗日方法基本认为粒子不占体积,所以你 有没有alphac基本没有影响

    zheZ 1 条回复 最后回复
  • zheZ 离线
    zheZ 离线
    zhe
    在 中回复了 yfclark 最后由 编辑
    #6

    @yfclark 謝謝回覆.那麼高濃度粒子的情況呢?像MPPIC可以允許粒子佔體積65%,這樣的情況是不是會有很大的影響了?

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

    MPPICInterFoam虽然考虑密度,但是是不可压缩。另外,这里面的$\rho$是$\alpha_1\rho_1+\alpha_2\rho_2$,所以原代码应该是$\nabla\cdot((\alpha_1\rho_1+\alpha_2\rho_2)\bfU)$,如果你要加$\alpha$进去,是要换成$\nabla\cdot(\alpha_1\rho_1\bfU)$么?还是$\nabla\cdot(\alpha_1(\alpha_1\rho_1+\alpha_2\rho_2)\bfU)$。

    我想推一下这个。不过最近时间太少了 :zoule: 如果你们能分享下最终的方程就太好啦

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

    1 条回复 最后回复
  • zheZ 离线
    zheZ 离线
    zhe
    写于 最后由 李东岳 编辑
    #8

    考慮固體粒子也佔有一部分體積,並且將氣體和液體聯合求解,我推了一下氣液混合的密度公式,並不是rho=rho1*alpha1+rho2*alpha2.而是alphac*rho=alpha1*rho1+alpha2*rho2. 所以在原來creatfile.H裏的定義應該是有問題的,請查證.那也就是說,凡是涉及到通過密度求質量的公式,在MPPICInterFoam裏都應該用alphac*rho. 那麼在對流項,我覺得應該改成div(alphacRho, U). 有錯的話,希望指出,謝謝.

    zheZ 1 条回复 最后回复
  • zheZ 离线
    zheZ 离线
    zhe
    在 中回复了 zhe 最后由 李东岳 编辑
    #9

    @zhe 不好意思,打錯了.最後的對流項應該是div(alphaRhoPhic, U).

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

    @zhe 目前不好评论。需要深入去看代码,实在没时间了,我可以把手头的manuscript写完之后,再处理这个求解器。手头有好多求解器要处理 :135: buoyantPimpleFoam和Osher格式也压了好久了.. 不过我会持续跟进你的讨论!也感谢分享!:chouchou:

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

    zheZ 1 条回复 最后回复
  • zheZ 离线
    zheZ 离线
    zhe
    在 中回复了 李东岳 最后由 编辑
    #11

    @东岳 好的,多謝回覆.我會接着再試試重新定義rho,等您有時間了,希望能多指導.

    1 条回复 最后回复
  • bestucanB 离线
    bestucanB 离线
    bestucan 版主 大神
    写于 最后由 编辑
    #12

    说两个猜想。
    如果是alphc(fake)*rho = alpha1*rho1 + alpha2*rho2。
    那得是alpha1、alpha2都是未归一化的值。
    (如果alpha1 + alpha2 = 1,那么rho = alpha1*rho1 + alpha2*rho2,未找到alpha1和alpha2的关系。)
    这种情况下rho = (alpha1*rho1 + alpha2*rho2)/alphac(fake)即密度=质量/体积

    实际上代码里的rho(code) = alpha1*rho1 + alpha2*rho2,即上面的质量。
    即rho(code)是体积为alphac(fake)的混合物的质量
    即rho(code)是单位alphac(fake)的质量

    下面开始猜:
    alphac(code)是归一化过的,在代码里有显示,是1-xxx。
    那么猜测:与alpha1和alpha2类似的数值alphac(real)隐含在alphac(code)中。
    即alphac(code)=alphac(real)/alphac(fake)

    那么rho(code) * alphac(code)代入以上定义就等于:(alpha1*rho1 + alpha2*rho2)/alphac(fake)*alphac(real)
    即rho*alphac(real)
    (rho(code) * alphac(code) -> rho*alphac(real))

    上面是猜rho可能的定义。下面是猜有的地方乘alphac,有的地方不乘。


    上面说了alphac是归一化过的,则rho(code)是单位体积内的,这种单位内的量容易搭积分的便车补上计算。对流项没有考虑alphac,因为对流计算过程涉及体积(速度即单位时间内的体积)。

    滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

    异步沟通方式(《posting style》from wiki)(下载后打开):
    https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
    提问的智慧(github在gitee的镜像):
    https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way

    zheZ 1 条回复 最后回复
  • zheZ 离线
    zheZ 离线
    zhe
    在 中回复了 bestucan 最后由 编辑
    #13

    @bestucan 不好意思,我確實沒看懂,爲什麼一開始就說了alpha1和alpha2是未歸一化的值.

    bestucanB 1 条回复 最后回复
  • bestucanB 离线
    bestucanB 离线
    bestucan 版主 大神
    在 中回复了 zhe 最后由 编辑
    #14

    @zhe 我说错了,本来想说alpha1+alpha2不等于1。就是括号里的对立面

    (如果alpha1 + alpha2 = 1,那么rho = alpha1*rho1 + alpha2*rho2,未找到alpha1和alpha2的关系。)

    这个确实不能说 alpha1 和 alpha2 是未归一化的。
    但是这个不影响后面的思路,虽然思路很模糊。
    其实绝对正确的平均密度公式是:(alpha1 * rho1 + alpha2 * rho2) / (alpha1 + alpha2)。无论alpha1、alpha2有没有归一化都成立。

    还有,刚才又回看了一下。你的第一个帖子说

    密度rho應該已經經過alpha1*rho1 + alpha2*rho2得到的整體流體密度

    如果这个表达式表达整体流体的密度 ,那是不是就意味着aplha1+alpha2=1?
    如果 alpha1+alpha2\=1,那么剩下的体积分数代表的密度不是没算进来。但是代码中并未有限制alpha1和alpha2关系的地方。alphac倒是限制为1-xxx。

    不考虑求解器。多相流的平均密度应该是连续相和离散相的平均alphac * rhoc + alphad * rhod,其中alphac + alphad = 1。

    MPPIC方法在OpenFOAM里计算好像用的是particle parcel?所有都没有见 alphad。

    我说的太外行就不用管了,我没研究过,就是插一句嘴。:mihu:
    附上一个某个帖子的总结:
    1273410647.jpg
    忘了哪个帖子了,是这个论坛的。

    滚来滚去……~(~o ̄▽ ̄)~o 滚来滚去都不能让大家看出来我不是老师么 O_o

    异步沟通方式(《posting style》from wiki)(下载后打开):
    https://www.jianguoyun.com/p/Dc52X2sQsLv2BRiqnKYD
    提问的智慧(github在gitee的镜像):
    https://gitee.com/bestucan/How-To-Ask-Questions-The-Smart-Way

    zheZ 1 条回复 最后回复
  • zheZ 离线
    zheZ 离线
    zhe
    在 中回复了 bestucan 最后由 编辑
    #15

    @bestucan 谢谢,已经说的很好了。我之前想过rho=(alpha1rho1+alpha2rho2)/(alpha1+alpha2).这个我觉得是比较合适的。虽然这样定义,直接就说明了alphac=alpha1+alpha2,而不是从后面的1-theta来的,但是我觉得这不会引起什么问题,因为宏观上来说,alphac就是等于alpha1+alpha2. 这样也满足了alpha1+alpha2+theta=alphac+theta=1. 都是归一后的了。我也试了自带的算例。计算出来的结果与之前定义rho=alpha1rho1+alpha2rho2有差别。因为没有真实实验数据可以对比,所以不敢说哪个就是对的,但是后改的这个,更能理解。单独定义rho后,我也就可以重新考虑alphac*rho这个项。我还是觉得对流项中是要考虑alphac的。希望,有朋友可以指出错误,谢谢!

    1 条回复 最后回复
  • J 离线
    J 离线
    Jasper 0
    写于 最后由 编辑
    #16

    请问问题解决了吗?我也感觉对流项的离散需要乘以一个alphac

    1 条回复 最后回复

  • 登录

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