Your browser does not seem to support JavaScript. As a result, your viewing experience will be diminished, and you have been placed in read-only mode.
Please download a browser that supports JavaScript, or enable it if it's disabled (i.e. NoScript).
最近想重新用c++写一个求解器,对于矩阵的求解这块之前用的是自己编的代码,用高斯迭代法求解,算法十分慢。在我与openfoam计算时间的比较中发现自己的算法比他们慢很多倍。我觉得矩阵的求解方法是重要原因。求教如openfoam、su2这类软件中或者其他朋友的in house code用的矩阵是用什么方法求解的?有没有哪位高手推荐一个适合cfd算法的矩阵库
@搬运工 CFD 中的矩阵都是大型稀疏矩阵,直接求解代价太大,因此一般都是给初值迭代求解。
你写的可压还是不可压求解器?如果是不可压,方程分离式求解,按照OpenFOAM给的方法写就可以。 如果是可压的话,高斯迭代法还是太慢,现在最火的是LU-SGS法。
@搬运工
高斯迭代法处理20阶矩阵就已经非常慢了。通常和多重网格+高斯赛德尔求解器一起处理。并且OpenFOAM这种成熟的商软里面矩阵求解器算法非常精炼。通常由主求解器+预处理+光顺+重组构成。多重网格更是复杂。另外,在编程的时候使用动态、寻址的方法寄存系数。
所以如果你要写一个快速的求解器: