TD ::
- Eléments finis et Gradient
conjugué. Utilisation de FreeFem++.
- Début du travail pour le projet 2 (énoncé sous forme
pdf)
L'exercice
de la semaine 7 à analyser
absolument !
Exercice 1 : solution d'un laplacien
sur un carré
- Téléchargez l'archive semaine_07.tar.gz
- Désarchiver dans votre dossier local (tar
zxvf semaine_07.tar.gz)
-
Générer le maillage d'un carré en utilisant FreeFem++
avec le script carre.edp.
- Compiler et exécuter le programme EF2d-2011.cpp
g++ EF2d-2011.cpp Mesh2d.cpp
-I./RNM-v3 -o lap2d
./lap2d carre.msh
-
la solution est écrite dans le fichier plot ; pour la visualisation, utiliser
sous Gnuplot
splot "plot" w l
splot "plot" using 1:2:4 w l
splot "plot" u 1:2:3 t
"solution numerique" w l, "plot" u 1:2:4 t "solution exacte" w l
- Quelques explications ::
ce programme résout par éléments finis l'EDP 2D
- le domaine de calcul est un carré : le maillage
est contenu dans le fichier carre.msh
- les fonctions f et g
sont données (f= -6, g= x^2 + 2 y^2
dans ce cas)
- on va noter les matrices qui interviennent dans la
méthode des éléments finis par
- le système linéaire final s'écrit (la fonction f est considérée P1 pour calculer le
second membre)
K*U=M*F
- le système linéaire est résolu par la méthode du gradient conjugué
Il faut retenir que pour la résolution d'un
système AX=F, la méthode du gradient conjugué utilise que des
produits A*vecteur.
D'où l'idée de définir seulement la fonction qui calcule ce produit matrice*vecteur,
sans avoir à stocker la matrice A du système.
L'Utilisation de FreeFem++ pour résoudre le problème du laplacien
!
Exercice
2 : solution d'un laplacien
sur un carré
- Téléchargez le programme (script) FreeFem++ script_laplacien_2d.edp
- Analyser et exécuter le script (bien entendu, il faut
avoir installé FreeFem++ sur votre machine)
FreeFem++ script_laplacien_2d.edp
-
Utiliser ce modèle pour programmer le schéma
explicite pour l'équation des ondes 2D (voir l'énoncé du projet 2).
|