CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    拉格朗日粒子追踪死循环

    OpenFOAM
    拉格朗日粒子追踪
    5
    14
    1946
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • Y
      yfclark 讲师 最后由 编辑

      各位老师好,我最近正在做雾化方法的仿真,自己修改了求解器,用的是欧拉-拉格朗日方法,当网格和粒子比在20以上时,运算没有任何问题,加密网格后,网格和粒子比最小为5,此时总是出现粒子追踪陷入死循环,不管是否开启coupled选项。现在使用的是OpenFoam5.x的拉格朗日粒子库,不知道最新的库是否有改进,请关注这方面的大佬给些意见

      白 1 条回复 最后回复 回复 引用
      • 星
        星星星星晴 最后由 编辑

        我遇到过一次这样的情况,因为 euler time step 太大,然后导致在一个 Euler time step 中 lagrangian 的计算过多。
        尝试控制一下你的courant number
        不知道有没有帮助

        m.sui20@foxmail.com

        1 条回复 最后回复 回复 引用
        • Y
          yfclark 讲师 最后由 编辑

          找到原因了,是粒子入注的时候打到并行分块的交界面上了,很容易进入Cloud:move的死循环,正在思考怎么修改

          星 1 条回复 最后回复 回复 引用
          • 星
            星星星星晴 @yfclark 最后由 编辑

            @yfclark 据我了解 应该不是分块的问题,openfoam好像不会这样处理分块的问题,不过如果是壁面的话可能会出现这样的情况

            m.sui20@foxmail.com

            1 条回复 最后回复 回复 引用
            • 白
              白礼耕 @yfclark 最后由 编辑

              @yfclark 是不是你的网格太密了?欧拉-拉格朗日法的基本假设就是粒子的质量远小于网格中欧拉相的质量。网格太密,物理意义上就不成立了。
              可以通过intermediate/clouds/Templates/KinematicCloud中的theta()函数查看液相和气相的体积比,只在屏幕上输出最大值就好。如果值大于1,那就可能有问题了。处在交界面上会自动判断归属于哪个网格或是直接删除,除非几乎所有parcel都很小并且处在交界面上,才会出问题,基本不可能——就算是这种情况,提示的也是除0的错误。所以,大概率是网格过密。是不是用了渐变网格?喷嘴附近的网格是不是比粒子初始直径还小?建议从这个角度入手解决。
              另一个思路是,调整parcelsPerSecond

              hurricane007 1 条回复 最后回复 回复 引用
              • Y
                yfclark 讲师 最后由 编辑

                @白礼耕 感谢回复,网格和粒子直径比确实小,最小比例为5,我会排查的,另外我最近也在尝试渐变网格,您使用过这样的网格算拉格朗日粒子追踪吗,我之前只在欧拉方法中用过,没有问题,不知道用在粒子追踪上算法能否处理,有什么需要注意的请指教

                白 1 条回复 最后回复 回复 引用
                • 白
                  白礼耕 @yfclark 最后由 编辑

                  @yfclark 当然可以啦,什么网格都能算的。你是卡在了Added 1 new parcels这么?

                  1 条回复 最后回复 回复 引用
                  • hurricane007
                    hurricane007 @白礼耕 最后由 编辑

                    @白礼耕 我记得theta() 是欧拉相或者拉格朗日相的分数?如果这个大于1应该就是越界了,理论上说DPM应该不至于超1,但是MPPIC容易超1是真的。还是我记错了这个是两者的比例?

                    @yfclark 在 拉格朗日粒子追踪死循环 中说:

                    @白礼耕 感谢回复,网格和粒子直径比确实小,最小比例为5,

                    然后网格粒子大小比是5应该问题不大的啊

                    1 条回复 最后回复 回复 引用
                    • Y
                      yfclark 讲师 最后由 编辑

                      最近发现一个问题可能导致粒子追踪死循环,之前我的patchInteractionModel被设置为None,粒子在边界上追踪陷入死循环,现在设置为localInteraction后不再出现该问题

                      J 1 条回复 最后回复 回复 引用
                      • J
                        JqBu @yfclark 最后由 编辑

                        @yfclark 请问老师前面如何统计的,认为是分块的原因?现在又是如何思考的,加上locelInteraction就可以了? 因为我最近在算喷雾的时候也遇到了这个问题 排查之后也是在move函数出了问题,前面的算例加上locelInteraction就可以了,但是后来又有一个算例使用了各种patchInteractionModel都会卡在added xx new parcels这步。

                        星 1 条回复 最后回复 回复 引用
                        • 星
                          星星星星晴 @JqBu 最后由 编辑

                          @jqbu 会不会你add的parcel太小了,好像我之前遇到过add太小是出问题的

                          m.sui20@foxmail.com

                          J 2 条回复 最后回复 回复 引用
                          • J
                            JqBu @星星星星晴 最后由 编辑

                            @星星星星晴 前辈您好,感谢回复!请问您觉得多小的parcel算小呢?我在字典文件里设置了minParcelMass为1e-20,然后我设置的初始粒子的平均粒径在100um以上,破碎之后大部分也都是十几或几十um的水平

                            1 条回复 最后回复 回复 引用
                            • J
                              JqBu @星星星星晴 最后由 编辑

                              @星星星星晴 前辈,我看了帖子之前的讨论,但是没太看懂大家解决粒子追踪这种死循环问题的原理是什么,之前算freeSpray的时候出现这种问题可以用添加patchInteractionModel的方法解决,但是后面算impinging spray的时候就解决不了了,网格尺度是一样的,粒子的设置也是一样的。我现在还没太清楚是程序哪个部分出现了问题?

                              星 1 条回复 最后回复 回复 引用
                              • 星
                                星星星星晴 @JqBu 最后由 编辑

                                @jqbu minParcelMass 在你这个1e-20的话 大概算出来是3.91486764×10−7 不知道你有没有什么地方设置过vsmall 还有rootvsmall,作为filter,可能有问题吧 不好说。

                                另外如果parcel太小,有可能也被trap到某个涡里。看看调整一下你的Euler time step 还有maxco试试
                                impinging的流场比较复杂 jet?你先调整试试看one-way 限制尺寸大一点。

                                m.sui20@foxmail.com

                                1 条回复 最后回复 回复 引用
                                • First post
                                  Last post