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. interPlicFoam

interPlicFoam

已定时 已固定 已锁定 已移动 OpenFOAM
91 帖子 16 发布者 190.0k 浏览
  • 从旧到新
  • 从新到旧
  • 最多赞同
回复
  • 在新帖中回复
登录后回复
此主题已被删除。只有拥有主题管理权限的用户可以查看。
  • 队长别开枪队 离线
    队长别开枪队 离线
    队长别开枪 超神
    在 中回复了 nanxuan 最后由 编辑
    #72

    @nanxuan 不好意思你九月份的留言我没注意到。多边形/多面体网格相对传统非结构网格优势就是每个体单元有了更多的面单元/相邻单元,在涉及面单元积分的变量(梯度等)计算上具有优势(https://www.semanticscholar.org/paper/The-advantage-of-polyhedral-meshes-Perić-Ferguson/51ae90047ab44f53849196878bfec4232b291d1c ),其余的还有收敛快等优点(https://www.researchgate.net/publication/292555771_New_element_lops_time_off_CFD_simulations )。缺点是生成算法复杂,主流多面体网格生成器都是将四面体网格转化为多面体网格,不能很好处理面单元翘曲,不过fluent,cfmesh等通过六面体->四面体->多面体的技术路线缓解了面单元翘曲,但是面对复杂几何外形的时候需要更多控制。我个人开始使用多面体网格的原因纯粹是因为多面体网格好看,可以在女朋友面前装逼:shangxue: 。希望这个解释能帮到你。

    1 条回复 最后回复
  • A 离线
    A 离线
    anubis
    在 中回复了 队长别开枪 最后由 编辑
    #73

    @队长别开枪 在 interPlicFoam 中说:

    如果修改snaptol的话是不是理论上守恒性被破坏了?

    队长别开枪队 1 条回复 最后回复
  • 队长别开枪队 离线
    队长别开枪队 离线
    队长别开枪 超神
    在 中回复了 anubis 最后由 编辑
    #74

    @anubis 理论上有影响,但是可以忽略不记。

    1 条回复 最后回复
  • A 离线
    A 离线
    anubis
    写于 最后由 编辑
    #75

    大佬问个问题,您这个求解器重构的界面是平面吗? 我之前用的interIsoFoam, 看他论文里说iso-surface他是处理成非平面的,我对比了一下of1906中的interIsoFoam和您这个求解器, 我感觉他的求解器在算气泡上升的过程和interFoam差距很大,您这个更加接近

    队长别开枪队 1 条回复 最后回复
  • 队长别开枪队 离线
    队长别开枪队 离线
    队长别开枪 超神
    在 中回复了 anubis 最后由 队长别开枪 编辑
    #76

    @anubis 我们是使用的纯平面,isoAdvector因为使用了iso-surface的概念,使用isoValue去切体单元的每条边后很难保证所有的相交点共面的,所以不得不按照非平面处理。plus版本从2006版本开始也有PLIC算法了,我们自己的PLIC算法植入和他们的区别在于重构算法,最新的版本里我们也使用了自己的时间积分计算方法(正在准备投稿,接收后会开源)。按照目前的测试对比,在溃坝问题里interPlicFOAM和interIsoFoam计算结果非常接近。

    A 2 条回复 最后回复
  • A 离线
    A 离线
    anubis
    在 中回复了 队长别开枪 最后由 编辑
    #77

    @队长别开枪 我最近就是在修改interIsoFoam里的积分计算方法,但结果总是不好,二维计算的结果还可以,但是一算三维的气泡,速度场就会在局部出现很大的值。我感觉是因为我把它的界面当作平面来处理了,只取面的前3个点来做计算,我准备根据interPlicFoam计算得到的界面再试试看。

    1 条回复 最后回复
  • A 离线
    A 离线
    anubis
    在 中回复了 队长别开枪 最后由 编辑
    #78

    @队长别开枪
    我测试了一下interIsoFoam和interPlicFoam重构的界面,感觉plic的界面精度不太够
    alpha的场是这样的,气液相左右平分一个比较斜的网格。
    微信截图_20210108125823.png
    把重构出来的界面写到文件里面打开查看,左边是iso重构的界面,右边是plic重构的界面,可以看到iso重构出来的界面基本上符合实际的相界面,而plic重构出来的界面波浪形特别严重。大佬有思路改进这个问题吗?
    11.png

    队长别开枪队 1 条回复 最后回复
  • 队长别开枪队 离线
    队长别开枪队 离线
    队长别开枪 超神
    在 中回复了 anubis 最后由 编辑
    #79

    @anubis 试试gradSchemes里default Gauss linear;改成default Gauss pointLinear;,看看有没有提升。

    A 1 条回复 最后回复
  • A 离线
    A 离线
    anubis
    在 中回复了 队长别开枪 最后由 编辑
    #80

    @队长别开枪
    确实有用, 现在好多了

    队长别开枪队 1 条回复 最后回复
  • 队长别开枪队 离线
    队长别开枪队 离线
    队长别开枪 超神
    在 中回复了 anubis 最后由 编辑
    #81

    @anubis 看来得在代码里强制相场梯度计算格式了。

    1 条回复 最后回复
  • A 离线
    A 离线
    anubis
    写于 最后由 编辑
    #82

    又碰到一个问题,我自己写了个函数计算网格内的液相体积, surface与网格的交点是从plicFacePoints()函数读过来的,
    比较了一下计算出来的液相体积和alpha1乘以网格体积的值, 对大部分网格,两个值基本上是一致的,误差在0.1%以内,但是当alpha1接近0或者1的时候,误差有时候就比较大了。
    下面是我碰到的一个误差最大的网格, 我用的是长方体的网格,PointLists_是网格的8个点,isofacePoints_ 是surface与网格的交点,VolumeIntegrate_ 是我自己写的函数计算出来的体积, alpha1_ * mesh_.V 就是这个网格内的alpha1乘以体积,test_ratio是这两个值的比值。
    因为我算例是二维的,所以我自己也手算了一下,函数算出来的体积应该没有什么问题,应该是重构界面的时候出现的误差,我想请教一下有方法减少这部分的误差吗?@队长别开枪

     PointLists_ 8((0.0185 0.001 0.000522015) (0.0185 0.0015 0.000522015) (0.019 0.001 0.000522015) (0.019 0.0015 0.000522015) (0.0185 0.001 -0.000522015) (0.0185 0.0015 -0.000522015) (0.019 0.001 -0.000522015) (0.019 0.0015 -0.000522015))
     isofacePoints_ 4((0.019 0.00144899 0.000522015) (0.0189992 0.0015 0.000522015) (0.0189992 0.0015 -0.000522015) (0.019 0.00144899 -0.000522015))
    VolumeIntegrate_ = 2.11363e-14
     alpha1_ * mesh_.V =  1.80361e-14
    test_ratio = 0.853322
    
    A 1 条回复 最后回复
  • A 离线
    A 离线
    anubis
    在 中回复了 anubis 最后由 编辑
    #83

    我发现是因为我改动了orientation函数, 我是先用isoadvector重构了一遍界面,取了界面的法相方向,在orientation函数中又赋值给了interface.n(),
    如果采用原先的cellNormals.operator[]来进行赋值的话,是没有问题的,计算出来的体积和实际上alpha1所占有的体积是相同的。
    但是我没想明白为什么会这样,我大致学习了一下您的论文,我感觉界面的法相方向应该是不会影响重构出来的体积大小的吧? 应该也不是方向弄反了,如果反了的话两个值应该一直会差很多才对。

    队长别开枪队 1 条回复 最后回复
  • 队长别开枪队 离线
    队长别开枪队 离线
    队长别开枪 超神
    在 中回复了 anubis 最后由 编辑
    #84

    @anubis 法向量需要单位化,isoadvector里应该存的面积矢量,需要单位化

    A 1 条回复 最后回复
  • A 离线
    A 离线
    anubis
    在 中回复了 队长别开枪 最后由 编辑
    #85

    @队长别开枪 在 interPlicFoam 中说:

    @anubis 法向量需要单位化,isoadvector里应该存的面积矢量,需要单位化

    单位化以后没问题了,多谢大佬

    1 条回复 最后回复
  • J 离线
    J 离线
    JqBu
    写于 最后由 编辑
    #86

    戴前辈您好,看到您的方法就想用of里的dambreak算例试一下,尝试了在of1912和of1812中加载您的求解interPlicFoam,但是算$FOAM_TUTORIALS/multiphase/interFoam/RAS/damBreak算例的时候,虽然按照您github上的要求修改了fvScheme和fvSolution,但是计算第一步就会出现问题,浮点数溢出,减小算例时间步长到1e-5也不行,细化一倍网格也不行,请问这是为什么呢?(我注意到您给出的tutorials都是多面体网格的,并非六面体网格,不知道是不是您的求解器不适用于六面体网格?)

    J 1 条回复 最后回复
  • J 离线
    J 离线
    JqBu
    在 中回复了 JqBu 最后由 编辑
    #87

    @jqbu 或者请问其他熟悉Plic-VOF的大佬有什么建议嘛?才了解有这种方法捕捉界面,还不熟悉,请各位多指教呀
    bebce906-65f1-44ef-8535-be47e731f404-image.png

    1 条回复 最后回复
  • J 离线
    J 离线
    JqBu
    在 中回复了 队长别开枪 最后由 编辑
    #88

    @队长别开枪 戴前辈,还想请教您一下,Allrun-parallel中的# Reconstruct distributed data
    runParallel redistributePar -reconstruct中那个redistributePar是什么操作?有时候我用动网格计算时,一个核合并reconstructParMesh再reconstructPar这样运行速度比较慢,看您的算例才知道合并也可以并行,那请问如何并行合并动网格计算的结果呢

    队长别开枪队 1 条回复 最后回复
  • 队长别开枪队 离线
    队长别开枪队 离线
    队长别开枪 超神
    在 中回复了 JqBu 最后由 编辑
    #89

    @jqbu 最近比较忙,我大概周日或者周一详细回复你一下。

    J 1 条回复 最后回复
  • J 离线
    J 离线
    JqBu
    在 中回复了 队长别开枪 最后由 编辑
    #90

    @队长别开枪 好的 谢谢前辈!

    1 条回复 最后回复
  • 队长别开枪队 离线
    队长别开枪队 离线
    队长别开枪 超神
    写于 最后由 编辑
    #91

    interPlicFoam求解器已经并入扩展包geometricVofExt,仓库地址:https://github.com/daidezhi/geometricVofExt

    1 条回复 最后回复

  • 登录

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