代数多重网格是否重用其粗网格?

计算科学 线性求解器 多重网格
2021-12-05 04:50:47

诚然,我是这个主题的新手,所以这可能是一个非常简单的问题。

假设我想用代数多重网格多次求解(大稀疏)线性系统 Ax = b,并且 b 每次都(略微)变化。据我了解,AMG 根据误差的平滑度选择其粗网格,这取决于 b,因此每次 b 更改时都必须重新执行此操作,尽管 A 保持不变。

这个对吗?与几何多重网格(如果适用)相比,这不是一个巨大的交易吗?

1个回答

在代数多重网格中,通常有两个步骤:

1)设置:在这里我们计算A矩阵和插值矩阵 (W,W) 在每个网格级别。这是基于计算完全来自矩阵信息的 c 点和 f 点A在每个级别。我们不需要右手边b向量来完成这个设置步骤。

2)求解:一旦我们在每个级别都有我们的 A 矩阵和插值矩阵,我们就执行递归多重网格算法:

  • n1平滑步骤Ax=b
  • 计算残差r=bAx=Ae
  • 计算Wr
  • 设置e=0
  • 递归求解是粗略级矩阵和误差向量)Acec=WrAcecA
  • 正确x=x+Wec
  • 上执行平滑步骤n2Ax=b

总之,对于右手边向量的许多不同选择,设置步骤可以完成一次,因为在每个级别找到矩阵和插值矩阵 ( , ) 不涉及右手边向量,而只涉及来自矩阵bAWWA