Navigation

    CFD中文网

    CFD中文网

    • Login
    • Search
    • 最新

    关于基本求解器中laplacianFoam热传导明明有时间导数为什么还是用稳态的simple算法?

    OpenFOAM
    4
    11
    5080
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • 金石为开
      金石为开 last edited by

      关于基本求解器中laplacianFoam热传导明明有时间导数为什么还是用稳态的simple算法?不是piso算法吗?看结果输出文件也少一些东西,难道热传导是瞬间完成的当做稳态来处理吗?怎么理解呢谢谢~~

      1 Reply Last reply Reply Quote
      • chpjz0391
        chpjz0391 last edited by CFD中文网

        这个求解器没用过,但是用其他的稳态,你看主程序里面,都是以timeloop来计算的,

        while (simple.loop())
            {
                Info<< "Time = " << runTime.timeName() << nl << endl;
        
                parcels.evolve();
        

        而瞬态的还有有这一步

        while (runTime.run())
        

        稳态是不存在这一步的

        1 Reply Last reply Reply Quote
        • 队长别开枪
          队长别开枪 教授 last edited by

          因为这里只涉及单一变量的求解,没有相关变量的耦合问题(例如速度-压力),所以用simple算法是没有问题的,只是单纯地按时间步推进,当时间大到一定程度(具体多大取决于DT的数值)的时候,温度场不再变化,也就是达到稳态。

          金石为开 1 Reply Last reply Reply Quote
          • 金石为开
            金石为开 @队长别开枪 last edited by

            @队长别开枪 能具体说一下吗?是不是非常快的瞬态比如热传导可以用simple?谢谢

            队长别开枪 1 Reply Last reply Reply Quote
            • 队长别开枪
              队长别开枪 教授 @金石为开 last edited by 队长别开枪

              @金石为开 SIMPLE算法本身是为不可压流动中速度-压力的耦合问题设计出来的,这里温度场的求解没有这类耦合问题,用simple只是为了达到按时间推进和设置非正交修正的目的,在源代码里你把while (simple.loop())改成while (runTime.loop())或者while (runTime.run())效果都是一样的。如果不需要非正交修正,则只需把

              while (simple.correctNonOrthogonal())
              {
                  solve
                  (
                      fvm::ddt(T) - fvm::laplacian(DT, T)     
                  );
              }
              

              改成

              solve
              (
                  fvm::ddt(T) - fvm::laplacian(DT, T)     
              );
              

              此时我们就没有引入simple的必要了,所以这里使用simple只是为了方便设置非正交修正次数罢了。
              这里有一个算例,温度场开始随时间剧烈变化,最后趋于稳定
              OpenFOAM求解器开发

              李东岳 金石为开 2 Replies Last reply Reply Quote
              • 李东岳
                李东岳 管理员 @队长别开枪 last edited by

                @队长别开枪
                最后的链接写的不错。但是我建议在这个文档以及其他文档中对某些取自《OpenFOAM用户指南》的地方注明出处。

                线上CFD课程 7月1日报名截止 http://dyfluid.com/class.html
                CFD高性能服务器 http://dyfluid.com/servers.html

                队长别开枪 1 Reply Last reply Reply Quote
                • 队长别开枪
                  队长别开枪 教授 @李东岳 last edited by

                  @李东岳 好的,我差不多一个月前刚接触OpenFOAM,原先都是基于Fortran自己写的求解器,直到后来老板说OpenFOAM好,本身那个文档就是笔记性质的,主要用于内部讨论,不过我会尽快标注所有出处的,谢谢您的建议。

                  1 Reply Last reply Reply Quote
                  • 金石为开
                    金石为开 @队长别开枪 last edited by

                    @队长别开枪 simple.loop()函数也有时间控制的作用?一直以为只有是收敛控制。如果这样,求解瞬态simple和求解稳态simple他们有什么区别呢?还有piso我懂,simple截止条件在哪里,哪个代码表示这个?非常感谢,我对理论部分还理解不太透彻。~~

                    1 Reply Last reply Reply Quote
                    • 李东岳
                      李东岳 管理员 last edited by

                      simple.loop()函数也有时间控制的作用?一直以为只有是收敛控制。

                      没有,此函数可以控制时间。但是不能控制收敛。SIMPLE截止条件在Foam::simpleControl::criteriaSatisfied()函数。参见simpleControl.C。

                      瞬态simple和求解稳态simple他们有什么区别呢?

                      瞬态SIMPLE添加时间项步进大家都知道的。这就是瞬态SIMPLE和稳态SIMPLE的区别。不过或许你关心的是瞬态SIMPLE和瞬态PISO的区别。需要注意的是PISO为Issa在1986年提出的本身就针对瞬态问题的非迭代算法。PISO在时间步进中不需要迭代。这是最主要的区别。更多介绍参见Issa 1986年的论文。PISO在SIMPLE之后研发,Issa以及对他们的区别进行了充分的解释。

                      Enjoy

                      线上CFD课程 7月1日报名截止 http://dyfluid.com/class.html
                      CFD高性能服务器 http://dyfluid.com/servers.html

                      金石为开 1 Reply Last reply Reply Quote
                      • 李东岳
                        李东岳 管理员 last edited by

                        不过,关于laplacianFoam这个simpleloop应该是个无关紧要的bug。

                        线上CFD课程 7月1日报名截止 http://dyfluid.com/class.html
                        CFD高性能服务器 http://dyfluid.com/servers.html

                        1 Reply Last reply Reply Quote
                        • 金石为开
                          金石为开 @李东岳 last edited by

                          @李东岳 我是看你的《浅谈Piso,Simple算法》理解这些算法的,里面只有稳态SIMPLE,我理解的PISO算法是不是指第一个PISO算法把右边箭头指向第三个方框前面实现Ueqn.A与.H持续更新对不对,我这样理解对不?非常感谢~

                          1 Reply Last reply Reply Quote
                          • First post
                            Last post

                          CFD中文网 | 东岳流体 | 京ICP备15017992号-2
                          论坛登录问题反馈可联系 li.dy@dyfluid.com