求解Ax = b的无矩阵方法的预处理器


9

我需要解决Ax = b,但是我意识到即使它很稀疏,存储我的问题的矩阵系数也会占用太多内存。所以现在我正在考虑使用无矩阵方法,因为相同的系数在矩阵中出现的时间很多,所以我可以使用自己的私有存储方案(并通过提高缓存效率来实现)。

我正在看petsc,它为此类无矩阵线性运算符提供接口,但是我真正不了解的是,petsc如何计算前置条件?还是我应该提供自己的预处理器?如果是这样,是否有工具或方法可用于从无矩阵线性算子构建预处理器?

有关我的运算符的更多信息:它是不对称的,不是对角线占优势,而是由一些边带控制(但也不是对角线带状)

Answers:


7

您需要滚动自己的预处理器。如果您知道矩阵,那么实现诸如SSOR前置条件之类的东西就不会非常困难。如果您对问题有其他了解,例如它来自PDE,其解可以在较粗糙的网格上很好地近似,那么您也可以考虑通过将问题限制在较粗糙的网格上,在此处求解并扩展该问题来构造预处理器。解决方案回到原来的解决方案。限制和延长可以实现为无矩阵操作。

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.