Soutenance du stage au 27/06/2006
description
Transcript of Soutenance du stage au 27/06/2006
Soutenance du stage
au 27/06/2006
Méthodes de résolution de systèmes linéaires pour un prototype de calcul de l’injection de CO2 dans des
milieux poreux
Plan
• Stockage des matrices creuses Red and Black (R&B) Compressed Sparse Row (CSR)
• Résolution des systèmes linéaires Préconditionnement par factorisation incomplète (ILU(0)) Méthodes itératives (BICGSTAB)Résolution du système transformé obtenu par R&B
• Tests et résultats Comparaison de la qualité des résultats sur un exemple Comparaison de la vitesse de convergence
• Conclusion
Stockage des matrices creuses
Red and Black (R&B)(1)
• Numérotation des mailles en ordre ascendant:
• Numérotation des mailles en échiquier avec lescouleurs rouge et noir:
Red and Black (R&B)(2)
• Forme de la matrice A après numérotation par R&B:
où B et R sont des matrices bandes par bloc,
D1 et D2 des matrices diagonales par bloc:
Red and Black (R&B)(3)
• Multiplication de la totalité du système linéaire par une matrice contenant
les inverses des blocs diagonaux de D1 et D2:
• Il reste à résoudre un nouveau système linéaire:
où Id1 et Id2 sont des matrices unités
Compressed Sparse Row (CSR)(1)
• Exemple:
• Stockage des données en trois parties:
AA: - contient les valeurs non nulles de la matrice A stockées colonne par colonne- taille correspond au nombre des valeurs non nulles
JA:- contient les numéros de colonnes des éléments non nuls de A- taille correspond au nombre des valeurs non nulles
IA: - tableau de pointeurs où le i-ème pointeur pointe sur le numéro de la valeur
dans AA et JA qui contient le premier élément non nul de la ligne i dans A- taille correspond au nombre de lignes (=nbln) +1- IA[nbln+1] indique la fin des valeurs non nulles dans AA et JA
Compressed Sparse Row (CSR)(2)
• Adaption du stockage CSR pour profiter de la structure par bloc:chaque valeur du tableau AA contient une matrice de la taille d’un bloc où au moins une valeur est non nulle
• Exemple:
Résolution des systèmes linéaires
Préconditionnement par factorisation incomplète(1)
• Préconditionnement:Transformation d’un système linéaire qui permet d’appliquer une méthode itérative <<plus facilement>>
• Objectif:Trouver une matrice P <<facile à inverser>> telle queEnsuite: résoudre le système linéaire transformé
• Préconditionnement par ILU: Calculation d’une matrice triangulaire inférieure creuse à diagonale unité L et d’une matrice triangulaire supérieure creuse U telles que la matrice résidu satisfasse certaines conditions
Préconditionnement par factorisation incomplète(2)
ILU(0):• Les valeurs de la matrice résidu R sont nulles à tous les
endroits où la matrice A est non nul
• Les matrice L et U sont nulles à tous les endroits où A est nulle
• La décomposition de A en L et U n’est pas unique
• Le système linéaire est préconditionné par le produit de L et U (P=L*U)
Préconditionnement par factorisation incomplète(3)
Exemple:
Méthodes itératives (BICGSTAB)
• Pour résoudre le système linéaire d’origine ou le système linéaire préconditionné, il faut choisir un solveur qui trouve la solution assez rapidement sans gaspiller trop de mémoire.
• Les méthodes de Krylov généralement convergent vite sans être couteuses en temps de calcul.
• Pour la résolution de nos systèmes linéaires, on a choisi la méthode du gradient bi-conjugé stabilisé, BICGSTAB.
• BICGSTAB normalement converge très rapidement sans utiliser beaucoup de mémoire (en comparaison avec d’autres méthodes de Krylov).
Résolution du système transformé obtenu par R&B(1)
• Transformation du système d’origine avec élimination par R&B donne:
• Ce système est résolu de la façon suivante:
Résolution du système transformé obtenu par R&B(2)
• Finalement, il faut résoudre et ensuite calculer .
• La taille du système à résoudre est réduite par 2.
Tests et résultats
Comparaison de la qualité des résultats sur un exemple(1)
• Comparaison des résultats de BICGSTAB, BICGSTAB avec préconditionnement par ILU(0) et GAUSS sur un cas 1D horizontal avec une chimie simplifiée en variant la tolérance de BICGSTAB
• Le maillage est divisé en 500 mailles.
• Nombre maximal d’itérations de BICGSTAB: 50000
• Nombre d’itérations -1:BICGSTAB s’arrête car l’un des critères nécessaire à la bonne continuation de l’algorithme n’est pas vérifié
Comparaison de la qualité des résultats sur un exemple(2)
Comparaison de la qualité des résultats sur un exemple(3)
Conclusion:• BICGSTAB et BICGSTAB avec préconditionnement par ILU(0) donne sur cet
exemple des très bons résultats.
• Par préconditionnement, le conditionnement est amilioré ce qui entraîne une convergence plus rapide.
• Attention:Si la tolérance pour BICGSTAB est trop faible, l’algorithme souvent ne converge pas.
Comparaison de la vitesse de convergence(1)
• Comparaison des 5 méthodes suivantes sur plusieurs exemples: GAUSS BICGSTAB BICGSTABpre: BICGSTAB préconditionné par ILU(0) BICRB: BICSTAB après élimination par R&B BICRBpre: BICSTAB après élimination par R&B et
préconditionnement par ILU(0)
• Tolérance pour BICGSTAB: 1.0e-10• Nombre maximal d’itérations: 99999 • Tests sur un cas 1D horizontal (avec écoulement par différence de pression)
sur la minéralogie de l’Alberta. La fin du nom des exemples correspond au nombre des mailles.
• Le nombre d’équations par maille est 10
Comparaison du nombre d’itérations(1)
Comparaison du nombre d’itérations(2)
Comparaison de la vitesse de calcul(1)
Comparaison de la vitesse de calcul(2)
Comparaison des erreurs relatives(1)
Comparaison de la vitesse de convergence(2)
Conclusion:• Comme les matrices des systèmes sont mal conditionnées (p.ex. dans le
cas horiz50: K(A) = 9.15766e+13), BICGSTAB ne donne pas de bons résultats.
• Les solutions de BICGSTABpre, BICRB et BICRBpre sont très proches de la solution exacte.
• Le gain de temps, surtout avec BICRB et BICRBpre, est très grand en comparaison avec GAUSS
Conclusion
Bibliographie