Résolution numérique de l'équation de Poisson

1  Théorie

Nous allons résoudre l'équation de Poisson sur une grille à deux dimensions. Nous considérons pour cela le système rectangulaire donné ci-dessous, où x va de 0 à Lx et y de 0 à Ly. Ce système est discrétisé par une grille de points (i,j), où i va de 0 à Nx et j de 0 à Ny. Le point (i,j) sera ainsi représentatif de ce qui se passe en x=i.Δx et y=j.Δy (Δx = Lx/Nx, Δy = Ly/Ny).
Dans un espace à deux dimensions, l'équation de Poisson s'écrit de la façon suivante:
où ε représente ici la permittivité relative, V le potentiel électrique, et σ la densité surfacique de charges. En deux dimensions, nous avons
En indiçant par (i,j) les valeurs correspondant au point x=i.Δx et y=j.Δy, nous pouvons discrétiser cette équation comme suit:
ou encore
Dans ces expressions, les indices demi-entiers désignent des valeurs à la limite entre deux cellules adjacentes. On peut approximer ces valeurs par
L'équation de Poisson discrétisée devient alors:
ou finalement:
Le potentiel électrique en chaque point de la grille apparaît ainsi comme une moyenne pondérée des valeurs caractérisant les points voisins. Le tout est de fixer au départ les valeurs de εi,j et σi,j, ainsi que les valeurs du potentiel au bord de la grille. On peut alors obtenir les valeurs du potentiel à l'intérieur de la grille en appliquant cette relation itérativement pour chaque point intérieur de la grille. Les indices "old" et "new" expriment le fait qu'à chaque itération les valeurs du potentiel sont calculées à partir des valeurs obtenues précédemment 1.

2  Mise en pratique

Vous allez calculer le potentiel électrique sur une grille carrée de 10 cm de côtés (Lx=Ly=0.1 m). Cette grille comprend une pointe conique de 4 cm de hauteur et 2 cm de rayon à la base. Elle est posée de manière centrée en y=0, comme représenté ci-dessous.
Le potentiel est fixé à 10 V en y=0 et à 0 V en y=Ly. Sur les côtés x=0 et x=Lx, le potentiel varie linéairement entre 10 V et 0 V. La permittivité relative ε vaut 1 dans le vide et -106 dans la pointe. Vous prendrez une densité surfacique de charges σ nulle partout. Finalement, vous prendrez Nx=Ny=100.
Les valeurs du potentiel étant fixées pour i=0, i=Nx, j=0 et j=Ny, vous appliquerez la relation 1 pour tous les points correspondant à i=1, 2, ..., Nx-1 et j=1, 2, ..., Ny-1. Vous réaliserez 10000 itérations en tout. Travaillez en simple précision.
Pour une plus grande efficacité, vous pouvez stocker les Vi,j et εi,j dans un tableau commun V_Eps(1:2,0:Nx,0:Ny), où le 1 correspond aux valeurs de Vi,j et le 2 aux valeurs de εi,j.

3  A remettre

Vous devez me remettre pour ce projet les résultats suivants:
  1. une représentation en niveaux de gris du potentiel sur la grille

    Vous utiliserez pour cela le programme GetMap.exe. Vous trouverez dans le fichier GetMap.dat un exemple du format à respecter.

    Si vous connaissez le Python, vous pouvez également faire python Map.py Map.dat (Python 2.7). Vous trouverez dans le fichier Map.dat un exemple de format à respecter.

  2. le temps nécessaire pour réaliser ces 10000 itérations

    Le temps se mesure en Fortran en faisant call cpu_time(time), où time est un réel simple précision. On mesure des intervalles de temps dt en prenant la différence entre deux temps time1 et time2 mesurés à des endroits différents du programme.

  3. un graphique reprenant le logarithme de la variation maximale du potentiel
    en fonction du numéro de l'itération

    Vous utiliserez pour cela le programme GetPlot.exe. Vous trouverez dans le fichier GetPlot.dat un exemple du format à respecter.

  4. un graphique reprenant ce même type de courbe, pour des résultats obtenus en faisant à chaque étape:
    où le Vi,jnew du membre de droite est obtenu comme précédemment par l'équation 1.

    Vous représenterez simultanément les résultats obtenus pour α = 1, 1.5, 1.75 et 1.95.

  5. question subsidiaire: quelle est la taille de la matrice que l'on aurait obtenue en exprimant l'équation 1 sous forme de système linéaire (à résoudre avec des routines du type DECOMP/SOLVE) ? Quelle est la taille du tableau V_Eps dans la méthode actuelle ?

Footnotes:

1En réalité, on peut utiliser des valeurs obtenues au cours de la même itération, de sorte qu'il n'est pas nécessaire de stocker les valeurs "old" et "new" du potentiel séparément (une seule grille de stockage suffit).