CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    isoAdvection模拟水中上升的气泡边界不稳

    OpenFOAM
    5
    16
    6539
    正在加载更多帖子
    • 从旧到新
    • 从新到旧
    • 最多赞同
    回复
    • 在新帖中回复
    登录后回复
    此主题已被删除。只有拥有主题管理权限的用户可以查看。
    • S
      sunjh 最后由 编辑

      Emmm....正在尝试模拟在水中上升的气泡,处理边界使用了isoAdvection,压力速度耦合使用了PISO,求解器以InterFoam为基础。图片是alpha.water的截图,还想请问为什么使用isoAdvection时气泡会发散的这么严重?前辈们有没有什么解决的建议?
      P.S. 在使用MULES是气泡的边界会稳定很多
      0_1516717894205_bubble1.PNG

      1 条回复 最后回复 回复 引用
      • 李东岳
        李东岳 管理员 最后由 编辑

        你的算例多大?我最近刚回国正打算装这个试试,目前不能给出建设性意见。 据我所知 @yhdthu 在这面做一阵子了

        CFD高性能服务器 http://dyfluid.com/servers.html

        S 1 条回复 最后回复 回复 引用
        • S
          sunjh @李东岳 最后由 编辑

          @李东岳 模拟的是一个二维算例,80mm*440mm,一共有30660个网格,感觉这个并不大,算着算着气泡就消失了:sad: ...不知道如果我增加nAlphaSubCycles能不能对alpha的运算结果有点好的影响
          哎,三维算例很大,运算很慢,alpha有类似的问题...

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

            我也用interIsoFoam算过气泡上升,虚假流比MULES严重些,但是没出现你这种情况。isoAdvection我改过,对算法还算熟悉,你最好把算例设置介绍的详细点,要不没法判断哪里的问题

            长风破浪会有时,直挂云帆济沧海

            S linhan.ge 2 条回复 最后回复 回复 引用
            • S
              sunjh @yhdthu 最后由 李东岳 编辑

              @yhdthu fvSolution里对alpha是如下这样设置的:

                 alpha.water
                  {
                   interfaceMethod "isoAdvector";
                   isoFaceTol  1e-8;
                   surfCellTol 1e-8;
                   nAlphaBounds 3;
                   snapAlphaTol 1e-12; 
                   clip   false; 
                   writeIsoFaces false;
                   gradAlphaNormal false;
                   nAlphaCorr      2;
                   nAlphaSubCycles 1;
                   cAlpha          1;
                  }
              

              对PISO的设置是

              {
              	pRefPoint (0 0 0);
              	pRefValue 0;
                  momentumPredictor true;
                  nCorrectors     3;
                  nOuterCorrectors	1;
                  nNonOrthogonalCorrectors 0;
              }
              

              controlDict里

              maxCo           0.05;
              maxAlphaCo      0.05;
              maxDeltaT		1e-5;
              

              求解器其实没用interIsoFoam,是以interFoam为基础进行了修改,在src里加了isoAdvection;压力速度耦合一开始想用PIMPLE算,但有问题,就改成了PISO。您在改isoAdvection时遇到过哪些影响很大的设置呀?

              yhdthu 1 条回复 最后回复 回复 引用
              • yhdthu
                yhdthu 讲师 @sunjh 最后由 编辑

                @sunjh 这跟你用什么耦合求解方法没啥关系,建议先把这两个调大一些

                isoFaceTol 1e-6;
                surfCellTol 1e-6;

                理由:isoadvection对alpha耗散小,但不代表没耗散

                建议看看源代码,搞清楚后这些设置都很简单

                不懂为啥不直接用interIsoFoam,有现成的自己写干嘛?

                长风破浪会有时,直挂云帆济沧海

                S 1 条回复 最后回复 回复 引用
                • S
                  sunjh @yhdthu 最后由 编辑

                  @yhdthu 因为用了moving reference frame (MRF) 来调整气泡纵向的速度,让它保持在空间域的中心,所以没用interIsoFoam。不过听了你说的,我会用interIsoFoam直接试试,谢谢:happy:

                  yhdthu linhan.ge 2 条回复 最后回复 回复 引用
                  • yhdthu
                    yhdthu 讲师 @sunjh 最后由 编辑

                    @sunjh 那我觉得很可能是因为守恒性出现了问题,你在强行的加约束

                    长风破浪会有时,直挂云帆济沧海

                    1 条回复 最后回复 回复 引用
                    • linhan.ge
                      linhan.ge @yhdthu 最后由 编辑

                      @yhdthu 你好!我也想尝试用isoAdvector模拟气泡,以你的经验不知道到相比MULES有什么优劣呢?听你的描述,感觉好像还不如MULES啊?

                      Working on CFDEM project.

                      队长别开枪 yhdthu 2 条回复 最后回复 回复 引用
                      • 队长别开枪
                        队长别开枪 教授 @linhan.ge 最后由 编辑

                        @linhan-ge 几何重构算法精度高,交界面处没有数值耗散,缺点是计算效率比代数方法低,因为要显式地重构出interface。参考:https://www.youtube.com/watch?v=AARnZrrIsEA

                        linhan.ge 1 条回复 最后回复 回复 引用
                        • yhdthu
                          yhdthu 讲师 @linhan.ge 最后由 编辑

                          @linhan-ge 同等网格下,isoadvection计算量要比mules大,主要因为界面处曲率计算量,显式重构要比隐式重构大。如果土豪可以无限加密网格,用哪个方法计算得到的效果是一样的,就看你追求精度还是效率了

                          长风破浪会有时,直挂云帆济沧海

                          linhan.ge 1 条回复 最后回复 回复 引用
                          • linhan.ge
                            linhan.ge @yhdthu 最后由 编辑

                            @yhdthu 明白了,因为我需要在计算过程中得到interface的位置。那应该还是isoadvector方便点,计算效率上可以牺牲下。

                            Working on CFDEM project.

                            1 条回复 最后回复 回复 引用
                            • linhan.ge
                              linhan.ge @队长别开枪 最后由 编辑

                              @队长别开枪 感谢分享!

                              Working on CFDEM project.

                              1 条回复 最后回复 回复 引用
                              • linhan.ge
                                linhan.ge @sunjh 最后由 编辑

                                @sunjh 您好,想请教下是怎么用MRF 来保持气泡在中心的呢?需要改动代码吗?还是有现成的功能。

                                Working on CFDEM project.

                                1 条回复 最后回复 回复 引用
                                • 李东岳
                                  李东岳 管理员 最后由 编辑

                                  0_1544681998660_捕获.JPG

                                  他那个wobuqi我不清楚,不过你用这种方法也可以。上面给一个向下的速度(需要调节好)。气泡会在中心左右摆动

                                  CFD高性能服务器 http://dyfluid.com/servers.html

                                  linhan.ge 1 条回复 最后回复 回复 引用
                                  • linhan.ge
                                    linhan.ge @李东岳 最后由 编辑

                                    @东岳 嗯嗯,这也是个办法。两种方法速度都比较难调节。

                                    Working on CFDEM project.

                                    1 条回复 最后回复 回复 引用
                                    • Referenced by  I ir77 
                                    • First post
                                      Last post