Modulefpreviousupnextcontents[BIG][Normal][small]
Suiv.: Partie II: Comment utiliser MODULEF? (exemples Sup.: La bibliothèque MODULEF Préc.: Possibilités Table des matières


2.2 Le code MODULEF

Le système MODULEF, comme illustré ci-dessous, consiste en entités logiques ordonnées suivant une hiérarchie telle que les bas niveaux ne référencent jamais les niveaux plus haut. De plus, chacune de ces entités abstraites est composée d'opérateurs et utilise des structures de données de manière transparente.

 
Figure 2.1: L'environnement MODULEF 

Le schéma montre que l'environnement MODULEF comprend trois niveaux qui correspondent à trois niveaux d'utilisation du code :

Dans ces deux derniers cas, il est important que l'utilisateur respecte les normes de programmation MODULEF [Guide Modulef - 2].

2.2.1 Utilisation de MODULEF

Utilisation classique

Ceci correspond au niveau 3 de la figure 2.1, l'utilisateur doit :

A chaque appel d'un module, la S.D.S. peut être sauvée sur mémoire secondaire. Pour ce faire, il suffit de fournir un numéro de fichier non nul. Ceci est de la responsabilité de l'utilisateur et peut être très utile lors de la résolution d'un problème non linéaire ou transitoire, en particulier pour minimiser le nombre d'entrées/sorties.

Si on désire utiliser souvent une suite de modules, on peut définir un exécutable et le conserver comme boite noire afin d'éviter les opérations de compilations et d'éditions de liens. Dans le cas où certains modules sont à écrire, l'utilisateur sera amener à réaliser le même type d'opérations en prenant les modules qu'il aura écrit lui-même en se conformant aux normes de MODULEF.

La bibliothèque TEST traite des exemples complets pour lesquels les données sont fournies. Elle permet de tester l'implémentation de la version et, via quelques modifications ou par imitation, permet de trouver la solution de certains nouveaux problèmes.

Utilisation conversationnelle

Les programmes conversationnels permettent, via des menus et des questions, d'exécuter un certain nombre de modules de la bibliothèque. Généralement, ils commencent par remplir un fichier de données qui est ensuite utilisé comme entrée d'un processus conversationnel ou batch (dans le cas où le temps nécessaire à l'exécution est grand).

Un grand nombre de modules peuvent être activés conversationnellement. Cette façon de procéder permet de traiter des problèmes relativement simples ou de préparer les données utiles à un problème plus complexe. Il y a deux types de programmes conversationnels :

Parmi les possibilités offertes, on trouve :

2.2.2 Les modules

Les programmes principaux, vus ci-dessus, ne sont, en fait, qu'une succession d'appels aux différents modules. Ceci assure une grande flexibilité au code MODULEF ce qui est précieux dans le cadre d'une activité de recherche ou de développement. En particulier, c'est la base d'un code qui se veut aussi "user-friendly" et "programmeur-friendly" que possible.

Les avantages principaux d'un code modulaire sont sa robustesse, sa simplicité et, ce qui est très important, sa possibilité d'être modifié. Ce dernier point est un aspect crucial du code MODULEF au sens où, à un opérateur mathématique donné, peuvent souvent être associés plusieurs algorithmes. Chacun sera implémenté et donnera un module différent (les modules voisins ayant souvent les mêmes arguments). Avec MODULEF, l'utilisateur peut généralement se contenter de modifier le nom du module, en laissant les arguments, quand il choisit différentes méthodes. De plus, les nouvelles méthodes sont faciles à incorporer dans le code. Par exemple, les modules suivants correspondent aux différentes méthodes de factorisation d'une matrice :

Tous ces modules ont les mêmes arguments.

Par ailleurs, grâce à la modularité du code, il est possible d'exécuter un module en simple ou en double précision. Le module appelle une ou deux subroutines similaires dont le nom diffère par sa dernière lettre, " R" et " D", correspondant au cas Real (simple précision) et Double précision, respectivement. Par exemple, le module CHOLPC appelle :

Les modules communiquent via des structures de données normalisées, ensembles de tableaux Fortran, dont la représentation interne est transparente. La gestion des structures est dissociée de l'algorithme numérique dans chaque module. Un algorithme n'est rien d'autre qu'une subroutine Fortran standard qui travaille sur les tableaux nécessaires, sans tenir compte de la façon dont ils sont gérés. Ceci permet de :

Comme déjà vu, si le module réalisant l'opération voulue n'existe pas dans le code MODULEF, l'utilisateur peut vouloir l'écrire par lui-même. Afin de maintenir la cohérence et l'homogénéité du code, la programmation devra se conformer aux normes du club MODULEF [Guide Modulef - 2].

Une liste de modules, actuellement offerts, et de leurs fonctions est donnée en appendice A.

Autres possibilités

Parmi les utilitaires destinés à aider à l'utilisation de la bibliothèque MODULEF figure un système expert, DOMINO, incorporant le savoir faire des spécialistes de MODULEF : champ d'applications des algorithmes, choix de l'algorithme optimal, respect des spécifications de chaque module, etc. Ce système a pour but de libérer l'ingénieur de tout cet environnement algorithmique, numérique et informatique. DOMINO guide l'utilisateur pendant la spécification de son problème, génère la suite des appels et contrôle l'exécution des modules.

Dans le cadre de l'enseignement, deux logiciels ont été développés sur MacIntosh :

Un logiciel interactif graphique pour la génération de maillages 2D, EMC2, est le résultat d'un travail commun à deux projets de l' INRIA (dont le projet MODULEF). Ce logiciel inclut les trois fonctions suivantes :

2.2.4 Conclusion

La bibliothèque MODULEF, basée sur la méthode des éléments finis, permet à de nombreux chercheurs, tant à l'université que dans l'industrie, de résoudre leurs applications, par exemple : la génération de maillages, la résolution de problèmes transitoires pour l'équation de la chaleur, la résolution de problèmes dynamiques, le calcul de valeurs propres, le calcul des écoulements incompressibles ou compressibles, le traitement de problèmes non linéaires, les problèmes de plaques, etc.

Si on considère le nombre croissant de membres et l'intérêt porté au club MODULEF, aussi bien en milieu industriel qu'en milieu universitaire, il apparaît que la bibliothèque MODULEF devient rapidement un outil complet, fiable, facile à utiliser et permettant de résoudre des problèmes de plus en plus divers.


Modulefpreviousupnextcontents[BIG][Normal][small]
Suiv.: Partie II: Comment utiliser MODULEF? (exemples Sup.: La bibliothèque MODULEF Préc.: Possibilités Table des matières