CFD中文网

    CFD中文网

    • 登录
    • 搜索
    • 最新

    MULES, CMULES and IMULES 测试

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

      对流项永远是个大问题,在纯对流问题中,显性的高阶格式是无条件不稳定的。于是耗散非常严重的upwind依然人见人爱。但在某些情况下,变量的耗散会引起数值计算的不精准。尤其在界面捕获的俩相流中,相传输方程为纯对流方程,一阶空间离散格式会导致相界面的模糊,但是高阶格式除了会产生相变量的越界导致计算发散。

      今天没事测试了一下各种MULES,算例非常简单,标量对流传输。结果见图吧。

      0_1512121538830_捕获2.JPG
      上图是中心差分无条件震荡(注意横坐标和时间点和下图都不同)

      0_1512121560960_捕获3.JPG
      上图是MULES的迎风插值

      0_1512121579905_捕获.JPG
      上图是MULES+中心插值,型线挺好。


      但是用复杂算例测试还是越界了 :big_mouth:
      想看越界的可以算算tutorials/basic/scalarTransportFoam/下面的pitzDaily算例,把扩散系数设置为0.

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

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

        高阶格式一直是CFDer的追求,在群体平衡模型矩方法领域,可实现性是个老大难,目前为了变量的有界只能使用一阶迎风。有一些人研究的高阶格式在2011年2013年和2017年年初分别发在了计算物理上。我在想MULES能不能用在我的领域上。

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

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

          对比一下MULES(FCT)和vanLeer格式。下面是某点的M0,这个点均有界。

          0_1512652947662_捕获.JPG

          另外一点的M0,vanLeer越界了

          0_1512653029253_捕获2.JPG

          整个流场的M0最小值,vanLeer越界了

          0_1512653067847_捕获3.JPG

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

          A 1 条回复 最后回复 回复 引用
          • 影
            影川风 最后由 编辑

            东岳老师,能否提个不情之请,可以分享下算例吗?我目前也在看对流项的差值格式,想学习下这方面的知识。

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

              算例非常简单,就是1维对流问题。不过可以给你个思路制作求解器。改编scalarTransportFoam:

              #include "fvCFD.H"
              #include "simpleControl.H"
              #include "MULEStest.H"
              #include "FCT.H"
              
              // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
              
              int main(int argc, char *argv[])
              {
                  #include "setRootCase.H"
                  #include "createTime.H"
                  #include "createMesh.H"
              
                  simpleControl simple(mesh);
              
                  #include "createFields.H"
              
                  // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
              
                  Info<< "\nCalculating scalar transport\n" << endl;
              
                  #include "CourantNo.H"
              
                  while (simple.loop())
                  {
                      Info<< "\n\nTime = " << runTime.timeName() << nl << endl;
              
              		scalarField phiTout;
              
                      while (simple.correctNonOrthogonal())
                      {
              			phiT = phi * fvc::interpolate(T);
              
              			phiTout = phiT.ref();
              			Info << "phiT before MULES " << phiTout << nl << nl;
              
              			//MULEStest::explicitSolve(T, phi, phiT, 9, 0);
              			FCT(T, phi, phiT, 9, 0);
              
                          //fvScalarMatrix TEqn
                          //(
                          //    fvm::ddt(T)
                          //  + fvc::div(phiT)
                          //);
                          //TEqn.relax();
                          //TEqn.solve();
                      }
              
              		scalarField TOUTPUT = T.ref();
              
              		phiTout = phiT.ref();
              
              		Info << "\n\nT is " << TOUTPUT << nl;
              		Info << "phiT after MULES " << phiTout << nl;
              
                      runTime.write();
                  }
              
                  //Info<< "End\n" << endl;
              
                  return 0;
              }
              

              通过MULES学习插值格式太复杂了

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

              影 金石为开 2 条回复 最后回复 回复 引用
              • 影
                影川风 @李东岳 最后由 编辑

                @李东岳 好的,非常感谢东岳老师:happy:

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

                  @李东岳 MULES(FCT)格式是什么意思,用mules 的vanleer 和不用的对比吗

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

                    MULES(FCT)

                    MULES就是FCT的变种,区别在于限制器的求解和原始文献有点不同。使用FCT的时候,需要指定一种高阶格式,比如linear或者vanLeer

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

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

                      前辈,弱弱的问一句,这个分布图是用paraview做的么?像这种不同时刻的怎么做呢😂

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

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

                        不,是gnuplot做的,目前在小岛等汽车,只能帮你到这里了:happy:

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

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

                          @李东岳 多谢前辈 我自己研究一下~

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

                          1 条回复 最后回复 回复 引用
                          • 金石为开
                            金石为开 @李东岳 最后由 编辑

                            @李东岳 老师 我也想知道测试格式算例是啥样的?您写的上面代码解标量方程那个Matrix代码是不是不该注释掉啊

                            李东岳 1 条回复 最后回复 回复 引用
                            • 李东岳
                              李东岳 管理员 @金石为开 最后由 编辑

                              @金石为开
                              等回德国我回复你。MULES这个2018年应该可以写个解析出来。2016年就在计划中,但是有别的事情要搞。

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

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