Projet Ondes

Précédent : Grands domaines d'application
Remonter : Projet ONDES, Modélisation et Simulation
Suivant : Résultats nouveaux
Participants : Alexandre Elmkies , Patrick Joly , Marc
Lenoir , Daniel Martin
Mots-clés : diffraction, éléments finis, équations
intégrales
L'approximation numérique d'équations aux dérivées partielles
issues de la mécanique fait, depuis toujours, partie des
objectifs du projet. L'expérience des premières années a permis
d'appréhender la difficulté à mettre en oeuvre les algorithmes
issus de nos travaux: gaspillage de temps pour des chercheurs
plus à l'aise avec les études théoriques, duplication des travaux
et des programmes, perte d'information lors du départ du
chercheur, qualité logicielle douteuse qui rend problématique le
transfert de programmes vers l'industrie. Les méthodes
développées au sein du projet présentant de plus des spécificités
tout à fait originales, il est apparu nécessaire de créer un
outil logiciel efficace qui puisse servir de cadre à la plupart
de nos futurs développements informatiques.
C'est ainsi qu'est né le code MELINA, destiné à la mise en
oeuvre de la méthode des éléments finis et à la résolution des
problèmes de diffraction. Il ne s'agit pas de rivaliser avec
l'ergonomie des meilleurs codes industriels, mais d'obtenir une
souplesse d'utilisation qui ne présume ni du problème à résoudre
ni de l'algorithme utilisé.
Le code MELINA et les applications qui en découlent permettent
maintenant de résoudre un nombre important de problèmes de
propagation d'ondes, en particulier dans les domaines de
l'hydrodynamique navale, de l'acoustique et l'électromagnétisme.
Une collaboration avec la société SIMULOG a été mise sur pied
pour promouvoir le développement d'applications industrielles et
la diffusion du code, en particulier dans le domaine de
l'électromagnétisme. Des perspectives nouvelles s'ouvrent dans le
cadre du projet commun, des méthodes numériques complémentaires
ou alternatives ayant été développées par les deux partenaires;
promouvoir la synergie, rassembler le savoir-faire des deux
équipes constitue une remarquable opportunité de mettre au point
et de diffuser des codes de calcul efficaces témoignant de la
qualité et de l'originalité de nos travaux dans le domaine
numérique.
- Le code MELINA est une bibliothèque de procédures pour la
résolution de problèmes aux limites par la méthode des éléments
finis. Il comporte des modules adaptés à la résolution de
problèmes extérieurs, dont la modélisation reste l'un des
objectifs majeurs du laboratoire. Il s'agit essentiellement
d'un code de recherche qui fournit un ensemble d'outils
aisément manipulables pour écrire rapidement des applications
destinées au traitement numérique de problèmes aux limites ou à
la mise au point d'algorithmes.
- La résolution d'un nouveau problème aux limites ou la mise
en oeuvre d'un nouvel algorithme de résolution peut, en
général, être implémentée en rédigeant un programme principal à
partir de la formulation variationnelle et de quelques
procédures spécifiques. Les aspects informatiques les plus
délicats, qui sont liés à l'occupation de la mémoire centrale,
à l'assemblage des divers termes et à leur mode de rangement,
sont pris en compte de façon automatique par le programme et ne
sont donc plus à la charge du concepteur de l'application.
- Tous les `objets' (il s'agit par exemple des
domaines sur lesquels sont calculées les intégrales
apparaissant dans la formulation variationnelle, ou des termes
matriciels ou vectoriels représentant ces intégrales, ou encore
des constantes, etc...) manipulés par les procédures
constituant le programme principal, sont définis par des
noms. Ces noms sont le lien entre les structures de
données du code et l'utilisateur qui n'a donc pas à se soucier
de leur représentation interne (en particulier, la gestion des
types et des adresses est assurée de manière transparente par
la librairie d'allocation dynamique).
- Les données du code, qui permettent la description simple
des objets manipulés par le code, sont introduites sous
forme de `phrases'. Ces phrases sont construites en
utilisant un vocabulaire de mots-clés restreint et les
mnémoniques (noms propres) définis par le développeur de
l'application pour désigner les objets qui apparaissent
dans la formulation du problème.
- Les opérations à effectuer sur ces objets sont des
macro-opérations réalisées à l'aide de procédures dites de
haut niveau, telles le calcul des termes matriciels,
leur assemblage, la prise en compte de conditions essentielles,
la résolution d'un système linéaire, etc...
- Le code contient des procédures pour la résolution de
problèmes aux limites extérieurs (c'est-à-dire posés sur un
domaine non borné), par exemple les phénomènes de propagation
d'ondes (de gravité en hydrodynamique navale, acoustiques ou
électromagnétiques, etc...) Les méthodes de résolution
accessibles dans le code pour de tels problèmes sont la méthode
de couplage entre éléments finis et représentation
intégrale et la méthode des éléments finis
localisés.
Précédent : Grands domaines d'application
Remonter : Projet ONDES, Modélisation et Simulation
Suivant : Résultats nouveaux