Salut,
je dois résoudre le système suivant :
B(x,y) - a*laplacien(B(x,y)) = S(x,y)
'a' est une constante positive.
la grille est régulière. les conditions limites sur les bords x=cte et y=cte sont soit neumann soit dirichlet (au choix).
Pour le moment j'ai codé un petit solveur multigrille tout bête avec un smoother gauss-seidel tout simple.
Je travaille avec une grille de 1024x1024 points au maximum, et mon code est trop lent (15sec environ pour inverser mon systeme vectoriel (B et S sont des vecteurs a 3 composantes)). Vous allez me dire, 15 secondes c'est pas long, mais quand vous le faites 50000 fois, si.
J'aimerais le passer en parallèle, mais je suis pas spécialiste et j'ai pas trop le temps de réinventer la roue...
j'ai trouvé la bibliotheque PETSC, qui semble assez évoluée pour résoudre ce genre de trucs.
ma question est la suivante, quelle méthode pensez-vous qu'il est préférable pour moi de choisir ? Je n'ai pas trop en tête les différents avantages/désavantages des méthodes de krylov, des préconditionneurs... ou alors choisir un solveur multigrille ? rapidité, mémoire ... que me conseillez vous ?
Merci
A+
Partager