icoFoam解析中哪里调用了SIMPLE算法?



  • http://dyfluid.com/icoFoam.html
    岳哥在这个文档中,虽然是PISO算法,但是simpleFoam的步骤跟这个也差不多,simpleFoam并没有体现出SIMPLE算法的调用。就是传统教科书中SIMPLE算法略去的那一项,好像simpleFoam并没有调用?



  • 在Jasak的论文中也没有看到相关的描述,虽然OpenFOAM求解的是压力方程而不是压力修正方程,SIMPLE算法略去的那个关键步骤应该也存在的吧?

    参考《数值传热学》207页:

    所谓半隐就是略去临点这些项的处理方法

    211页

    SIMPLE在导出速度修正计算式中没有考虑邻点的影响



  • 存在,求压力和压力修正差别不大,求压力更直接,可能稳定性稍微差一点点。



  • OF只有PISO,simpleFoam也是PISO.



  • icoFoam用的是PISO算法,simpleFoam用的是SIMPLE算法,这个大家都很认同。 @Him 的这句话:

    OF只有PISO,simpleFoam也是PISO.

    或许可以这样说:OpenFOAM里面的PISO算法和SIMPLE算法确实都采用了略去临点的策略。但需要注意的是,如果对比simpleFoampisoFoam的代码(非常简单的改动就可以),重要区别在于松弛和PISO的多次压力修正而不是略去临点的影响。

    如果你去看1985年Issa PISO算法的文章,并没有发现Issa调用了SIMPLE的思想,所以我刚说的这句话:

    OpenFOAM里面的PISO算法和SIMPLE算法确实都采用了略去临点的策略

    是非常大胆的。不过如果你看Versteeg and Malalasekera的书关于PISO算法的一章,你会发现确实PISO算法也调用了略去临点影响的思想。

    但是为什么在Issa原始的PISO算法里面没有提及?原因在于对于求解压力方程的SIMPLE和PISO算法,都需要调用略去临点的假定。所以这就揭示了1985年PISO算法为什么没有显性的提及略去临点的思想,因为1985年的文章求解的是压力方程。

    回到 @cfd-china 的问题,对于都略去临点假定的simpleFoamicoFoam,你不需要从simpleFoam去找,icoFoam中也有。icoFoam中的方程24就调用了这个思想。

    不得不承认,对于求解压力方程而非压力修正方程的算法,这种略去临点的思想很难被发现(被隐性的包含了)。

    如果你去研究SIMPLEC算法,会发现SIMPLEC算法需要在方程两侧都减去临点的影响,这导致压力方程会包含上个时间步的压力项,这也是SIMPLEC压力方程不需要松弛的一个原因。

    目前教科书中都是描述的压力修正方程,2015年我从SIMPLE算法和SIMPLEC算法导出过压力方程,但是太复杂了并没有在icoFoam解析中包含,暂时也没有打算包含。可能会让大家非常困惑…



  • 楼上解释真详细,重点全说了。

    SIMPLEC也很难做到完全consistent,所以还是需要松弛。有一次我用稳态pisoFoam算了之后发现比simpleFoam在一些流场内收敛快不少。还没有尝试过 PISOC 的算法,但是估计不会很快。



  • 很全面。我看了一下方程24,依然没有看出来怎么使用了略去临点的思想…先不管这个了,主要就是确认一下OpenFOAM中是不是真的存在这个方法。另外还有rhie-chow插值这个,也看得不是很明白到底在哪用了插值。岳哥文档虽然写了很全面,但是能不能再详细一些。这些东西研究深了之后太复杂,教材中有些东西也看不明白,回头仔细看看。



  • OF没rhie-chow,但是用了rhie-chow的本质来解决棋盘压力。



  • @Him 对了,

    SIMPLEC也很难做到完全consistent,所以还是需要松弛

    愿闻其详?


登录后回复
 

与 CFD中文网 的连接断开,我们正在尝试重连,请耐心等待