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. DEM和DPM

DEM和DPM

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

    对其修改过程中总是出现各种错误

    直接将该方法用于向 MPPICFoam 中添加化学反应则一直失败

    我觉得贴出错误更有利于讨论?:confused:

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

    1 条回复 最后回复
  • 马乔马 离线
    马乔马 离线
    马乔 大神
    写于 最后由 编辑
    #46

    是不是超温呢?因为MPPICParcel中调用了多次ParcelType::move,因此会多次在thermoparcel的calc中计算温度,加个判定只计算一次就行了。

    装逼没输过,吵架没赢过!

    1 条回复 最后回复
  • 马乔马 离线
    马乔马 离线
    马乔 大神
    写于 最后由 编辑
    #47

    MPPICCloud的motion会调用MPPICParcel的move,当状态为tpLinearTrack和tpCorrectTrack都会有ParcelType::move。

    装逼没输过,吵架没赢过!

    1 条回复 最后回复
  • Y 离线
    Y 离线
    yuan
    写于 最后由 李东岳 编辑
    #48

    我是直接根据上面提到的帖子修改的。在向 OpenFOAM 自带的 coalCombustion 库添加碰撞时,上述帖子中直接在 coalCloud.H 的定义中将

    typedef ReactingMultiphaseCloud<ReactingCloud<ThermoCloud<KinemaitcCloud<Cloud<coalParcel>>>>> coalCloud; 
    

    修改为

    typedef ReactingMultiphaseCloud<ReactingCloud<ThermoCloud<CollidingCloud<KinemaitcCloud<Cloud<coalParcel>>>>>> coalCloud; 
    

    对颗粒的定义也采用了类似的方法。
    我将该例子中的 CollidingCloud 均改为 MPPICCloud,但是编译无法通过。错误出在 MPPICCloud.C 中td.updateAverages(*this);这一行,编译器提示这里的 updateAverages 找不到定义,应该是按上面方法修改 coalCloud 和 coalParcel 定义后,*this 所代表的具体定义跟函数里参数形式不一样导致的。

    我现在在想上面的思路是不是可行,如果说需要在 thermoparcel 中修改代码,加判断的话,是不是意味着我不应该采取上述的方法,而应自己将 MPPICParcel 和 thermoparcel 以及反应相关的部分重新写成一个新的颗粒类?

    非常感谢大家的回复,有必要的话我会想办法把编译错误贴出来。

    1 条回复 最后回复
  • 马乔马 离线
    马乔马 离线
    马乔 大神
    写于 最后由 编辑
    #49

    你是编译错误哦,这样的话相应的parcel类也要根据这个链特化下,以及相关的子模型也要关联上。

    装逼没输过,吵架没赢过!

    Y M 2 条回复 最后回复
  • 散漫守望2016散 离线
    散漫守望2016散 离线
    散漫守望2016 大神
    写于 最后由 编辑
    #50

    @yuan 那个CFD-Online的帖子是我当时问和写的,当时是为了做CFD-DEM的燃烧,在2.3.0/2.3.1上面做的,后来也大约调通了,但是当时有一个particletype的问题没弄太明白,后来MFIX的DEM燃烧可以用了,我就主要用MFIX了。OF的就没接着开发了。你的那个错误我倒是不太知道如何处理,@马乔 现在比较精通OF。

    Y 1 条回复 最后回复
  • Y 离线
    Y 离线
    yuan
    在 中回复了 马乔 最后由 编辑
    #51

    @马乔 按照我的理解,OpenFOAM 中 lagrangian 库部分采用的基于原则设计(Policy-Based Class Design)的方法应该是通过可以选取不同策略类,组建满足不同需求的模型的。OpenFOAM 自带的 coalCombustion 和 spray 库中均采用了这样的方法,即通过选取不同的 parcel 和 cloud 类,组建不同的模型。现在这样看来,这样的方法可能还是有限制的。

    如果需要对 parcel 和 cloud 类进行修改的话,涉及到的内容就太多了,不知道最后能不能完成了。

    另外,多谢东岳老师对之前帖子格式的修改,以后回复时会多注意的。

    1 条回复 最后回复
  • Y 离线
    Y 离线
    yuan
    在 中回复了 散漫守望2016 最后由 编辑
    #52

    @散漫守望2016 非常感谢你提供的算例,你那个程序没有问题的,在 2.3.x 上可以运行。只是后来计算效率太低,而我主要关心的是颗粒本身反应特性的变化,不怎么关心碰撞之类的,因此想着采用 MPPIC 的方法简化计算,但一直没找到合适的方法。

    MFIX 现在还没支持 MPPIC 方法计算反应,所以我只能先考虑 OpenFOAM 了。

    1 条回复 最后回复
  • 马乔马 离线
    马乔马 离线
    马乔 大神
    写于 最后由 编辑
    #53

    把td.updateAverages(*this);改成td.updateAverages(td.cloud());就可以啦。
    0_1515145147460_temp.png
    效果图,只有传热部分,也就是thermo的结果。
    不会控制图片大小。。。

    装逼没输过,吵架没赢过!

    Y 2 条回复 最后回复
  • Y 离线
    Y 离线
    yuan
    在 中回复了 马乔 最后由 编辑
    #54

    @马乔 我还是不太明白是怎么实现的,这行代码在 MPPICCloud.C 文件内,为了避免修改源文件,是不是需要把 MPPICCloud 文件夹和 MPPICParcel 文件夹以及 submodels/MPPIC/ 文件夹下的所有子模型均复制出来,并重新命名?另外,不知道是否方便留下其它的联系方式,我觉得我的问题可能太基础了,不太适合在这里讨论。如果问题解决了的话,我可以整理一下再发出来,以供其他人参考。

    1 条回复 最后回复
  • Y 离线
    Y 离线
    yuan
    在 中回复了 马乔 最后由 编辑
    #55

    @马乔 多谢你的建议,修改之后可以编译成功了。

    我直接把 MPPICCloud 文件夹下的三个文件拷到当前目录下,然后把 MPPICCloud.C 中的

    td.updateAverages(*this);
    

    改成

    td.updateAverages(td.cloud());
    

    其它子模型不用修改。

    除了这部分之外,别的跟 CFD Online 上 coalCollidingChemistryFoam 求解器的建立方法一样。非常感谢 @散漫守望2016 的分享。

    1 条回复 最后回复
  • MinZhangM 离线
    MinZhangM 离线
    MinZhang
    在 中回复了 马乔 最后由 编辑
    #56

    @马乔 您好,我是张敏,目前刚刚接触MPPICFoam一个月。做了几个validation cases,想请教1个问题,谢谢。对于一个特定的物理问题,当确定了cell size以后,会不会存在一个最佳的nParticle,大了也不行小了也不行。

    1 条回复 最后回复
  • Y 离线
    Y 离线
    yuan_neu
    在 中回复了 李东岳 最后由 编辑
    #57

    @李东岳 最近我在用欧拉拉格朗日和精确解对比然后模拟3D鼓泡床

    可以分享一下这方面的研究吗

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

    @yuan_neu

    Wat would you like to discuss? :chigua:

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

    1 条回复 最后回复
  • MinZhangM 离线
    MinZhangM 离线
    MinZhang
    写于 最后由 李东岳 编辑
    #59

    欢迎大家关注一下我在cfd online的post!是关于mppicfoam。谢谢大家!
    https://www.cfd-online.com/Forums/openfoam-solving/202203-simulate-particle-liquid-flow-converging-geometry-mppicfoam.html#post693365

    MPPIC 高效在用一个 solid stress 来模拟碰撞,因此不需要确定颗粒碰撞了,这一点省了很多时间,对于parcel 用一个点来跟踪多个颗粒,在DPM也有做,叫做coarsed grain DPM; 但是做parcel都需要一个子模型来模拟这个parcel的行为,我测试下来,对于一个 N 颗粒系统,如果一个parcel包含nParcel 个颗粒,那么 计算时间的比值大概是 T(single particle) / T(parcel) = (nParcel)^1/3 。

    @hurricane007 您好,您现在还在用着DPMFoam吗?您说的DPM是Fluent里面的,还是DPMFoam呀?能交流下吗?谢谢

    @散漫守望2016 您好,我想问一下,DPMFoam and CFDEM有什么区别呀?谢谢

    @马乔 请教一下,如果DPMFoam中nParticle=1, 那和CFDEM的差别在哪里?如果DPMFoam中nParticle>1, 那和coarse-grained CFD-DEM的差别在哪里?谢谢!还有,cloud的用处在哪里呢?计算domain中所有的颗粒都属于同一个cloud是吗?您对MPPICFoam是不是也很了解,您有时间的时候能看一下我的问题吗?谢谢谢谢
    https://www.cfd-online.com/Forums/openfoam-solving/202203-simulate-particle-liquid-flow-converging-geometry-mppicfoam.html#post693365

    粒子间作用力的处理,在这里,如果考虑OpenFOAM中的DPM模型(商软中的DPM不清楚是否也是这样),方程(???)中右边的力主要包含了曳力、虚拟质量力等非常主要的力。但是在DEM中,除了上述的力,还有旋转、摩擦、凝聚等,比较重要的颗粒碰撞也通过软球模型来处理(下图是google随便找的)

    @东岳 请问,除了您提到的旋转,摩擦,凝聚,等这些力在DPMFoam中没有考虑外,DPMFoam 和 DEM还有其他区别吗?在DPMFoam中颗粒也是具有真实的size,而不是numerical point,是吗?

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

    @MinZhang 收到邮件和微信。

    请问,除了您提到的旋转,摩擦,凝聚,等这些力在DPMFoam中没有考虑外,DPMFoam 和 DEM还有其他区别吗?在DPMFoam中颗粒也是具有真实的size,而不是numerical point,是吗?

    DPMFoam and CFDEM有什么区别呀?谢谢

    这也是目前我关心的。如果考虑连续相和离散相的耦合,DPMFoam和CFDEM的耦合是一样的,主要体现在速度方程和压力方程上:https://github.com/CFDEMproject/CFDEMcoupling-PUBLIC/blob/master/applications/solvers/cfdemSolverPiso/cfdemSolverPiso.C

    剩下的就是离散相的处理。目前DPMFoam植入了简单的碰撞模型。由于我没用过CFDEM,但是从网页介绍来看,CFDEM要稍微强一些,比如直接处理非球形颗粒(而不是修正曳力):https://www.cfdem.com/non-spherical-particles 双重网格支持: https://www.cfdem.com/highly-customizable-solvers 等。

    在DPMFoam中颗粒也是具有真实的size,而不是numerical point,是吗?

    DPMFoam也有体积。

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

    MinZhangM 1 条回复 最后回复
  • MinZhangM 离线
    MinZhangM 离线
    MinZhang
    在 中回复了 李东岳 最后由 编辑
    #61

    @东岳 嗯嗯,非常感谢您的关注和回复!关于“DPMFoam植入了简单的碰撞模型”,您能再给一些细节吗?为什么是“简单”的碰撞模型?在DPMFoam中应该是有soft-sphere model的对吧?
    https://www.cfd-online.com/Forums/openfoam-solving/131030-dpmfoam-solver-inadequacy.html#post693459
    这个链接里面也有我的问题以及别人的回复,希望对您有一点点帮助。

    1 条回复 最后回复
  • hurricane007H 离线
    hurricane007H 离线
    hurricane007
    在 中回复了 MinZhang 最后由 编辑
    #62

    @minzhang 之前用过DPMFoam,最近没在弄了。这东西还是效率太低,没集群没法算大规模的,有集群效率也很低,不知道为啥

    MinZhangM 1 条回复 最后回复
  • MinZhangM 离线
    MinZhangM 离线
    MinZhang
    在 中回复了 hurricane007 最后由 编辑
    #63

    @hurricane007 谢谢您的回复。那您现在用cdfem吗?

    hurricane007H 2 条回复 最后回复
  • hurricane007H 离线
    hurricane007H 离线
    hurricane007
    在 中回复了 MinZhang 最后由 编辑
    #64

    @minzhang 也不用,那个东西有点小众不太成熟,如果不是那个组的我其实感觉不太推荐用,DPMFoam相对好一些,不过也差不多,感觉很久没维护了的样子。MPPIC稍好 5.0更新的时候好像还更新了一下,但是我测试过速度也没快。最后结论居然是,DPM除非有大集群,不然就玩完小规模就好了,甚至PR-DPM 更好,类似算解析算例然后得出个模型给粗糙一些的模型用,用粗糙的模型,比如E-E 来算大规模的。。。 好像GPU 计算也是个坑,我老板说 NETL 也搞,不过发现GPU计算有随机错误。大概的经验就是这些,希望有帮助。

    A 1 条回复 最后回复

  • 登录

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