关于OpenFOAM矩阵求解器



  • 最近在写自己的二维空气动力学求解器,用的Gauss-Seidel迭代的方式,求解速度非常慢,试过bicg求解非常不稳定,看了OpenFOAM里面用的是PCG和PBICG,网上找不到这方面材料,能不能讲解一下这方面的算法



  • @一二
    碰巧最近搞了一点点矩阵求解器。绿之一二。
    OpenFOAM里面的PCG就是CG求解器附加预条件(precondition)
    PBICG就是bi-CG求解器附加预条件(precondition)

    当然我假想你应该不只是关心他们的名字。而是关心收敛速度。不过这我就不太明白了。暂时只是知道Gauss-Seidel迭代如果对角占优不是特别强,收敛会很慢。并且可以看出来,OpenFOAM里面全部使用了预处理。

    另一种黑科技是多重网格求解技术,对于网格数量比较多的时候大大加速收敛,不过看起来不是我们讨论的内容。

    有关矩阵求解器书籍推荐Yousf saad的书。不过要精通实在忒复杂。目前我也想知道BICG以及BICGStab算法之前收敛性以及稳健性的区别。

    如果有看过相关对比的文献也多交流:sunglasses:



  • @cfd-china 在 关于OpenFOAM矩阵求解器 中说:

    目前我也想知道BICG以及BICGStab算法之前收敛性以及稳健性的区别

    我之前测试过bicg和bicgstab算法,测试的是迎风格式下对流扩散问题的求解,网格增多会加大求解的不稳定性,实际上bicgstab在一些情况下稳定性比bicg算法还差(具体什么情况我没有仔细对比过),但bicgstab没有比Bicg好到哪里去。

    这方面方程组求解理论其实我并不懂,只是对着算法自己实现了而已,gauss算法还可以理解,那个简单,但我简单测试了下,bicg算法收敛速度是g-s速度的十倍左右。所以完全不靠谱。

    至于你说的多重网格方法,那个应该是求解器里面的吧,而且对于复杂外形的求解,这个算法我觉得也不好设置,我在所有cfd教科书上都看到过,其实我不明白为什么这张内容会放在线性方程组求解那一章,或许我的理解有偏差。

    你说的Yousf saad的书我准备看看,不找哪有下载的啊




Log in to reply
 

CFD中文网 2016 - 2020 | 京ICP备15017992号-2