Skip to content

Commit c978a34

Browse files
Correct some links and equations in fem chapter
1 parent c53df08 commit c978a34

File tree

2 files changed

+127
-132
lines changed

2 files changed

+127
-132
lines changed

docs/math/modules/fem/pages/ch-ef-lagrange.adoc

Lines changed: 44 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,10 @@ On va présenter dans ce chapitre le type le plus simple et le plus classique d
1616
.Définition
1717
****
1818
Soit stem:[\Sigma=\{ a_1,\ldots,a_N\}] un ensemble de stem:[N] points distincts de stem:[\RR^n].
19-
Soit stem:[P] un espace vectoriel de dimension finie de fonctions de stem:[\RR^n] à valeurs dans stem:[\RR].On dit que stem:[\Sigma] est stem:[P]-unisolvant ssi pour tous réels stem:[\alpha_1,\ldots,\alpha_N], il existe un unique élément stem:[p] de stem:[P] tel que stem:[p(a_i)=\alpha_i,\; i=1,\ldots,N].
19+
20+
Soit stem:[P] un espace vectoriel de dimension finie de fonctions de stem:[\RR^n] à valeurs dans stem:[\RR].
21+
22+
On dit que stem:[\Sigma] est stem:[P]-unisolvant ssi pour tous réels stem:[\alpha_1,\ldots,\alpha_N], il existe un unique élément stem:[p] de stem:[P] tel que stem:[p(a_i)=\alpha_i,\; i=1,\ldots,N].
2023
****
2124

2225
Ceci revient à dire que la fonction :
@@ -40,7 +43,7 @@ stem:[\Sigma] est la fonction nulle.
4043
4144
La surjectivité de stem:[{\cal L}] se démontre en exhibant une famille
4245
stem:[p_1,\ldots,p_N] d’éléments de stem:[P] tels que
43-
stem:[p_i(a_j)=\delta_{ij}], c’est à dire un antécédent pour
46+
stem:[p_i(a_j)=\delta_{ij},] c’est à dire un antécédent pour
4447
stem:[{\cal L}] de la base canonique de stem:[\RR^N].
4548
4649
En effet, étant donnés des réels stem:[\alpha_1,\ldots,\alpha_N], la fonction stem:[{p=\sum_{i=1}^N \alpha_i p_i}] vérifie alors stem:[p(a_j)=\alpha_j,\;
@@ -81,7 +84,7 @@ On vérifie aisément que stem:[(p_1,\ldots,p_N)] ainsi définie forme bien une
8184
[[def:27]]
8285
.Définition
8386
****
84-
On appelle *opérateur de interpolation* (ou encore stem:[P-]interpolation) sur stem:[\Sigma] l’opérateur stem:[\pi_K] qui, à toute fonction stem:[v] définie sur stem:[K], associe la fonction stem:[\pi_K v] de
87+
On appelle *opérateur d'interpolation* (ou encore stem:[P-]interpolation) sur stem:[\Sigma] l’opérateur stem:[\pi_K] qui, à toute fonction stem:[v] définie sur stem:[K], associe la fonction stem:[\pi_K v] de
8588
stem:[P] définie par stem:[{\pi_K v = \sum_{i=1}^N v(a_i)\, p_i}].
8689
8790
stem:[\pi_K v] est donc l’unique élément de stem:[P] qui prend les mêmes valeurs que stem:[v] sur les points de stem:[\Sigma].
@@ -95,19 +98,19 @@ stem:[\pi_K v] est donc l’unique élément de stem:[P] qui prend les mêmes va
9598

9699
On notera stem:[\Pk{k}] l’espace vectoriel des polynômes de degré total inférieur ou égal à stem:[k].
97100

98-
* Sur , stem:[\Pk{k}=\hbox{Vect} \{ 1,X,\ldots, X^k\}\quad] et dim stem:[\Pk{k}=k+1].
101+
* Sur stem:[\RR], stem:[\quad\Pk{k}=\hbox{Vect} \{ 1,X,\ldots, X^k\}\quad] et dim stem:[\Pk{k}=k+1].
99102

100-
* Sur stem:[^2], stem:[\Pk{k}=\hbox{Vect} \{ X^i Y^j ; 0\le i+j \le k\}\quad] et dim stem:[{ \Pk{k}=\frac{(k+1)(k+2)}{2}}].
103+
* Sur stem:[\RR^2], stem:[\quad\Pk{k}=\hbox{Vect} \{ X^i Y^j ;\quad 0\le i+j \le k\}\quad] et dim stem:[{ \Pk{k}=\frac{(k+1)(k+2)}{2}}].
101104

102-
* Sur stem:[^3], stem:[\Pk{k}=\hbox{Vect} \{ X^i Y^j Z^l ; 0\le i+j+l \le k\}\quad] et dim stem:[{ \Pk{k}=\frac{(k+1)(k+2)(k+3)}{6}}].
105+
* Sur stem:[\RR^3], stem:[\quad\Pk{k}=\hbox{Vect} \{ X^i Y^j Z^l ;\quad 0\le i+j+l \le k\}\quad] et dim stem:[{ \Pk{k}=\frac{(k+1)(k+2)(k+3)}{6}}].
103106

104107
On notera stem:[\Qk{k}] l’espace vectoriel des polynômes de degré inférieur ou égal à stem:[k] par rapport à chaque variable.
105108

106-
* Sur stem:[\RR], stem:[\Qk{k}=\Pk{k}].
109+
* Sur stem:[\RR], stem:[\quad\Qk{k}=\Pk{k}].
107110

108-
* Sur stem:[\RR^2], stem:[\Qk{k}=\hbox{Vect} \{ X^i Y^j ; 0\le i,j \le k\}\quad] et dim stem:[{ \Qk{k}=(k+1)^2}].
111+
* Sur stem:[\RR^2], stem:[\quad\Qk{k}=\hbox{Vect} \{ X^i Y^j ; \quad 0\le i,j \le k\}\quad] et dim stem:[{ \Qk{k}=(k+1)^2}].
109112

110-
* Sur stem:[\RR^3], stem:[\Qk{k}=\hbox{Vect} \{ X^i Y^j Z^l ; 0\le i,j,l \le k\}\quad] et dim stem:[{ \Qk{k}=(k+1)^3}].
113+
* Sur stem:[\RR^3], stem:[\quad\Qk{k}=\hbox{Vect} \{ X^i Y^j Z^l ; \quad 0\le i,j,l \le k\}\quad] et dim stem:[{ \Qk{k}=(k+1)^3}].
111114

112115
[[par:ex1d]]
113116
=== Exemples 1-D
@@ -127,7 +130,7 @@ Elément stem:[P_2]::
127130
[[elément-pk]]
128131
Elément stem:[\Pk{k}]::
129132
** stem:[K=[a,b]]
130-
** stem:[{\Sigma=\{a+i\,\frac{b-a}{m},\quad i=0,\ldots,k\}}]
133+
** stem:[{\Sigma=\{a+i\,\frac{b-a}{k},\quad i=0,\ldots,k\}}]
131134
** stem:[P=\Pk{k}]
132135

133136
[[exemples-2-d-triangulaires]]
@@ -140,7 +143,7 @@ Elément stem:[\Pk{1}]::
140143
** stem:[P=\Pk{1}]
141144
Les fonctions de base sont définies par
142145
stem:[p_i(a_j)=\delta_{ij}]. Ce sont donc les coordonnées
143-
barycentriques : stem:[p_i=\lambda_i] (cf annexe [ch:bary]).
146+
barycentriques : stem:[p_i=\lambda_i] (cf annexe <<ch:bary>>).
144147

145148
[[elément-pk2]]
146149
Elément stem:[\Pk{2}]::
@@ -176,7 +179,7 @@ Elément tétraèdrique stem:[\Pk{1}]::
176179
[[elément-tétraèdrique-pk2]]
177180
Elément tétraèdrique stem:[\Pk{2}]::
178181
* stem:[K]=tétraèdre de sommets stem:[a_1, a_2, a_3, a_4]
179-
* stem:[{ \Sigma=\{a_i\}_{1\le i\le 4} \cup \{a_{ij}\}_{1\le i < j \le 4} }]
182+
* stem:[{ \Sigma=\{a_i\}_{1\le i\le 4} \cup \{a_{ij}\}_{1\le i < j \le 4} }], où stem:[{a_{ij}=\frac{a_i+a_j}{2}}].
180183
* stem:[P=\Pk{2}]
181184

182185
Les fonctions de base sont stem:[p_i=\lambda_i (2\lambda_i -1)]
@@ -206,7 +209,13 @@ image:fem/elements-3D.jpg[]
206209
[env.definition]
207210
.Équivalence affine
208211
****
209-
Deux éléments finis stem:[(\hat{K},\hat{\Sigma},\hat{P})] et stem:[(K,\Sigma,P)] sont *affine-équivalents* ssi il existe une fonction affine stem:[F] inversible (stem:[F: \hat{x} \longrightarrow B\hat{x}+b]) telle que _(i)_ stem:[K=F(\hat{K})] _(ii)_ stem:[a_i=F(\hat{a}_i) \qquad i=1,\ldots,N] et _(iii)_ stem:[P=\{ \hat{p}\circ F^{-1} , \quad \hat{p}\in \hat{P} \}]
212+
Deux éléments finis stem:[(\hat{K},\hat{\Sigma},\hat{P})] et stem:[(K,\Sigma,P)] sont *affine-équivalents* ssi il existe une fonction affine stem:[F] inversible (stem:[F: \hat{x} \longrightarrow B\hat{x}+b]) telle que
213+
214+
_(i)_ stem:[K=F(\hat{K})]
215+
216+
_(ii)_ stem:[a_i=F(\hat{a}_i), \qquad i=1,\ldots,N]
217+
218+
_(iii)_ stem:[P=\{ \hat{p}\circ F^{-1} , \quad \hat{p}\in \hat{P} \}]
210219
****
211220

212221
[[rem:10]]
@@ -243,17 +252,16 @@ stem:[(0,1,1)], stem:[(1,0,1)].
243252
[[sec:maillages]]
244253
== Maillages
245254

246-
Nous étendons ici aux dimension 2 et 3 les notions élémentaires de maillage vues en 1D, voir la figure <<fig:2>>.
255+
Nous étendons ici aux dimension 2 et 3 les notions élémentaires de maillage vues en 1D (<<sec:constr-du-maill>>), voir la figure <<fig:2>>.
247256

248257
[[fig:2]]
249-
.Maillage {feelpp}
250-
image:fem/feelpp-mesh.svg[align=center,float=left,width=400]
258+
image:fem/feelpp-mesh.svg[align=center,float=center,width=400]
259+
251260

252261
[[def:31]]
253262
.Définition
254263
****
255-
Un maillage est constituée d’une famille d’éléments(ou mailles
256-
ou cellules) stem:[\{K_e\}_{e=1,...,N_e}] où stem:[N_e]
264+
Un maillage est constitué d’une famille d’éléments (ou mailles ou cellules) stem:[\{K_e\}_{e=1,...,N_e}] où stem:[N_e]
257265
est le nombre d’éléments, nous noterons
258266
[[eq:32]]
259267
[stem]
@@ -302,7 +310,7 @@ Un maillage est généré par
302310
. un _élément de reference_ noté stem:[\hat{K}]
303311
. une famille de _transformations géométriques_ mappant stem:[\hat{K}] vers les éléments stem:[K_e, e=1,\ldots,\Ne] dans le maillage
304312

305-
Nous supposerons que les transformations sont des stem:[\mathcal{C}^1-] diffeomorphismes footnote:[la transformation et son inverse sont stem:[\mathcal{C}^1] et bijectives].
313+
Nous supposerons que ces transformations sont des stem:[\mathcal{C}^1-] diffeomorphismes footnote:[la transformation et son inverse sont stem:[\mathcal{C}^1] et bijectives].
306314

307315
[[def:32]]
308316
.Définition
@@ -329,9 +337,10 @@ On dit que stem:[(\hat{K},\hat{P}_{\mathrm{geo}}, \hat{\Sigma}_{\geo})] est l’
329337
****
330338

331339
.Transformation géométrique associée à un triangle
332-
image:fem/geomap_triangle.png[width=400,float=left]
340+
image:fem/geomap_triangle.png[align=center,width=400,float=center]
333341

334-
Pour chaque stem:[K \in \mathcal{T}_h], on a un stem:[\ngeo]-uplet stem:[\set{g^K_1,\ldots,g^K_\ngeo}].
342+
343+
.Pour chaque stem:[K \in \mathcal{T}_h], on a un stem:[\ngeo]-uplet stem:[\set{g^K_1,\ldots,g^K_\ngeo}].
335344

336345
La transformation géométrique est définie comme suit
337346
[[eq:37]]
@@ -349,12 +358,12 @@ et en particulier on a
349358
++++
350359

351360
[[rem:13]]
352-
NOTE: On a stem:[T_K \in [\hat{P}_\geo(\hat{K})]^d] et que stem:[\set{g^K_1,\ldots,g^K_\ngeo}] sont les _noeuds géométriques_ de stem:[K].
361+
NOTE: On a stem:[T_K \in [\hat{P}_\geo(\hat{K})q]^d] et que stem:[\set{g^K_1,\ldots,g^K_\ngeo}] sont les _noeuds géométriques_ de stem:[K].
353362

354363
stem:[T_K] est un stem:[\mathcal{C}^1]-diffeomorphism donc la _numérotation_ des noeuds stem:[\set{g^K_1,\ldots,g^K_\ngeo}] doit être _compatible_ avec les noeuds de l’élément finit géométrique.
355364

356365
[[rem:15]]
357-
NOTE: La numérotation locale des entités géométriques dans *doit* être consistente avec la numérotation locale des générateurs de maillage.
366+
NOTE: La numérotation locale des entités géométriques dans stem:[\hat{K}] *doit* être consistente avec la numérotation locale des générateurs de maillage.
358367
voir link:http://www.geuz.org/gmsh/doc/texinfo/gmsh.html#Node-ordering[stem:[\triangleright] format de fichier Gmsh] pour une numérotation locale.
359368

360369
Un cas particulier est la *transformation géométrique affine*.
@@ -377,7 +386,9 @@ On dit que le maillage est _affine_.
377386
NOTE: Si l’élément fini géométrique est stem:[(\hat{K},\poly{P}_1,\Sigma_\ngeo)] alors les éléments stem:[K] sont soit des triangles soit des tétrahèdres.
378387

379388
[[rem:17]]
380-
NOTE: `Mesh<Simplex<d,1> >` ou `Mesh<Simplex<d> >` est le type pour les maillages affines formés de simplexes dans stem:[\RR^d]. `1` indique l’ordre de l’_élément fini géométrique_ et est la valeur par défaut.
389+
NOTE: Dans {feelpp} : `Mesh<Simplex<d,1> >` ou `Mesh<Simplex<d> >` est le type pour les maillages affines formés de simplexes dans stem:[\RR^d].
390+
391+
`1` indique l’ordre de l’_élément fini géométrique_ et est la valeur par défaut.
381392

382393
[[sec:quelq-calc-avec]]
383394
=== Quelques calculs avec la transformation géométrique
@@ -392,7 +403,7 @@ On note stem:[\xi] un ensemble de stem:[n] points dans stem:[\hat{K}] et on note
392403
++++
393404
\nabla T_K( \xi )\ =\ \sum_{i=0}^{\ngeo}\ g^K_i\ \nabla \psi_i (\xi)
394405
++++
395-
et stem:[B_K(\xi) = \nabla T_K^{-1}(\xi)] l’inverse stem:[\xi] et finalement stem:[J_K(\xi)] le jacobien de stem:[T_K] en stem:[\xi]
406+
et stem:[B_K(\xi) = \nabla T_K^{-1}(\xi)] l’inverse du gradient de stem:[T_K] aux points stem:[\xi] et finalement stem:[J_K(\xi)] le jacobien de stem:[T_K] en stem:[\xi]
396407

397408
[[eq:41]]
398409
[stem]
@@ -480,7 +491,7 @@ NOTE: On ne manipule que des maillages conformes dans le cours mais {feelpp} peu
480491
[[sec:espace]]
481492
== Espaces élément fini de Lagrange
482493

483-
Soit stem:[\mathcal{T}_h] un maillage généré par stem:[(\hat{K}, \hat{P}_{\mathrm{geo}}, \hat{\Sigma}_{\mathrm{geo}})], une cellule stem:[K \in \mathcal{T}_h] est alors l’image de stem:[\hat{K}] par la transformation géométrique stem:[T_K] défini par <<eq:23>>.
494+
Soit stem:[\mathcal{T}_h] un maillage généré par stem:[(\hat{K}, \hat{P}_{\mathrm{geo}}, \hat{\Sigma}_{\mathrm{geo}})], une cellule stem:[K \in \mathcal{T}_h] est alors l’image de stem:[\hat{K}] par la transformation géométrique stem:[T_K] défini par <<eq:37>>.
484495

485496
L’objectif à présent est de générer la famille d’éléments finis de Lagrange grâce à l’élément fini de référence stem:[(\hat{K},\hat{P}, \hat{\Sigma})]
486497

@@ -579,7 +590,7 @@ mais ce n’est pas suffisant: _les fonctions stem:[W_h] peuvent avoir des sauts
579590
V_h = W_h \cap C^0(\Omega_h) = \{ v_h \in W_h; \forall F \in \mathcal{F}^i_h. \jump{v_h}_F = 0\}
580591
++++
581592

582-
Concernant l’implémentation, nous avons besoin de d’indentifier les _degrés de liberté communs entre les éléments_ quand nous construisons la tables des degrés de liberté.
593+
Concernant l’implémentation, nous avons besoin d’indentifier les _degrés de liberté communs entre les éléments_ quand nous construisons la tables des degrés de liberté.
583594

584595
Voici deux exemples d’espace stem:[H^1]-conforme
585596
[[eq:54]]
@@ -860,15 +871,15 @@ Ain de parcourir les éléments et faces du maillage, {feelpp} fournit des fonct
860871

861872
`elements(mesh)`:: retourne 2 itérateurs sur l’ensemble des éléments du maillage
862873

863-
`markedelements(mesh,<int>)`:: et `markedelements(mesh,<string>)` retourne 2 itérateurs sur les éléments marqués par l’entier `<int>` et la chaîne des caractères `<string>` respectivement, cela correspondra typiquement à des propriétés de matériau
874+
`markedelements(mesh,<int>)` et `markedelements(mesh,<string>)`:: retourne 2 itérateurs sur les éléments marqués par l’entier `<int>` et la chaîne des caractères `<string>` respectivement, cela correspondra typiquement à des propriétés de matériau
864875

865876
`boundaryfaces(mesh)`:: retourne 2 itérateurs sur les faces au bord du maillage
866877

867-
`markedfaces(mesh,<int>)` et `markedelements(mesh,<string>)`:: retourne 2 itérateurs sur les faces marquées par l’entier `<int>` et la chaîne des caractères `<string>` respectivement, ca correspondra typiquement aux conditions aux limites
878+
`markedfaces(mesh,<int>)` et `markedelements(mesh,<string>)`:: retourne 2 itérateurs sur les faces marquées par l’entier `<int>` et la chaîne des caractères `<string>` respectivement, cela correspondra typiquement aux conditions aux limites
868879

869-
NOTE: link pending to {feelpp} user manual mesh iterators section.
880+
NOTE: TODO : link pending to {feelpp} user manual mesh iterators section.
870881

871-
L’espace d’approximation stem:[V_h] stem:[H^1] conforme (espaces de functions continues sur stem:[\Omega] polynomiales par morceaux de degré stem:[\leq k]) est défini comme suit
882+
L’espace d’approximation stem:[V_h] stem:[H^1]-conforme (espaces de fonctions continues sur stem:[\Omega] polynomiales par morceaux de degré stem:[\leq k]) est défini comme suit
872883

873884
[source,cpp]
874885
----
@@ -903,7 +914,7 @@ On va construire une base de stem:[V_h] en associant à chaque ddl stem:[a_i] un
903914
[stem]
904915
.Fonctions de base globales
905916
++++
906-
{\varphi_i}_{|K_j} \in P_j, \quad j=1,\ldots,N_e \mbox{ et } \varphi_i(a_j)=\delta_{ij}, 1\le i,j \le N_h
917+
{\varphi_i}_{|K_j} \in P_j, \quad j=1,\ldots,N_e \quad \mbox{ et } \quad \varphi_i(a_j)=\delta_{ij}, 1\le i,j \le N_h
907918
++++
908919

909920
L’espace d’approximation interne est donc alors :
@@ -917,7 +928,7 @@ V_h = \hbox{Vect }\left\{\varphi_1,\ldots,\varphi_{N_h}\right\}
917928
****
918929
[[fig:fnglob]]
919930
.Exemple de fonction de base globale (élément triangulaire stem:[P_1])
920-
image:fem/fonction-globale.jpg[width=400]
931+
image:fem/fonction-globale.jpg[width=400, align=center]
921932
****
922933

923934
NOTE: On remarque qu’une telle fonction stem:[\varphi_i] est nulle partout, sauf sur les éléments dont stem:[a_i] est un noeud.

0 commit comments

Comments
 (0)