next up previous contents
Next: Directives pour cet Up: LEÇON Un programme d'Elements Previous: Remarque sur l'assemblage

Les Exercises de la leçon

exer574

Faire avec freefem les fichiers "circle.msh", "one.dta", "zero.dta" contenant la triangulation d'un cercle, la fonction valant 1 sur tous les sommets et la fonction valant zero sur tous les sommets. Exécuter le programme et visualiser la solution avec freefem. (Eventuelement rajouter le lien avec rgraph.h et faire une fonction P1::show() qui visualise le résultat "online").

exer574

Comparer avec la solution analytique et faire une fonction qui calcule l'erreur L2 et l'erreur H1. Faire un tableau des erreurs obtenues pour 3 triangulations ayant chacune 4 fois plus de points que la précedente. Rajouter les conditions de Neuman aux bords (Voir remarque ci-dessous).

remarque572

Si on a des conditions de Neuman sur une partie du bord:

displaymath775

il suffit de rajouter une integrale de bord dans la fonctionnelle à minimiser et une autre intégrale de bord dans le calcul de la dérivée de la fonctionnelle. C'est à dire remplacer

displaymath777

ou r est prolongée par zero sur le reste du bord.

Mais le problème est alors de reconnaitre informatiquement le bord Dirichlet du bord Neuman. Une solution consiste a utiliser une fonction P1 sol0 contenant les conditions de Dirichlet avec la définition suivante:

Si sol0[i]=0 alors i n'est pas un point de Dirichlet. Si sol0[i]!=0 alors i est un point de Dirichlet.

Dans le cas d'une condition de Dirichlet nulle il faudra remplacer sol[i]=0 par sol[i]=eps en ce point, eps étant un tout petit nombre.

exer576

En plus des conditions de Neumann faire les modifications nécessaire pour pouvoir résoudre le problème

displaymath779

tex2html_wrap_inline781 sont des constantes positives.

Comme dans l'exercice ci-dessus il faudra modifier la fonctionelle et sa dérivée en conséquence en rajoutant le xcoefficient nu et les intégrales

displaymath783



Olivier Pironneau
Mon May 17 17:14:42 METDST 1999