Existe alguma maneira de fazer "duplo pré-condicionamento"

15

Questão:

Suponha que você tenha dois pré-condicionadores diferentes (fatorados) para uma matriz definida positiva simétrica : e onde os inversos dos fatores são fácil de aplicar.A B T B A C T C , B , B T , C , C TA

ABTB
ACTC,
B,BT,C,CT

Quando é que é possível usar informações de ambos e para construir um pré-condicionador melhor do que qualquer ou sozinho?C B CBCBC

Nick Alger
fonte

Respostas:

13

Você pode usar aditivo

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

multiplicativo

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

ou multiplicativo simétrico. Os métodos desta classe estão disponíveis no PETSc usando PCCOMPOSITE no PETSc. Por exemplo,

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

O manual do usuário possui uma seção "Combinando pré-condicionadores".

Jed Brown
fonte
Excelente, obrigado! Você tem conhecimento de alguma teoria ou artigo que discuta as condições sob as quais essas combinações seriam eficazes ou ineficazes, ou é praticamente tentativa e erro?
Nick Alger
Como em todo pré-condicionamento, a análise é em termos do espectro de um operador pré-condicionado, geralmente expresso por um problema generalizado de autovalor. Intuitivamente, se cada pré-condicionador atingir diferentes processos ou diferentes partes do espectro, a intenção da combinação é corrigir as duas partes. As abordagens mais bem-sucedidas dessa classe são baseadas na correção de subespaço, que inclui multigrid, decomposição de domínio e divisão de campo (literatura para cada). O PETSc possui pré-condicionadores mais especializados para expor paralelismo ou reutilizar resultados intermediários nesses casos.
Jed Brown
1

Além da excelente resposta de Jed, um método que encontrei recentemente é alternar entre os pré-condicionadores todas as outras etapas do GMRES flexível (FGMRES), como é feito, por exemplo, em

Tezduyar, TE, et al. "Um novo método misto de pré-condicionamento para cálculos de elementos finitos." Métodos de Computador em Mecânica Aplicada e Engenharia 99.1 (1992): 27-42. http://repository.ias.ac.in/24680/1/320.pdf

Nick Alger
fonte