迭代求解器模板库与并行CFD代码解析
1. 迭代求解器模板库(ISTL)
1.1 矩阵类中的类型名称
矩阵类中有多种类型名称,具体如下表所示:
| 表达式 | 描述 |
| ---- | ---- |
| 场类型(field type) | 向量空间映射的场的类型 |
| 块类型(block type) | 表示矩阵组件的类型 |
| 行类型(row type) | 行的容器类型 |
| 大小类型(size type) | 用于索引访问和大小操作的类型 |
| 块级别(block level) | 块递归级别,如FieldMatrix为1,BCRSMatrix >为2 |
| RowIterator | 行的可变迭代器类型 |
| ConstRowIterator | 行的不可变迭代器类型 |
| ColIterator | 行的列的可变迭代器类型 |
| ConstColIterator | 行的列的不可变迭代器类型 |
需要注意的是,对于有限元离散化产生的密集矩阵块,由于其通常较小,因此不使用递归分块算法。
1.2 预条件器的递归结构
大多数预条件器可以针对特定的块级别k进行修改以遵循递归结构。对于非对角块,预条件器正常工作,将它们视为传统的矩阵元素。对于对角值,有特殊的处理程序:
- 当k > 1时,对角被视为一个矩阵本身,预条件器在表示对角值D = Aii的矩阵上以块级别k - 1递归应用。
- 当k = 1时,对角被视为矩阵元素,根据算法进行线性求解或恒等操作。
超级会员免费看
订阅专栏 解锁全文

被折叠的 条评论
为什么被折叠?



