Mathematics">
Application de La Méthode Des Éléments Finis À L'électromagnétisme
Application de La Méthode Des Éléments Finis À L'électromagnétisme
Application de La Méthode Des Éléments Finis À L'électromagnétisme
1 Introduction
La méthode des éléments finis est une méthode de résolution numérique d’équations aux dérivées par-
tielles. Grâce à cette méthode, on peut décrire approximativement le comportement de n’importe quel système
physique, peu importe sa complexité, tant qu’il est continu et qu’il obéit à une EDP linéaire. On souhaite
résoudre l’équation de Helmholtz et ainsi donner l’expression du champ électrique associé à une onde plane qui
se propage dans le vide et qui rencontre un objet diffractant quelconque. On se place en régime harmonique
afin de se libérer de la dépendance temporelle du champ électrique. On peut ainsi tracer des cartes de champ
en fonction de la position uniquement.
2 Problème de diffraction 1D
2.1 Cadre mathématique du problème
On souhaite modéliser le champ électrique associé à une onde plane incidente rencontrant un objet
diffractant d’épaisseur e. Le problème étant symétrique par translation suivant ŷ et ẑ, on se ramène au cas d’un
problème 1D. Le champ électrique incident a pour expression : ui (x) = exp(ik0 x). Notre but est de donner la
solution ut (x) sur le segment [0, L], où ut est le champ dit "total". On considère dans ce problème un milieu
amagnétique, c’est-à-dire de perméabilité magnétique relative µr = 1. Les champs ui et ut vérifient tous deux
l’équation de propagation de Helmholtz 1D :
Le terme de droite est équivalent à un terme source. On le notera S(x). Tout se passe comme si une source
(équivalente à un courant ⃗j) était localisée dans la lame diffractante. Le champ diffracté satisfait donc la
condition d’onde sortante de Sommerfeld, qui, en 1D, est la suivante :
lim u′d ∓ ik0 ud = 0
x→±∞
1
Cela signifie que loin de la source (donc à une distance D ≫ e de la lame), le champ ud vérifie la relation
u′d = ±ik0 ud (selon qu’on soit à droite ou à gauche de la lame). Cela nous sera utile par la suite. Le but est
de résoudre numériquement l’équation (3), qui est la formulation dite faible du problème. Cette formulation est
équivalente à la formulation dite forte (on va l’admettre), qui est la suivante :
Z L Z L Z L
2 ′′ 2
∀w ∈ L (R), ud (x)w(x)dx + k0 εr (x)ud (x)w(x)dx = S(x)w(x)dx
0 0 0
Pour la programmation, un problème intervient : on a dim(L2 ) = +∞, donc on ne peut pas tester l’égalité
sur l’ensemble des fonctions-test de L2 . Pour remédier à ce problème, on va diviser le segment [0, L] en N − 1
sous-ensembles Ii . Il y a donc N noeuds xi , i = 0, ..., N . On va introduire l’espace des fonctions-triangle, définies
comme suit : x−x
i−1 x − xi−1
= si x ∈ Ii
xi − xi−1 hi
φi (x) = xi+1 − x = xi+1 − x si x ∈ Ii+1
x − xi hi+1
i+1
0 sinon
On va aussi faire en sorte que les points x = l et x = l + e soient des noeuds. Pour cela, soient N1 , N2 et N3 le
nombre de noeuds dans les ensembles [0, l], [l, l + e] et [l + e, L], on a :
L−e p
0
e p
m
N1 = N3 = Re × n εr N2 = Re × n εr
2λ0 λ0
n est un entier arbitraire. Plus n est grand, plus l’approximation de la fonction ud sera précise. En effet, le but
du programme est d’approximer ud par une fonction continue par morceaux, soit une combinaison linéaire de
fonctions triangles. En supposant qu’elle soit dérivable terme à terme, et en injectant la nouvelle expression de
ud dans (4), on obtient :
n
! n
!
h iL Z L X Z L X Z L
′ ′ ′ 2
∀j ∈ [0, N ], ud φj − αi φi φj dx + k0 εr (x) αi φi φj dx = S(x)φj dx (5)
0 0 0 0
i=0 i=0
Si on considère que l’épaisseur de la lame est "négligeable" devant la longueur de l’intervalle [0, L], on peut
appliquer la condition de Sommerfeld au terme entre crochets, ce qui donne :
h iL
u′d φj = ik0 αN φN (L)φj (L) + α0 φ0 (0)φj (0) = ik0 αN φj (L) + α0 φj (0) , ∀j
0
2
2.2 Résolution numérique
2.2.1 Calcul numérique d’intégrales par la méthode de Simpson
On considère une fonction f dont on veut évaluer l’intégrale entre deux points a et b. Prenons n + 1
points équidistants x0 = a < x1 < . . . < xn = b et considérons un polynôme interpolant f en ces points. Le but
est d’approximer l’intégrale de f par une intégrale sur ce polynôme entre a et b (car les polynômes sont faciles
à intégrer). Supposons que l’on peut définir n + 1 polynômes Pi d’ordre n, tels que :
Pi (xj ) = δij
P est un polynôme d’ordre au plus n puisque c’est une combinaison linéaire de polynômes d’ordre n et on a bien
P (xj ) = f (xj )Pj (xj ) = f (xj ), ce qui signifie que P passe par tous les points d’interpolation. On peut montrer
que les Pi ont pour expression :
n
Y (x − xj )
Pi (x) =
j=0
(x i − xj )
j̸=i
On a donc :
Z b Z b Z n
bX
I= f (x)dx ≈ P (x)dx = f (xi )Pi (x)dx
a a a i=0
n Z b
X
= f (xi )Pi (x)dx
i=0 a
Xn Z b
= f (xi ) Pi (x)dx
i=0 |a {z }
ωi
3
2.2.2 Application à la matrice de masse
La matrice M fait intervenir le produit φi φj . Le support de ces deux fonctions est commun pour |i−j| ≤ 1.
Cela veut dire que la matrice M est tridiagonale. On a :
Z L Z xi Z xi+1
Mii = εr (x)φ2i (x)dx = εr (x)φ2i (x)dx + εr (x)φ2i (x)dx
0 xi−1 xi
1
Si,i+1 = Si+1,i = −
hi+1
4
La matrice S prend donc la forme suivante :
1
− h11
h11
− h 1 1
− h12
1 −1
1 h1 + h2
−1 1
− h12 1
h2 + h3
1
= 1 1
S= .. .. .. h1
+ ... +
. . .
hN
1 1 1
1
1 −1
− hN −1 hN −1 + hN − hN −1 1
− h1N 1
hN
2.3 Convergence
2
At
Nous avons vérifié la convergence de notre programme en calculant le coefficient de réflexion R = ,
Ai
avec Ai et At respectivement les amplitudes du champ incident et du champ transmis. Nous l’avons comparé à
√ n2 − n1
sa valeur théorique grâce au lien entre indices de réfraction et permittivités n = ε. On a donc R = =
√ √ n2 + n1
√ε2 − √ε1 en incidence normale. Cela nous permet de tracer le graphe 1. On voit que la convergence est rapide
ε2 + ε1
avec un écart relatif inférieur à 5% dès n = 80.
2.4 Résultats
Dans le cas 1D, on obtient le résultat présenté figure 2. On observe un champ sinusoïdal atténué, qui est
conforme à nos attentes.
5
(a) Indice de réfraction en fonction du facteur de précision (b) Écart relatif à la valeur théorique en fonction du
facteur de précision
6
3 Problème de diffraction 2D
3.1 Cadre mathématique du problème
3.1.1 Génération du maillage
On considère un domaine borné Ω ⊂ R2 . Un maillage M est une partition de Ω en éléments polygonaux
K qui vérifie les propriétés suivantes :
[
1. Ω = K : les K recouvrent Ω,
K∈M
◦ ◦
2. ∀(Ki , Kj ) ∈ {K} × {K}, i ̸= j, Ki ∩ Kj = ∅ : l’intersection de l’intérieur de deux éléments distincts est
vide.
Le maillage est dit conforme lorsque l’intersection de deux éléments distincts est soit vide soit un élément
commun aux deux (sommet ou arête). Soient K1 , K2 , . . . , Kn les n arêtes d’un polygone K ∈ M, de longueurs
h1 , . . . , hn , on définit localement la taille caractéristique du maillage comme :
hK = max hi
i=1,...,n
h = max hK
K∈M
Par la suite, les éléments K du maillage seront des triangles quelconques. Nous allons maintenant voir comment
est généré un maillage triangulaire. On a pour cela besoin de deux données : les nombres np de points et
nt d’éléments. Les points sont numérotés de 0 à np − 1 et les triangles de 0 à nt − 1. Comme nous sommes
en 2D, l’ordre de la numérotation est arbitraire. On se place dans la base canonique B = (ex , ey ) de R2 .
Un point Pi , i ∈ {0, . . . , np − 1} est repéré par les coordonnées xi et yi dans cette base. Soit un triangle
(0) (1) (2)
Ki , i ∈ {0, . . . , nt − 1}, on note ses sommets Pi , Pi et Pi . On créé alors les matrices P et T , nommées
respectivement matrices de points et de connectivité, et définies comme suit :
(0) (0) (0)
P P . . . P nt −1
0 1
x x1 . . . xnp −1
P = 0 et T = P0(1) P1(1) . . . Pn(1)
y0 y1 . . . ynp −1 t −1
(2) (2) (2)
P0 P1 . . . Pnt −1
Ces matrices vont être nécessaires dans notre programme, et nous permettront d’alléger les notations. Le domaine
total sera noté Ω. On choisit un cercle de rayon L. L’objet diffractant sera associé au domaine noté Ωd , et on
a Ωd ⊂ Ω. On n’impose aucune condition sur la nature du bord ∂Ωd . Il peut être autant lisse que polygonal.
Le milieu ambiant est donc Ω\Ωd . On a besoin de séparer ces deux milieux pour deux raisons. D’une part, on
aura en général h(Ωd ) ̸= h(Ω\Ωd ). D’autre part, on a besoin que le maillage soit "cohérent", c’est à dire qu’il
recouvre Ωd et Ω\Ωd indépendamment pour éviter les superpositions de maillages.
Dans la base B, on identifie les vecteurs position r = [x, y] et d’onde k = [k0 cos θ, k0 sin θ], où θ est l’angle
d’incidence. On se place dans le cas d’une polarisation TE (transverse électrique), ce qui signifie que l’on a
µr = 1 dans tout l’espace, où µr est la perméabilité magnétique relative. Soit u(r) le champ total. Il satisfait
l’équation de Helmholtz, qui est la suivante :
7
On définit le terme source S(r) = ∆ui (r) + k02 εm r − εr (r) ui (r). On est donc dans la même situation que le
cas 1D. L’onde rayonne depuis l’objet diffractant, et satisfait la condition de rayonnement de Sommerfeld, qui
en 2D s’exprime comme suit :
√
∂
lim r − ik0 ud (r) = 0 (7)
r→∞ ∂r
p
r = x2 + y 2 est la distance à l’interface de l’objet diffractant. On note dΩ = dxdy l’élément infinitésimal
d’aire. La formulation forte du problème est alors la suivante :
Z Z Z
∀w ∈ L2 (R2 ), ∆ud w dΩ + k02 εr (r)ud w dΩ = Sw dΩ (8)
Ω Ω Ω
Le laplacien de ud peut s’écrire ∆ud = ∇ · ψ, où ψ = ∇ud . On définit aussi n(x, y) = nx (x, y), ny (x, y) le
vecteur unitaire normal au bord ∂Ω, dirigé vers l’extérieur. Le premier terme devient alors :
Z Z
∆ud w dΩ = (∇ · ψ) w dΩ
Ω
ZΩ Z
∂ψ ∂ψ
= w dΩ + wd Ω
∂x Ω ∂y
ZΩ Z Z Z
∂w ∂w
= ψwnx dΩ − ψ dΩ + ψwny dΩ − ψ dΩ
∂Ω Ω ∂x ∂Ω Ω ∂y
Z Z
= (n · ψ)w dΩ − ψ · (∇w) dΩ
Z∂Ω
Ω
Z
= n · (∇ud ) w dΩ − (∇ud ) · (∇w) dΩ
∂Ω Ω
Maintenant, comme dans la première partie, on introduit un espace discret de fonctions {φi } (que l’on appelera
"fonctions chapiteau") semblable à L2 (R2 ), de dimension np , le nombre de points du maillage. Ces fonctions
satisfont la relation suivante :
∀i, j ∈ {0, nj − 1}, φi (Pj ) = δij
np −1
X
On pose que ud = αi φi . L’équation (8) devient alors :
i=0
np −1 np −1
Z Z ! Z ! Z
X X
∀j ∈ {0, np −1}, n·(∇ud ) φj dΩ− ∇ α i φi ·∇φj dΩ+k02 εr (r) αi φi φj dΩ = Sφj dΩ
∂Ω Ω i=0 Ω i=0 Ω
(9)
Transformons le premier terme. En utilisant la règle de dérivation à la chaine, on obtient :
∂ud ∂ud ∂ud ∂r ∂ud ∂r
n · ∇ud = nx + ny = nx + ny
∂x ∂y ∂r ∂x ∂r ∂y
p
Comme r = x2 + y 2 , on obtient :
( )
∂ud x y ∂ud n · r
n · ∇ud = nx p + ny p =
∂r x2 + y 2 x2 + y 2 ∂r r
(B − S + k02 M ) · V = C
8
3.2 Résolution numérique
3.2.1 Calcul numérique d’intégrales doubles sur un triangle
On considère une fonction f (x, y) et un triangle quelconque K formé par les points Pi (xi , yi ), i = 1, 2, 3.
Calculons l’aire de ce triangle, notée AK . Pour cela, on considère un quatrième point P4 qui est tel que le
quadrilatère P1 P2 P4 P3 soit un parallélogramme. L’aire de ce parallélogramme, notée A, a pour expression :
x2 − x1 x3 − x1
A = ∥P1 P2 ∧ P1 P3 ∥ = |(x2 − x1 )(y3 − y1 ) − (y2 − y1 )(x3 − x1 )| = det
y2 − y1 y3 − y1
On obtient l’aire du triangle en utilisant le fait que A = 2AK .
On considère le triangle K ′ formé par les points p1 (0, 0), p2 (1, 0) et p3 (0, 1). On définit un nouveau système de
coordonnées (ξ, η) tel que pi (ξ, η) = Pi (x, y). Pour cela on construit deux applications linéaires, dépendantes du
(K) (K)
triangle K, de R2 dans R : ϕ1 et ϕ2 , qui sont telles que :
(
(K) (K) (K)
ϕ1 (0, 0) = x1 , ϕ1 (1, 0) = x2 , ϕ1 (0, 1) = x3
(K) (K) (K)
ϕ2 (0, 0) = y1 , ϕ2 (1, 0) = y2 , ϕ2 (0, 1) = y3
On montre que : (
(K)
ϕ1 (ξ, η) = x1 + (x2 − x1 )ξ + (x3 − x1 )η
(K)
ϕ2 (ξ, η) = y1 + (y2 − y1 )ξ + (y3 − y1 )η
Le jacobien du changement de coordonnées (ξ, η) −→ (x, y) s’exprime donc comme suit :
(K) (K)
∂ϕ1 ∂ϕ1
x2 − x1 x3 − x1
J = ∂ξ ∂η =
∂ϕ(K) ∂ϕ(K) y2 − y1 y3 − y1
2 2
∂ξ ∂η
On a alors : |det J| = A = 2AK
On souhaite maintenant calculer l’intégrale de f sur le triangle K. On utilise la formule du changement de
variables pour obtenir :
Z Z Z
(K) (K) (K) (K)
I= f (x, y)dxdy = f ϕ1 (ξ, η), ϕ2 (ξ, η) |det J|dξdη = 2AK f ϕ1 (ξ, η), ϕ2 (ξ, η) dξdη
K K′ K′
′
Avec le triangle K tel qu’on l’a défini, on peut définir les bornes d’intégration. On a :
Z 1 Z 1−ξ
(K) (K)
I = 2AK f ϕ1 (ξ, η), ϕ2 (ξ, η) dξdη (10)
0 0
Pour la suite, on utilise les méthodes d’intégration 1D présentées précédemment.
9
L’ensemble P2 (N −1) est l’ensemble des combinaisons sans répétition de deux éléments de l’ensemble {0, . . . , N −
1}. La matrice B aura alors la forme suivante :
ik0 X
B= Lij B(i, j)σ(i, j)
6
i,j∈P2 (N −1)
On a introduit l’ensemble P2 (N − 1) afin de ne pas prendre en compte les répétitions d’indices. La matrice
B(i, j) et la fonction σ(i, j) sont telles que :
i j
.
.. .. ..
. .
i... 2 ... 1 ...
.. . . .. 1 si Pi si Pj sont consécutifs
B(i, j) = . . . et σ(i, j) =
0 sinon
j
... 1 ... 2 ...
.. .. ..
. . .
(0) (1)
Considérons un triangle d’indice T , où i ∈ {0, . . . , nt − 1}, et dont les trois sommets sont notés PT , PT et
(2)
PT . On a donc trois fonctions φ0 , φ1 et φ2 , qui sont telles que :
(j)
φi PT = δij , i, j ∈ {0, 1, 2}
φi (x, y) = ai + bi x + ci y
où AK est l’aire du triangle K. Il reste à déterminer l’expression des coefficients bi et ci . Si l’on note Pi (xi , yi ), Pj (xj , yj )
et Pk (xk , yk ) les trois points du triangle K, on a :
ai + bi xj + ci yj = 0
φi (Pj ) = φi (Pk ) = 0 =⇒ =⇒ bi (xj − xk ) = ci (yk − yj )
ai + bi xk + ci yk = 0
=⇒ bi = λ(yk − yj ) et ci = λ(xj − xk ), λ ∈ R
On montre que le facteur de normalisation est λ = A2K . Les expressions de bj , bk , cj et ck sont obtenues par
permutation circulaire sur les indices i, j, k. La matrice S a donc pour expression :
X
S= S(i, j, k)AK
K
10
i, j et k sont les indices des points composant le triangle K. La matrice S(i, j, k) est telle que :
i j k
.. .. ..
. . .
i ... b2i + c2i ... bi bj + ci cj ... b i bk + c i c k ...
.. .. ..
. . .
b2j + c2j
j
S(i, j, k) = ... bi bj + ci cj ... ... bj bk + cj ck ...
.. .. ..
. . .
k... bi bk + ci ck ... bj bk + cj ck ... b2k + c2k ...
.. .. ..
. . .
Étant donné que le maillage M recouvre aussi Ωd , un triangle K ∈ M ne peut appartenir à la fois à Ωd et
à Ω\Ωd . Cela signifie que εr (r) est constante sur tous les triangles du maillage. En raisonnant comme pour la
matrice S, on obtient donc :
Z
εr (K)
φi φj dΩ si Pi si Pj sont consécutifs, appartenant au même triangle K
Mij = K
0 sinon
11
On obtient donc :
AK Pi + P k Pi + Pj P j + Pk AK δij 1 AK
Iij = φi φj + φi φj + φi φj = + +0 = (δij + 1)
3 2 2 2 3 4 4 12
i j k
.. .. ..
. . .
i... 2 ... 1 ... 1 ...
.. .. ..
. . .
M (i, j, k) = j . . . 1 ... 2 ... 1 ...
.. .. ..
. . .
k . . . 1 ... 1 ... 2 ...
.. .. ..
. . .
(K) 1
En utilisant les mêmes méthodes d’intégration que pour la matrice M , on montre que Ci = S(Pi )AK . Ainsi,
3
soient Pi , Pj et Pk les trois points formant le triangle K, on obtient :
X AK X AK i j k
(K)
C= C = ... S(Pi ) . . . S(Pj ) . . . S(Pk ) . . .
3 3
K K
12
(a) Partie réelle du champ modèle (b) Partie imaginaire du champ modèle
Real part of the scattering field Complex part of the scattering field
1.5
1.2
750 750 1.2
0.9
0.9
500 0.6 500
0.6
250 0.3 250
0.3
0.0
y(nm)
0 0 0.0
0.3
250 250 0.3
0.6
500 500 0.6
0.9
0.9
750 1.2 750
1.2
1.5
1000 750 500 250 0 250 500 750 1000 1000 750 500 250 0 250 500 750 1000
x(nm)
(c) Partie réelle du champ testé (d) Partie imaginaire du champ testé
Figure 3 – Test de la validité du programme sur un exemple de paramètres : λ = 350 nm; r = 175 nm; ε = 9+2i
On voit que les deux champs sont identiques bien que le champ testé soit moins précis.
3.4 Résultats
L’avantage principal de ce programme, comparé à celui de nos camarades du projet "Diffraction par
un cylindre", est le fait de pouvoir faire diffracter n’importe quelle forme. On représente sur la figure 5 en
annexe, des exemples de résultats obtenus à partir de ce programme. Pour les obtenir, nous avons superposer
sur Inkscape, les cartes de champ obtenues sur Python, et l’objet dessiné sur Gmsh.
13
Real part of the scattering field
3.0
2.4
200
1.8
100 1.2
0.6
0
y(nm)
0.0
100 0.6
1.2
200
1.8
300 2.4
200 100 0 100 200
x(nm)
(a) Paramètres : F = 2000, D = 500
200 2.7
1.8
100 0.9
0.0
0
y(nm)
0.9
100 1.8
2.7
200 3.6
4.5
300 200 100 0 100 200
x(nm)
(b) Paramètres : F = 200, D = 50
100 1.2
0 0.0
y(nm)
1.2
100
2.4
200
3.6
300 4.8
300 200 100 0 100 200
x(nm)
(c) Paramètres : F = 20, D = 5
Figure 4 – Comparaison des champs (à droite) obtenus à partir de maillages (à gauche) de différentes longueurs
caractéristiques
On a posé ici F = h(Ω\Ωd ) et D = h(Ωd ).
14
4 Conclusion
Notre but était de modéliser le champ électrique provenant d’une onde plane, après diffraction par un
objet de forme quelconque. A l’aide de ce programme, nous avons atteint cet objectif et avons présenté quelques
possibilités qu’il offre en Annexe. Nous avons vu qu’il a cependant ces limites puisqu’il s’agit d’une approxima-
tion, et que l’obtention d’une carte précise nécessite un ordinateur performant. Les application de cette méthode
sont diverses. Dans le domaine de l’électromagnétisme, on peut simuler une "cape d’invisibilité". Pour cela, on
cherche à donner l’impression que le champ électrique n’est pas affecté par la présence d’un objet diffractant
(celui que l’on cherche à rendre invisible). Outre l’électromagnétisme, cette méthode trouve de nombreux do-
maines d’application. Par exemple, lorsque l’on veut étudier l’effet de diverses contraintes appliquées à un objet
complexe. Nous pourrions étudier une de ces applications dans un prochain projet.
15
5 Annexe
Real part of the scattering field Complex part of the scattering field
3.2
3.00
1.50 1.6
500 500
0.75 0.8
y(nm)
0 0.00 0 0.0
0.75
0.8
500 500
1.50
1.6
Real part of the scattering field Complex part of the scattering field
3.0
1000 1000 1.80
2.4
1.35
800 800
1.8
0.90
600 1.2 600
0.45
0.6
y(nm)
0 200 400 600 800 1000 1200 0 200 400 600 800 1000 1200
x(nm)
Real part of the scattering field Complex part of the scattering field
4.8
3.6
2.4
100 1.2 100
1.2
0.0
y(nm)
0 0
0.0
1.2
100 100 1.2
2.4
2.4
200 200
3.6
3.6
300 4.8 300
300 200 100 0 100 200 300 200 100 0 100 200
x(nm)
Real part of the scattering field Complex part of the scattering field
2.0
600 600 1.6
1.5
1.2
400 400
1.0
0.8
0 0.0 0 0.0
0.5 0.4
200 200
1.0 0.8
400 400
1.2
1.5
600 600 1.6
2.0
600 400 200 0 200 400 600 600 400 200 0 200 400 600
x(nm)
Figure 5 – Cartes du champ électrique total obtenues pour différents objets, matériaux, angles d’incidence, et
longueurs d’onde
16