Existe-t-il un moyen de faire un «double préconditionnement»

15

Question:

Supposons que vous ayez deux préconditionneurs différents (factorisés) pour une matrice définie positive symétrique : et où les inverses des facteurs sont facile à appliquer.A B T BUNE

UNEBTB
B , B T , C , C T
UNECTC,
B,BT,C,CT

Quand est - il possible d'utiliser des informations provenant à la fois et pour construire un meilleur préconditionneur que soit ou seul?C B CBCBC

Nick Alger
la source

Réponses:

13

Vous pouvez utiliser un additif

Pune-1X=(BTB)-1X+(CTC)-1X,

multiplicatif

Pm-1X=(BTB)-1X+(CTC)-1(X-UNE(BTB)-1X),

ou multiplicative symétrique. Les méthodes de cette classe sont disponibles dans PETSc en utilisant PCCOMPOSITE dans PETSc. Par exemple,

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

Le manuel d'utilisation contient une section sur "Combiner les préconditionneurs".

Jed Brown
la source
Excellent merci! Connaissez-vous une théorie ou des articles qui discutent des conditions dans lesquelles ces combinaisons seraient efficaces ou inefficaces, ou s'agit-il simplement d'essais et d'erreurs?
Nick Alger
Comme pour tout préconditionnement, l'analyse porte sur le spectre d'un opérateur préconditionné, souvent exprimé via un problème de valeur propre généralisé. Intuitivement, si chaque préconditionneur cible différents processus ou différentes parties du spectre, l'intention de la combinaison est de corriger les deux parties. Les approches les plus réussies de cette classe sont basées sur la correction du sous-espace, qui inclut la multigrille, la décomposition de domaine et la division de champ (littérature pour chacun). PETSc dispose de préconditionneurs plus spécialisés pour exposer le parallélisme ou réutiliser des résultats intermédiaires dans ces cas.
Jed Brown
1

En plus de l'excellente réponse de Jed, une méthode que j'ai trouvée récemment consiste à basculer entre les préconditionneurs à chaque étape du GMRES flexible (FGMRES), comme cela se fait, par exemple, dans

Tezduyar, TE, et al. "Une nouvelle méthode de préconditionnement mixte pour les calculs par éléments finis." Méthodes informatiques en mécanique appliquée et en génie 99.1 (1992): 27-42. http://repository.ias.ac.in/24680/1/320.pdf

Nick Alger
la source