Elements finis Q1 et structure de la matrice

Bonjour,

J'ai un problème, je n'arrive pas à comprendre la structure de la matrice lors d'une approximation par éléments finis de type Q1.
Je vais essayer d'être le plus clair possible mais c'est pas gagné :D

Pour ceux qui par hasard auraient le livre de B.Lucquin, "EDP et leur approximations ", c'est la structure de la matrice, page 102, qui me gène.

On souhaite résoudre le problème suivant sur $\Omega$ = ]0,1[ x ]0,1[ :

$-\Delta u(x) + c(x)u(x)=f(x), x \in \Omega$
$u(x)=0, x \in \Gamma $

Mis sous forme variationnelle, ça nous donne :

$\displaystyle \mathcal{A}(u,v)=\int_{\Omega} \nabla u(x).\nabla v(x)dx +\int_{\Omega}c(x)u(x)v(x)dx $
$\displaystyle L(v)=\int_{\Omega}f(x)v(x)dx$

On fait une approximation par éléments finis rectangulaires $\mathcal{Q}^1$.
On recouvre Omega par $N_T$ petits rectangles $R_k$, et on désigne par $N_i=N_1 N_2$ le nombre de sommet de sommets "internes" au maillage.
On introduit l'espace variationnel :

$$\displaystyle V_h=\{ v_h \in \bar{V_h}, v_h_|_{\Gamma=0} \}$$,



$$\displaystyle \rm \bar{V_h}=\{ v_h \in C^0(\bar{\Omega}) , pour tout k \in \{1,...,N_T, v_h_|_R_k \in \mathcal{Q}^1 \}$$

bref, celà revient ensuite à résoudre le système AX=B pour trouver la solution discrète, où on a :

$$\displaystyle A_{i,j}=\sum_{k=1}^{N_T}A_{i,j}(R_k)$$ où :

$ \displaystyle A_{i,j}(R_k) = \int_{R_k}[\nabla w^{(i)}.\nabla w^{(j)}+c w^{(i)}w^{(j)}](x)dx$

L'auteur dit ensuite que la matrice ( de taille $N_2$ x $N_2$ ) va etre tridiagonale par bloc, où chaque bloc est de taille $N_1$ x $N_1$.
C'est précisément ça que je ne comprends pas, pourquoi la matrice a une telle structure ?
Pour moi, elle serait uniquement tridiagonale comme dans le cas de la dimension 1, mais pas tridiagonale par bloc, je vois pas d'où viennent ces blocs en fait ?

Merci d'avance, même si, vu la clarté de mon message, je ne risque pas d'avoir beaucoup de réponses :D

Réponses

  • Bonjour,

    Cette structure vient de la numérotation particulière choisie pour les fonctions de base. Les couples de fonctions de base dont les supports ont une intersection de mesure nulle donnent un élément nul dans la matrice. Si tu regardes quels couples de fonctions de base ne sont pas dans ce cas de figure, attention j'insiste, pour cette numérotation, tu vois apparaître la structure tridiagonale par blocs. C'est exactement pour la même raison que la matrice du laplacien à cinq points en différences finies est tridiagonale par blocs. Tu peux essayer de voir ce qui se passe sur un tout petit maillage de 25 éléments par exemple (matrice 16x16 avec des blocs 4x4).
  • Merci pour ta réponse. Mais j'arrive pas trop à visualiser ( je vais essayer de le faie après sur un petit maillage ).

    Je reprends la formule $ \displaystyle A_{i,j}=\sum_{k=1}^{N_T}A_{i,j}(R_k)$

    Si je veux calculer par exemple $A_{1,1}$, je vais devoir calculer $\displaystyle \int_{R_k}[\nabla w^{(1)}^2+ c w^{(1)}^2](x)dx$ puis sommer.
    Seulement, étant donnée l'expression des fonctions $w^{(i)}$, je ne vais sommer que pour les 4 rectangles entourant le sommet $q^{(1)}$ ( ça sera nul pour les autres recangles )

    Je vais me retrouver à la fin donc avec une somme de 4 intégrales. Donx finalement $A_{1,1}$ sera un réel. je ne vois pas où va intervenir le bloc dans le calcul de $A_{1,1}$ ?
  • Justement, il ne faut pas le voir comme ça. Quand tu calcules $A_{i,j}=\int_\Omega \nabla w^j\nabla w^i+\mathrm{etc.}$, tu vois que ceci est nul si le support de $w^i$ et le support de $w^j$ ont une intersection de mesure nulle. La seule chose qui compte ici est de recenser les couples $(i,j)$ tels que ce soit ou non le cas : on ne cherche pas à calculer les valeurs des coefficients, mais juste à voir la structure de la matrice.

    Après, si tu as vraiment besoin de calculer numériquement les $A_{i,j}$, tu vas effectivement découper les intégrales élément par élément. Mais ici, c'est plutôt nuisible en fait.
  • ok, merci.

    Donc A(i,j) va etre nul si les sommets q^i et q^j ne sont pas sur le même rectangle, c'est bien ça ?

    Je vais essayer de faire sur un petit maillage pour voir la structure.
  • Je crois avoir un peu mieux compris : dans la matrice principale ( la matrice par bloc ), on par cours le maillage dans une direction ( disons x1).
    et chaque bloc de la matrice consiste à parcours le maillage, à partir d'un sommet fixé, dans l'autre direction.

    C'est ça en gros?
  • Je ne suis pas sûr de bien comprendre ce que tu dis... J'ai fait un dessin d'un maillage avec les coordonnées des sommets, ou plutôt les couples d'entiers $(k,l)\in\{1,\ldots,N_1\}\times\{1,\ldots,N_2\}$ telles que ces coordonnées soient $(kh_1,lh_2)$. J'ai essayé de figurer en bleu le support de la fonction de base correspondant au sommet $(k,l)$, en jaune les supports des fonctions de base qui vont donner un élément non nul dans la matrice (faut imaginer que le jaune passe sous le bleu), avec les coordonnées de leurs sommets.

    7040
  • J'aurais dû peut-être préciser que dans le dessin ci-dessus, les coordonnées entières indiquées correspondent au sommet situé immédiatement à leur droite et au dessus. C'est le point où la fonction de base correspondante vaut $1$. Il y a donc neuf fonctions de base impliquées dans ce dessin.

    Tant que j'y suis, je t'écris la bijection qui numérote les sommets comme je l'ai indiqué :
    $$i=(l-1)N_{1}+k\Leftrightarrow l=\Bigl[\frac{i-1}{N_{1}}\Bigr]+1\hbox{ et }k=i-(l-1)N_{1},$$
    où $[t]$ désigne la partie entière de $t$. C'est le sens $(k,l)\mapsto i$ qui t'importe le plus pour identifier la structure de la matrice.
  • Merci beaucoup ! C'est très clair.
    J'avais à peu près compris ça, mais je m'étais mal exprimé. En tout cas c'est très complet ce que tu dis.

    J'ai juste pas compris pourquoi tu me parles des sommets au bord alors qu'on ne s'intéresse qu'aux sommets "à l'intérieur" ?
  • Merci ! Je parle bien des sommets situés à l'intérieur, mais dans les rangées voisines du bord. Si ce sont les quatre coins \og\ intérieurs \fg\ ($k=1$ ou $N_1$, $l=1$ ou $N_2$), alors ils n'ont d'interaction qu'avec trois voisins, puisqu'on parle d'un problème de Dirichlet homogène, soit quatre éléments non nuls sur les lignes correspondantes de la matrice. Pour les sommets situés près d'un bord, mais pas près d'un coin ($k=1$, $1<l<N_2$, etc.), il y a cinq voisins, donc six éléments non nuls sur la ligne. Pour tous les autres, il y a neuf éléments non nuls sur la ligne. C'est ça qui crée la structure par blocs.
  • ok merci.
    Bon ben j'ai pas tout compris alors, je vais reprendre ça à tete reposée :D
  • Ca y'est, j'ai enfin compris !! :D
    C'était pas évident, je captais pas qu'on se fixait un sommet, puis qu'on parcourait tout le maillage ligne par ligne.

    Merci encore :)
  • Y'a juste un truc qui me gène : les N1xN2 fonctions $w^{(i)}$ sont les produits tensoriels des fonctions "chapeaux" de l'approximation par éléments finis $ P^1$ en dimension 1. Elles s'écrivent donc sous la forme : $w^{(i)}(x)=w^{(i_1)}(x_1)w^{(i_2)}(x_2)$ où le sommet $q^{(i)}$ a pour coordonnées $(i_1h,i_2h)$

    Le problème, c'est qu'on donnait une écriture ,des fonctions "chapeaux" de l'approximation par éléments finis $P^1$ en dimension 1, sur chacun des intervalles $[x_{i-1},x_i]$ et $[x_i, x_{i+1}]$.

    Mais je ne comprends pas alors quelle écriture on va utiliser dans l'expression $w^{(i)}(x)=w^{(i_1)}(x_1)w^{(i_2)}(x_2)$ ? On va utiliser par exemple l'écriture de $w^{(i_1)}(x_1)$ sur l'intervalle $[x_{i_1-1},x_{i_1}]$ ou $[x_{i_1}, x_{i_1+1}]$ ?

    Je sais pas si c'est clair ce que je raconte...

    Merci d'avance :)
Connectez-vous ou Inscrivez-vous pour répondre.