Résolution des problèmes de Laplace et de Helmholtz à plusieurs dimensions
Résolution d’un problème de diffusion 3D
Dérivation en x et y d’une solution 2D : Il est possible de le faire en utilisant l’écriture matricielle du champ 2D : Il est possible de résoudre un problème de Helmholtz en utilisant le champ U écrit de cette façon. Un exemple de résolution sera proposé. Par contre, le passage à trois dimensions est plus difficile : la solution serait représentée par un cube et les opérateurs de dérivation 1D ne lui seraient plus applicables. En outre, les langages de programmation ne proposent pas d’outil efficace adapté.
Ecriture d’une solution 2D sous forme de vecteur. Un champ 2D U est souvent envisagé comme une matrice. Pour considérer U comme solution d’un problème linéaire, il faut le considérer comme un vecteur solution d’un problème linéaire.
Ecriture de la dérivée selon x : le calcul doit être fait pour chaque bloc x. La dérivée est distribuée sur les blocs diagonaux d’un opérateur :
Le produit tensoriel (ou produit de Kronecker) : Exemples : Propriétés :
Avec le produit tensoriel : Formation de l’opérateur de Helmholtz 2D avec conditions aux limites : Les lignes correspondant aux conditions aux limites sont effacées et remplacées par les conditions aux limites.
La résolution d’un problème de Helmholtz avec conditions de Dirichlet imposées est effectuée dans le programme : E6_1_Helmholtz_Dirichlet_complet.m L’instruction Matlab pour le produit tensoriel est « kron ». La solution est obtenue sous forme de vecteur, et ensuite réécrite sous forme matricielle pour la représentation graphique. Le même problème est résolu avec un nombre de points différents en x et y dans le programme E6_1_Helmholtz_Dirichlet_complet_bis.m La réécriture sous forme matricielle se fait en utilisant l’instruction reshape.
Problème de Helmholtz 2D avec réduction des conditions aux limites. Nous allons dans un premier temps traiter le problème avec sa solution écrite sous forme matricielle.
Equations dans le domaine : ligne ou colonne manquante de l’opérateur Réduction des opérateurs de dérivation à l’intérieur du domaine :
Opérateurs internes modifiés :
Modification du terme source pour les points intérieurs au domaine:
Résolution du problème de Helmholtz réduit. Le problème obtenu s’écrit : On diagonalise les opérateurs 1D en X et Y :
On multiplie à gauche par A-1 et à droite par B-1t
Les conditions aux limites sont imposées une fois le problème résolu. La résolution dans le domaine ne fait pas explicitement intervenir les conditions aux limites dans les coins. Les valeurs des conditions aux limites dans les coins sont donc des données inutiles pour la résolution. Le problème de Helmholtz est résolu dans le programme : E6_2_Helmholtz_Dirichlet_2D_diago.m
Les opérateurs réduits sont les mêmes, écrits sous forme tensorisée. L’écriture de l’opérateur 2D tensorisé réduit est donc la tensorisation des opérateurs 1D réduits.
Le problème s’écrit donc sous forme tensorisée : Ce problème est diagonal et se résout directement, composante par composante.
Passage au 3D Le second membre réduit se déduit du second membre du problème par :
On résout pareillement en partant de : est un problème diagonal qui se résoud terme à terme.
Remarque importante : la possibilité de résoudre facilement dans l’espace propre de l’opérateur de Helmholtz est liée à la possibilité d’écrire l’opérateur comme une distribution des opérateurs de dérivée seconde 1D. L’apparition d’un terme de dérivation seconde croisée interdirait la procédure. Ce type de cas est dit non tensorisable. Dans ce cas la résolution de l’opérateur spectral est prohibitive. Il faut trouver un autre moyen d’en obtenir la solution que de chercher à inverser l’opérateur. La solution est d’utiliser de préconditionner le problème par un opérateur plus simple (voir la fin du cours si on a le temps). Les géométries accessibles directement au spectral sont donc des géométries se prêtant à des maillages orthogonaux, cartésiennes rectangulaires, cylindriques ou sphériques.
Exercice (en cours de séance ou à faire chez vous) : Programmer la résolution du problème de Helmholtz 2D du programme fourni en exemple en traitant directement la solution sous forme vectorielle. Prochaine séance : distribution d’un programme corrigé et passage à la résolution du problème de Stokes.