有没有办法做“双重预处理”

计算科学 线性代数 克雷洛夫法 预处理 条件数
2021-12-17 00:02:30

问题:

假设您有两个不同的(因式分解的)预条件子用于对称正定矩阵A

ABTB
ACTC,
其中因子的倒数B,BT,C,CT很容易申请。

何时可以使用两者的信息 BC建立一个比任何一个更好的预处理器B或者C独自的?

2个回答

你可以使用添加剂

Pa1x=(BTB)1x+(CTC)1x,

乘法的

Pm1x=(BTB)1x+(CTC)1(xA(BTB)1x),

或对称乘法。此类方法在 PETSc 中使用 PETSc 中的PCCOMPOSITE可用。例如,

petsc/src/ksp/ksp/examples/tutorials$ ./ex2 -m 100 -n 100 -ksp_monitor \ -pc_type composite -pc_composite_type multiplicative \ -pc_composite_pcs ilu,gamg 0 KSP Residual norm 7.088415699389e+01 1 KSP Residual norm 1.271768323411e+01 2 KSP Residual norm 1.529853612054e+00 3 KSP Residual norm 1.214841683459e-01 4 KSP Residual norm 8.341606406485e-03 5 KSP Residual norm 6.471990946051e-04 6 KSP Residual norm 8.082672366030e-05 7 KSP Residual norm 6.111138513482e-06 Norm of error 6.93786e-06 iterations 7

用户手册有一个关于“组合预处理器”的部分

除了 Jed 的出色答案之外,我最近发现的一种方法是在灵活 GMRES (FGMRES) 中每隔一步在预调节器之间切换,例如,在

Tezduyar,TE,等人。“一种新的有限元计算混合预处理方法。” 应用力学与工程中的计算机方法 99.1 (1992): 27-42。http://repository.ias.ac.in/24680/1/320.pdf