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. overpimpleDyMFoam +颗粒边界处理

overpimpleDyMFoam +颗粒边界处理

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

    在overpimpleDyMFoam 中加入了拉格朗日模块,但是发现动网格下移动物体边界处颗粒捕捉的不好,会有部分颗粒进入固体内部,请问大家有好的建议吗?
    因为计算问题的限制(涉及到大变形),没有采用变形网格类的动网格技术,我在颗粒求解模块中也添加了固体壁面反弹的颗粒处理约束,但是效果没有完全约束住。
    44d8745a-3f42-43a9-af54-c178f172a03b-image.png

    f2e1ff28-66b2-4525-aa33-388cb1e7905e-image.png

    星 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 lys 最后由 编辑
    #2

    @lys 你好,并不了解overpimpleDyMFoam,但是这个部分是动网格?

    请问你在什么时候parcel.evolve()的会不会是在你网格移动之前?还是在你网格移动之后?

    另外你的paraview显示的是2D还是3D?中间是个球还是圆柱?

    游荡

    L 1 条回复 最后回复
  • L 离线
    L 离线
    lys
    在 中回复了 星星星星晴 最后由 编辑
    #3

    @星星星星晴 这部分是动网格技术中的重叠网格,颗粒的演化是在最后,应该是网格移动后,因为是先求的流体,然后再求的颗粒运动,
    这是个2维问题,中间是个圆柱,不存在视觉假象

    星 2 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 lys 最后由 编辑
    #4

    @lys 嗯嗯 重叠网格部分我也不是很了解:xinlei: 请问能否讲一下这个部分是怎么处理的?

    正常情况下验证过parcel放在pimple之前或者之后应该是不太影响结果的(同事验证过, dilute),但是你这个case改变了mesh,就不好说了。或许你应该放在pimple之前,这样会导致 $n_t$ 的时候用的是$n_{t-1}$的流场, 但是这样仍然无法规避网格变动的情况。

    你可以先跑一个无重叠网格的case,判断一下,是否是重叠网格的问题。parcel应该都是在网格内部的,所以如果出现在非网格处的话,能让我想到的只有你的重叠网格引起的问题了,是不是应该在重叠网格处理部分也加入关于parcel的处理。而且我在kinematicCloud.C 中看了一下,preEvolve的地方他会updateCellOccupancy(),所以parcel会在计算的时候重新计算当前cell内的parcel信息。

    游荡

    1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 lys 最后由 编辑
    #5

    @lys 另外你用的什么版本of,引用的什么cloud

    游荡

    L 1 条回复 最后回复
  • L 离线
    L 离线
    lys
    在 中回复了 星星星星晴 最后由 编辑
    #6

    @星星星星晴
    两个版本都用了,of2206的overpimpleFoam的基础上,我给加了LPT,但是就是我觉得不理想

    星 2 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 lys 最后由 编辑
    #7

    @lys 哦哦,可能是你的其他模型不够吧,受力都有啥?particle turbulence dispersion model?1way 还是2way这些东西是有影响的,particle maxCo是多少?

    游荡

    L 1 条回复 最后回复
  • L 离线
    L 离线
    lys
    在 中回复了 星星星星晴 最后由 编辑
    #8

    @星星星星晴 受力主要阻力,重力,流体惯性力(压力梯度力),虚拟质量力,应该比较全了,2-way的,湍流脉动力确实没有考虑,颗粒Co=0.3,感觉跟这个关系不大,主要是边界没起到时时刻刻的不可穿透条件

    星 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 lys 最后由 编辑
    #9

    @lys 你可以试试Co小一点,这个也有影响的,判断你的拉格朗日dt. 正常情况下是需要考虑dispersion的,不然particle的RMS是错的(个人经验)。不过of自带的dispersion model 也不咋地,不过你可以试试看。也要看你用什么turbulence。 RANS 还是LES,RANS需要,LES怎么说呢,理论上也是是需要的,但是好多人不用。OF也没有默认的LES的turbulence dispersion。俩模型都$k-\varepsilon$的。你也没说你用的啥turbulence

    我做过和你类似的,不过不是圆柱,不是你的重叠网格,是tablet周围被snappyhexmesh加密过,完全没有你说的情况,particle就是碰到壁面就没了,个人认为,是因为你的重叠网格,也不知道这个重叠网格怎么做的,另外如果你particle很小,不是dense的话,有些模型不用考虑,完全是浪费时间。shear-lift?不好意思,有些词我想不起来中文教材怎么叫了。。。

    游荡

    1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 lys 最后由 编辑
    #10

    另外请问你的source term在各个方程里面加了么?

    @lys 在 overpimpleDyMFoam +颗粒边界处理 中说:

    @星星星星晴
    两个版本都用了,of2206的overpimpleFoam的基础上,我给加了LPT,但是就是我觉得不理想

    游荡

    L 1 条回复 最后回复
  • L 离线
    L 离线
    lys
    在 中回复了 星星星星晴 最后由 编辑
    #11

    @星星星星晴 你说的sourceTerm是颗粒对流体的作用力吗

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

    @lys 在 overpimpleDyMFoam +颗粒边界处理 中说:

    会有部分颗粒进入固体内部

    具体没太细看啊,我插一句,是不是需要看一下你这个颗粒定义在哪套网格上了,如果定义在A网格上,壁面在B网格上,那是不是肯定会发生这个现象。

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

    星 L 2 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 lys 最后由 编辑
    #13

    @lys 比如ueq里面的 + parcels.SU(U) 这一项,其他的有加么

    // Solve the Momentum equation
    
    MRF.correctBoundaryVelocity(U);
    
    tmp<fvVectorMatrix> tUEqn
    (
        fvm::ddt(rho, U) + fvm::div(phi, U)
      + MRF.DDt(rho, U)
      + turbulence->divDevTau(U)
     ==
        rho()*g
      + parcels.SU(U)
      + fvOptions(rho, U)
    );
    fvVectorMatrix& UEqn = tUEqn.ref();
    
    UEqn.relax();
    
    fvOptions.constrain(UEqn);
    
    if (pimple.momentumPredictor())
    {
        solve(UEqn == -fvc::grad(p));
    
        fvOptions.correct(U);
        K = 0.5*magSqr(U);
    }
    

    游荡

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

    @李东岳 正常情况下 cloud里面会有updateCellOccupancy这个方程,会自动更新当前cell中parcel的占用什么的,如果在solver中把parcels.evolve(); 放到mesh.changing之后就应该没事,但是很奇怪,他的parcel会进入空的地方。。

    游荡

    1 条回复 最后回复
  • L 离线
    L 离线
    lys
    在 中回复了 李东岳 最后由 编辑
    #15

    @李东岳 这是重叠网格,按道理讲是可以更新背景网格的流场信息,然后颗粒在更新后的流场信息作用下,是可以实现壁面效应捕捉的。但也有可能,颗粒只是感受到了流场,而没有实际发生壁面碰撞,所以导致颗粒穿透壁面,这是不是意味着overset 方法是不适用颗粒求解的,所以openFOAM-ESI版本下就没有现成的overset求解器+LPT

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

    你的A网格如果没有壁面,但是壁面定义在网格B上,那拉格朗日栗子同时也定义在A上,那A网格那面不就没有壁面了么。流场的话,重叠网格做了插值处理。栗子,是不是也要做B网格壁面-A网格壁面的映射,然后并反弹处理?

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

    1 条回复 最后回复
  • L 离线
    L 离线
    lys
    在 中回复了 星星星星晴 最后由 编辑
    #17

    @星星星星晴 这项时肯定要加的
    6142cf0d-817f-4049-89b6-61f2eec66290-image.png

    星 1 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 lys 最后由 编辑
    #18

    @lys 嗯,就是确认一下别拉下什么东西没加就难受了。

    所以说,那些particle 应该是在$n-1$步时还在网格里,然后网格发生变化,可能就不在网格里了,这部分parcel就没办法算了。

    1. 把parcel.evolve() 放到 bool changed = mesh.update() 前面,让parcel用上一步的旧网格试试看
    2. 另外如果你的Euler time step $\Delta t_E$ 足够小,就是你每次更新网格的间隔减小,会不会也一定程度上减少这样的发生呢?
    3. 调整动网格或者在parcel部分,判断内部是否有parcel,有parcel就挪他们到wall表面。

    游荡

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

    @星星星星晴

    星 D 2 条回复 最后回复
  • 星 离线
    星 离线
    星星星星晴
    在 中回复了 lys 最后由 编辑
    #20

    @lys ?怎么 有解决么?

    游荡

    1 条回复 最后回复

  • 登录

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