Vous êtes sur la page 1sur 7

2ème année cycle ingénieur

Département génie industriel

Rapport de projet
Implémentation de la méthode des
éléments finis

Réalisé par :
BELEMHANI HIBA

Encadré par :
PROF. ANAS RACHID

Année universitaire : 2018/2019


Sommaire :

I- Introduction
II- Partie 1 : Exercice 5
1. Mise en place du problème
2. Procédure et résolution
3. Interprétation
III- Partie 2 : Exercice 6
1. Mise en place du problème
2. Procédure et résolution
3. Interprétation
IV- Annexes
I- Introduction
Un problème physique est généralement décrit par des équations différentielles (1D) ou
par des équations aux dérivées partielles (2D et 3D). La résolution de ces équations
avait toujours constitué un défi majeur pour les mathématiciens et les physiciens. Quant
à nous, nous allons utiliser la méthode des éléments finis et l’appliquer, dans un premier
temps, sur le problème de Poisson avec conditions de Dirichlet. Et puis, en deuxième
temps, sue une équation de chaleur.

II- Partie 1 : Exercice 5


1. Mise en place du problème
On reconsidère le problème de Poisson avec conditions de Dirichlet :

−∆𝑢(𝑥, 𝑦) + 𝑢(𝑥, 𝑦) = 𝑓(𝑥, 𝑦) ∀(𝑥, 𝑦) ∈ Ω


𝑢(𝑥, 𝑦) = 0 ∀(𝑥, 𝑦) ∈ 𝜕Ω

Où f(x,y) est une fonction donnée et 𝜴 une cavité carrée.


Le but de cet exercice est de mettre en évidence la convergence en norme de la solution
élément fini vers la solution exacte lorsque le pas du maillage tend vers zéro.
Nous avons choisi pour atteindre cet objectif de programmer un code sur FREEFEM qui
permettra de trouver la solution u ainsi que de calculer les erreurs pour chaque pas
décroissant.
Le résultat sera présenté sous la formée d’un tableau afin de pouvoir faciliter l’étude de
la convergence.

2. Procédure et résolution
Nous avons réalisé un code sur FREEFEM (Voir Annexe) qui permet la résolution de
cette équation en se basant sur les codes déjà établis dans les séances de TP. Alors nous
avons modifié ces codes de telle façon à l’adapter à notre cas.
En premier lieu, nous avons établi un maillage de cavité carré en utilisant la fonction
square. Puis nous avons programmé la formulation variationnelle.

∫𝛺 ∇𝑢ℎ ∗ ∇𝑣 + ∫𝛺 𝑢ℎ ∗ 𝑣 = ∫𝛺 𝑓 ∗ 𝑣

Avec ∀𝑣 ∈ 𝐻01 ⊃ 𝑉ℎ et 𝑉ℎ = {𝑣 ∈ 𝐶(𝛺) /𝑣/𝑇 ∈ ℙ1 , ∀ 𝑇 ∈ 𝑇ℎ }

Afin de définir la fonction second membre f, la méthode qu'on utilisera « toujours »,


consiste à choisir un second membre f de sorte que la solution u de l’EDP soit connue,
pour cela on choisit plutôt uexa et on en déduit f à l’aide du logiciel MAPLE, puis on
calcule la solution numérique uh.
Afin d’étudier la convergence qui est le but de cet exercice, nous avons établi une
boucle qui fait varier le nombre de nœuds suivant les deux dimensions en l’augmentant
et donc diminuer le pas du maillage à chaque itération. Et puis le calcul des erreurs dans
chaque itération s’est fait comme suit :
a) Erreur L2 :
La norme de l’espace L2 (𝝮) (espace des carrée intégrable) s’écrit comme suit :

||𝑢𝑒𝑥𝑎 − 𝑢||𝐿2 = (∫𝛺 |𝑢𝑒𝑥𝑎 − 𝑢|2 𝑑𝑥𝑑𝑦) 1/2

b) Erreur H1 :
La norme de l’espace H1 (𝝮) (espace de sobolev) se définit comme suit :
1
||𝑢𝑒𝑥𝑎 − 𝑢||𝐻1 = (∫Ω |𝑢𝑒𝑥𝑎 − 𝑢|2 𝑑𝑥𝑑𝑦 + ∫Ω (∇(𝑢𝑒𝑥𝑎 − 𝑢))2 𝑑𝑥𝑑𝑦)2

= (∫Ω |𝑢𝑒𝑥𝑎 − 𝑢|2 𝑑𝑥𝑑𝑦 + ∫Ω ∇𝑢𝑒𝑥𝑎 ∗ ∇(𝑢𝑒𝑥𝑎 − 2𝑢)𝑑𝑥𝑑𝑦 + ∫Ω ∇𝑢 ∗ ∇𝑢 𝑑𝑥𝑑𝑦)1/2

Ensuite pour pouvoir suivre l’évolution des erreurs, une matrice a été créée pour pouvoir
stocker le pas du maillage ainsi que la valeur des erreurs dans chaque itération.
Le code dans l’annexe jointe permet l’affichage du maillage, du graphe de la solution
approchée ainsi que l’affichage des valeurs de ||𝑢𝑒𝑥𝑎 − 𝑢||𝐿2 , ||𝑢𝑒𝑥𝑎 − 𝑢||𝐻1 ainsi
||𝑢𝑒𝑥𝑎−𝑢||𝐿2
que l’erreur relative et le pas h correspondant.
|||𝑢𝑒𝑥𝑎||𝐿2

3. Interprétation
Nous remarquons que les erreurs tendent vers 0 avec la diminution du pas h dans chaque
itération. Donc la solution approchée uh converge en norme vers uexa quand le pas h du
maillage tend vers 0 donc des maillages de plus en plus fins.

III- Partie 2 : Exercice 6

1. Mise en place du problème


Soit Ω =]0,1[2 ⊂ ℝ2 . On considère l’équation de la chaleur sous la forme suivante :
𝜕𝑢(𝑥, 𝑦, 𝑡)
− 𝛼Δ𝑢(𝑥, 𝑦, 𝑡) = 𝑓(𝑥, 𝑦, 𝑡) ((𝑥, 𝑦), 𝑡) ∈ Ω ×]0, T[ ,
𝜕𝑡
(1) 𝑢(𝑥, 𝑦, 𝑡) = 0 ((𝑥, 𝑦), 𝑡) ∈ 𝜕Ω ×]0, T[ ,

𝑢(𝑥, 𝑦, 0) = 𝑢0 (𝑥, 𝑦) (𝑥, 𝑦) ∈ Ω


Où 𝑢0 (𝑥, 𝑦) 𝑒𝑡 𝑓(𝑥, 𝑦) sont deux fonctions données et 𝛼 et 𝑇 des constantes
positives.
𝑇
Soit 𝑀 ∈ ℕ∗ et soit Δ𝑡 = 𝑀 le pas de temps. On note par 𝑡𝑚 l’instant 𝑡𝑚 = 𝑚Δ𝑡. On
écrit l’équation (1) à l’instant 𝑡𝑚 , ce qui donne : pour 1 ≤ 𝑚 ≤ 𝑀, on a
𝜕𝑇(𝑥, 𝑦, 𝑡𝑚 )
− 𝛼Δ𝑇(𝑥, 𝑦, 𝑡𝑚 ) = 𝑓(𝑥, 𝑦) ((𝑥, 𝑦), 𝑡) ∈ Ω ,
𝜕𝑡
(2) 𝑇(𝑥, 𝑦, 𝑡𝑚 ) = 0 ((𝑥, 𝑦), 𝑡) ∈ 𝜕Ω ,

𝑇(𝑥, 𝑦, 0) = 𝑇0 (𝑥, 𝑦) (𝑥, 𝑦) ∈ Ω


On applique maintenant le schéma décentré arrière pour approcher la dérivée de
temps dans (2) :
𝜕𝑇(𝑥, 𝑦, 𝑡𝑚 ) 𝑇 𝑚−1 − 𝑇 𝑚
=− , 1≤𝑚≤𝑀
𝜕𝑡 Δ𝑡
Le but de cet exercice est de programmer la résolution de cette équation de chaleur et
valider cette dernière en calculer les erreurs L2 et H1.
Nous avons choisi pour atteindre cet objectif de programmer un code sur FREEFEM qui
permettra de trouver la solution u ainsi que de calculer les erreurs pour chaque itération
de temps.

2. Procédure et résolution
Nous avons réalisé un code sur FREEFEM (Voir Annexe) qui permet la résolution de
cette équation en se basant sur le code de l’exercice 5. Alors nous avons modifié ce code
de telle façon à l’adapter à notre cas. En premier lieu, nous avons établi un maillage de
cavité carré en utilisant la fonction square. Puis nous avons programmé la formulation
variationnelle pour un instant donné :
𝜕𝑇(𝑥, 𝑦, 𝑡𝑚 )
− 𝛼Δ𝑇(𝑥, 𝑦, 𝑡𝑚 ) = 𝑓(𝑥, 𝑦)
𝜕𝑡
En ajoutant l’approximation de la dérivée temporelle, nous trouvons :

𝑇 𝑚−1 − 𝑇 𝑚
− − 𝛼Δ𝑇(𝑥, 𝑦, 𝑡𝑚 ) = 𝑓(𝑥, 𝑦)
Δ𝑡
Ensuite, nous appliquons la formule de green et on trouve :

∫𝛺 𝑇 𝑚 ∗ 𝑣 + 𝛼 ∗ Δ𝑡 ∗ ∫𝛺 ∇𝑇 ∗ ∇𝑣 − ∫𝛺 𝑇 𝑚−1 ∗ 𝑣 = Δ𝑡 ∗ ∫𝛺 𝑓 ∗ 𝑣

Avec ∀𝑣 ∈ 𝐻01 ⊃ 𝑉ℎ et 𝑉ℎ = {𝑣 ∈ 𝐶(𝛺) /𝑣/𝑇 ∈ ℙ1 , ∀ 𝑇 ∈ 𝑇ℎ }

Afin de définir la fonction second membre f, la même utilisée dans l’exercice 5 a été
utilisée dans ce code.
Ensuite on établit une boucle de temps qui fait varier la variable temporelle avec un pas
dt déjà établi auparavant. L’équation sera résolue dans chaque itération de t. Et dans
chaque itération, nous calculerons les erreurs L2 et H1 définies comme suit :

||𝑢𝑒𝑥𝑎 − 𝑢||𝐿2 = (∫𝛺 |𝑢𝑒𝑥𝑎 − 𝑢|2 𝑑𝑥𝑑𝑦) 1/2


||𝑢𝑒𝑥𝑎 − 𝑢||𝐻1 = (∫Ω |𝑢𝑒𝑥𝑎 − 𝑢|2 𝑑𝑥𝑑𝑦 + ∫Ω ∇𝑢𝑒𝑥𝑎 ∗ ∇(𝑢𝑒𝑥𝑎 − 2𝑢)𝑑𝑥𝑑𝑦 + ∫Ω ∇𝑢 ∗ ∇𝑢 𝑑𝑥𝑑𝑦)1/2

Une dernière boucle de raffinage de maillage permet de visualiser la convergence de la


solution approchée à chaque instant avec un h qui tend vers 0.
Le code dans l’annexe jointe permet l’affichage du maillage, du graphe de la solution approchée
pour chaque itération temporelle ainsi que l’affichage des valeurs de ||𝑢𝑒𝑥𝑎 − 𝑢||𝐿2 ,
||𝑢𝑒𝑥𝑎 − 𝑢||𝐻1 .

3. Interprétation
Nous remarquons que les erreurs tendent vers 0 avec la diminution du pas h dans chaque
itération de raffinage de maillage et avec chaque itération temporelle. Donc la solution
approchée Th converge en norme vers Texa quand le pas h du maillage tend vers 0 donc
des maillages de plus en plus fins.

IV- Annexes

1. Code 5 :
2. Code 6 :

Vous aimerez peut-être aussi