TP 9
Simulation bidimensionnelle de la propagation d’une onde
Ce TP fait suite au pr´ec´edent et propose de simuler la propagation d’une onde dans une cavit´e, dans l’espace libre, puis sa diffraction `a travers une fente.
Cette propagation est r´egie par l’´equation des ondes : si u(x, y, t) d´esigne l’amplitude de l’onde au point d’espace de coordonn´ees (x, y) et `a l’instant t, alors u est solution de l’´equation
∂2u
∂t2 −c2∆u=s(x, y, t) (1)
o`u, ∆u= ∂2u
∂x2 +∂2u
∂y2 d´esigne le laplacien de u,cla c´el´erit´e de l’onde dans le milieu, et s(x, y, t) la source.
On cherche une solution approch´ee de l’´equation (1) en 2-D : le domaine g´eom´etrique dans lequel l’onde peut se propager est le rectangle [0, Lx]×[0, Ly]. On s’int´eresse alors `a l’amplitude de l’onde u(x, y, t) pour x∈[0, Lx], y∈[0, Ly] et t∈[0, T].
Afin de traiter num´eriquement cette ´equation, le domaine est d´ecoup´e en une grille de calcul : [0, Lx]→ [0 :δx :Lx] , [0, Ly]→[0 :δy :Lx] , [0, T]→[0 :δt :T].
On notera par la suitenx,ny etntles nombres de points utilis´es pour les discr´etisations suivant respectivement l’axe desx, des y, et des temps t.
Discr´ etisation de l’´ equation des ondes
De mˆeme que dans le TP pr´ec´edent, on poseuki,j =u(xi, yj, tk), les xi,yj ettk ´etant des points de notre grille de calcul.
L’utilisation des formules de Taylor (cf. TP pr´ec´edent) nous permet alors de formuler l’´equation des ondes (1) sous forme discr`ete selon la relation de r´ecurrence :
uk+1i,j = 2uki,j −uk−i,j1+γx
uki−1,j+uki+1,j −2uki,j +γy
uki,j−1+uki,j+1−2uki,j
(2) o`u,γx = c2δt2
δ2x , et γy = c2δt2 δ2y
Initialisation Pour initialiser la relation de r´ecurrence pr´ec´edente, on suppose que le milieu est au repos : la vitesse intiale de l’onde est nulle.
Ceci se traduit paru2i,j =u1i,j, et donc dans la relation de r´ecurrence pr´ec´edente par : u2i,j =u1i,j+γx
2
u1i−1,j+u1i+1,j−2u1i,j + γy
2
u1i,j−1+u1i,j+1−2u1i,j
(3) Source La source est une source sinuso¨ıdale d’amplitude 1 et de fr´equence ν = 2 Hz, situ´ee en (Lx/3, Ly/2).
A chaque it´eration temporelle, l’amplitude de l’onde doit donc ˆetre modifi´ee suivant : uk+1s
x,sy =uks
x,sy + sin(2πνkδt) (4)
Y. Morel -xymaths.free.fr/Matlab/ Simulation de la propagation d’une onde 2D - 1/3
o`u,sx =nx/3 etsy =ny/2 d´esignent les indices de la position (Lx/3, Ly/2) de la source dans notre grille de calcul.
R´ eflexions parasites contre les bords du domaine
Le domaine de calcul [0, Lx]×[0, Ly] a ´et´e introduit ici artificiellement : l’´equation des ondes est valable dans tout l’espace (espace libre) ; n´eanmoins les calculs num´eriques requi`erent une d´elimitation de ce domaine.
On observe alors dans le r´esultat de nos calculs des r´eflexions parasites le long des bords de notre domaine. Ces r´eflexions, quoique expliquables physiquement, n’ont pas ici lieu d’ˆetre, la prapagation ´etant suppos´ee se faire en espace libre (et donc infini).
Pour pallier cet inconv´enient, on peut introduire des conditions dites absorbantes au bord de notre domaine (CLA, pour Conditions aux Limites Absorbantes) , de mani`ere `a ´eliminer ces r´eflexions parasites.
Ces conditions absorbantes peuvent ˆetre simul´ees de la mani`ere suivante : u(1,:, k+ 1) = u(2, :, k)
u(nx, :, k+ 1) = u(nx−1, :, k)
u( :,1, k+ 1) = u( :,2, k)
u( :, ny, k+ 1) = u( :, ny−1, k) (5)
Pr´ esence d’un obstacle
On peut simuler la pr´esence d’un obstacle en imposant uki,j = 0 pour tout k (tout instant), et pour des indices i etj correspond `a la position de l’obstacle.
Diffraction par une fente simple
On simule la pr´esence d’une fente simple par un
“masque” : On impose donc,
u(Ix, Iy, : ) = 0,
avec Ix et Iy des indices correspondants `a la posi- tion de la fente dans la grille de calcul.
Diffraction par une double fente : interf´erences Le principe est le mˆeme que pour la mod´elisation de la pr´esence d’une fente simple.
La fente double est introduite par l’interm´ediaire d’un ”masque” :
u(Ix, Iy, : ) = 0,
avec Ix et Iy des indices correspondants `a la posi- tion de la fente dans la grille de calcul.
Travail `a r´ealiser Le but du programme est de calculer les valeurs u(i, j, k) pour 1≤i≤nx, 1≤j ≤ny, et 1≤k ≤nt.
Pour cela, on commencera par initialiser les valeurs de la matrice u (zeros), puis grˆace `a l’initialisation (3).
Y. Morel -xymaths.free.fr/Matlab/ Simulation de la propagation d’une onde 2D - 2/3
Ensuite, on impl´ementera la discr´etisation de l’´equation des ondes (2), que l’on compl`etera pour prendre en compte la pr´esence de la source sinuso¨ıdale donn´ee par la relation (4).
Ce programme ainsi contistu´e simule la propagation d’une onde dans une cavit´e. On pourra en particulier observer les ph´enom`enes de r´eflexion sur les parois, et les ph´enom`enes d’interf´erence qui s’en suivent.
On compl`etera ensuite ce mod`ele et ces simulations en int´egrant les conditions aux limites absorbantes donn´ees par les relations (5) : on obtient une simulation de la propagation en espace libre. Les bords du domaine sont ”transparents” vis-`a-vis des ondes, et les interf´erences parasites ont ´et´e supprim´ees.
Enfin, on pourra ajouter une fente simple ou double et ainsi observer des ph´enom`enes de diffraction d’onde par une fente, et les ph´enom`enes d’interf´erences.
Valeurs num´eriques On prendra (pour commencer) les valeurs num´eriques suivantes : c = 10m.s−1,Lx =Ly = 100 m, δx =Lx/200, δy =Ly/200, δt=
√δ2
x+δ2y
2c , ν = 2 Hz, T = 10 s.
Y. Morel -xymaths.free.fr/Matlab/ Simulation de la propagation d’une onde 2D - 3/3