Ce logiciel a été conçu, réalisé et est maintenu par
Alain PERRONNET.
De nombreux modules de maillages, résolution de systèmes linéaires, sous-domaines, ... ,
ont été conçus et réalisés par
Pascal JOLY.
Les quadranguleurs et hexaédriseurs structurés algébriques ou elliptiques,
les tracés graphiques en PostScript
ont été conçus et réalisés par
Christophe DOURSAT.
Plusieurs étudiants du DEA ont aussi développé des modules.
Le logiciel a été écrit au Laboratoire Jacques-Louis Lions
(Analyse Numérique) de
l'Université Pierre et Marie CURIE (Paris 6), UMR 7598 du CNRS.
Un initialisateur de fichiers numériques nécessaires
pour les modules suivants: Méfisto-INITIER;
Un générateur de maillages 2D ou 3D, structurés
et/ou non-structurés: Méfisto-MAILLER;
Un solveur du problème stationnaire ou instationnaire de l'Élasticité
linéaire: Méfisto-ELASTICER;
Un solveur du calcul des modes propres d'un objet 2d ou 3d: Méfisto-ELASTICER;
Un solveur du problème thermique stationnaire ou instationnaire
linéaire ou non linéaire: Méfisto-THERMICER.
Un solveur du problème de l'équation des ondes planes:
Méfisto-THERMICER.
Un solveur du calcul des plus petites valeurs propres de l'opérateur -div A grad:
Méfisto-THERMICER.
Un solveur du problème de Stokes en 2d avec éléments finis de Taylor-Hood ou
Brezzi-Fortin: Méfisto-FLUIDER.
L'utilisation de ces modules est rendue conviviale par l'emploi systèmatique de menus,
le recours à la souris, et une représentation graphique des résultats
sur l'écran et éventuellement, dans un fichier d'instructions PostScript.
Des documentations sous forme de fichiers PostScript:
Quelques notions du point de vue de l'Utilisateur:
L'objet global est divisé en objets.
Chaque objet est nommé.
Un objet est un ensemble de points, lignes, surfaces, volumes et objets.
Un volume (respectivement une surface, une ligne, un point) peut être la réunion
d'autres volumes (resp. surfaces, lignes, points).
Un volume (respectivement une surface, une ligne, un point) peut être l'image d'un autre volume (resp. surface, ligne, point)
par une transformation mathématique.
Un maillage structuré est défini par une numérotation implicite à
partir de quelques entiers;
Un mailla ge non structuré est défini par la liste des numéros des sommets
des éléments finis;
La taille des arêtes des éléments finis peut être adaptée avec une fonction
Taille_Ideale(x,y,z) donnée par l'utilisateur.
Les points peuvent être :
désignés à l'aide d'une souris sur une représentation écran
de l'espace 2D ou 3D;
définis par saisie sur le clavier de leurs coordonnées cartésiennes x-y-z, ou cylindriques ou sphériques;
Une ligne peut être :
la liste des 3 coordonnées des sommets de chacune de ses arètes;
la liste des noms du premier au dernier de ses sommet;
un segment de droite structuré défini par ses extrémités;
un arc de cercle défini par 3 points;
un cercle défini soit par 3 points, soit par son centre, un point et un point du plan;
une courbe B-spline interpolée ou controlée par des points, polynômiale ouverte ou fermée.
une liste d'arêtes extraites d'une autre ligne ou d'une surface;
une intersection de 2 troncs de cônes;
une intersection de 2 cylindres;
une ligne, image d'une autre par une transformation mathématique;
une union de lignes;
...
Une surface peut être:
un triangle droit structuré, subdivisé en sous-triangles rectangles unités;
un rectangle droit structuré, subdivisé en carrés unités;
un polygone limité par les arêtes de lignes fermées et triangulé par un
algorithme de type Voronoi-Delaunay sur un fond de triangles équilatéraux;
un triangle transfini structuré, défini par les trois lignes maillées de son contour;
un quadrangle structuré, défini par les quatre lignes maillées de son contour et un
algorithme de type transfini ou elliptique;
une triangulation régulière d'une surface sphérique ou hémisphérique;
une surface B-spline interpolée définie par des points;
une surface définie par une ``montée'' d'une ligne en plusieurs tranches;
une surface définie par la rotation d'une ligne autour d'un axe;
une surface extraite d'un hexaèdre structuré par restriction de ses indices;
une surface extraite d'un volume selon le résultat d'une fonction critêre;
l'intersection, l'addition ou la soustraction de 2 triangulations planes;
la triangulation d'une quadrangulation;
une triangulation amémliorée;
une surface, image d'une autre par une transformation mathématique;
une union de surfaces;
...
Un volume peut être :
un tétraèdre (respectivement un pentaèdre, un hexaèdre) transfini, structuré, défini
par ses faces maillées structurées;
un tétraèdre (respectivement un pentaèdre, un hexaèdre) droit structuré, subdivisé
en sous-éléments finis réguliers;
un cône ou un demi-cône maillé régulièrement;
un cylindre ou un demi-cylindre maillé régulièrement;
un hexaèdre structuré, défini
par ses 6 faces maillées et structurées, et une transformation elliptique de type Winslow avec correcteur
pour améliorer le maillage dans le voisinage de la frontière;
une tétraèdrisation obtenue par un algorithme de Voronoi - Delaunay, à partir du contour
d'un volume délimité par des surfaces fermées et triangulées;
une tétraèdrisation d'une pentaèdrisation et/ou hexaèdrisation initiale;
un volume défini par plusieurs niveaux de déplacement d'une surface initiale.
un volume, image d'un autre par une transformation mathématique;
une union de volumes;
...
Un objet peut être :
une union de points, lignes, surfaces, volumes et objets.
chaque partie de l'objet peut ensuite supporter une ou des caractéristiques physiques,
des conditions à la frontière ou initiales.
La réalisation ascendante du maillage
à partir des points, lignes, surfaces, volumes, garantit la continuité
du maillage au passage des interfaces. En fait, le stockage des tangentes aux arêtes des éléments finis,
triangles de type Hsieh - Clough - Tocher réduit ou quadrangles de type de Veubeke - Sander réduit, permet un
paramétrage par morceaux sous la forme de polynômes de degré 3 et offre une classe de continuité G1
pour la géométrie des surfaces de l'objet. Quelques exemples de maillages
Le logiciel Méfisto-Thermique, après lecture du nom de l'objet, de ses caractéristiques physiques, des sources thermiques
et des conditions aux limites, calcule les températures et les flux de chaleur internes ou sur la frontière de l'objet.
Le problème instationnaire est résolu par un schéma à un pas, constant en temps. Les équations du problème
De même, l'équation des ondes planes est résolue, au choix, selon
2 schémas en temps (Newmark et décentré) inconditionnellement stables. Les équations du problème
Les valeurs et vecteurs propres de l'opérateur div( A grad . ) peuvent être calculés par la méthode,
soit, des sous espaces, soit, des itérations inverses. Les équations du problème
Le logiciel Méfisto-Élasticité, après lecture du nom de l'objet,
de ses caractéristiques physiques, des forces et des conditions aux limites,
calcule les déplacements et les contraintes internes ou sur la frontière de l'objet. Les équations du problème
En instationnaire, avec les conditions initiales , éfisto-Élasticité
calcule les déplacements et les contraintes
de l'objet par un schéma de Newmark à pas constant en temps. Les équations du problème
Les fréquences et modes propres peuvent être calculés, au choix, par la méthode des sous espaces ou
des itérations inverses. Les équations du problème
Le logiciel Méfisto-Fluide contient un solveur du problème de Stokes en 2d avec éléments finis triangulaires de Taylor-Hood ou Brezzi-Fortin. Les équations du problème
Quelque soit la nature du problème traité, chaque donnée physique est associée à l'entité
géométrique qui la caractérise : la surface sur laquelle s'exerce une pression, le point où la température
est fixée ...
Pour la résolution des systèmes linéaires,
2 méthodes sont disponibles :
résolution globale par la méthode de Cholesky avec stockage profil de la matrice;
résolution globale par la méthode du gradient conjugué préconditionné, avec
stockage condensé de la matrice. La matrice de préconditionnement est obtenue par une factorisation
incomplète de Cholesky et la technique des niveaux de remplissage.
Un Langage Utilisateur (LU) permet de manipuler
des constantes ( 1; 3.14159; 1.E-10; );
des variables ( defvar pi, e; pi=3.14159; );
des fonctions usuelles ( cos, sin, sqrt, log, min, max, ... )
des expressions algébriques entre parenthèses ( pi * ( r**2 ); );
des fonctions utilisateur ( définition par la frappe de:
deffonc f(x); si x>0; alors f=x; sinon f=-x; finfonc;
puis, utilisation sous la forme: sqrt(f(x)) )
Les variables et fonctions permettent par exemple la paramétrisation en x, y, z, des données physiques
, ou l'égalité du nombre d'arêtes de deux cotés opposés d'un quadrangle structuré.
Du point de vue du programmeur :
Le ``source'' du logiciel, dans sa version mars 2009, comprend
204233 lignes d'instructions fortran 77,
plus 149453 lignes commentaires et 3609 lignes d'instructions C
pour les appels graphiques du X11-Window System.
Le langage fortran 77 a été enrichi de notions telles que
l'adressage dynamique de tableaux Fortran 77 en mémoire centrale ( notion de TMC );
la sauvegarde de tableaux sur fichiers en accès direct, entre deux exécutions ( notion de TMS );
le chemin hiérarchisé d'accès aux tableaux nommés
( notion de TMS nommés et de Lexiques );
la description de chaque TMS nommé suivant une grammaire ( notion de TD ), qui permet
la complète structuration des données;
la lecture interactive des données;
l'impression automatique des valeurs numériques d'un TMS;
la modification de la valeur d'une variable d'un TMS;
le transfert de données entre ordinateurs hétérogènes par traduction
automatique des nombres en caractères ou le contraire;
la documentation en ligne de chacun des TMS et des menus.
le module dans lequel sont programmés les étapes de
un chargement des données sous forme de TMS;
une déclaration de tableaux TMC auxiliaires et la sortie des résultats sous la forme de TMS;
un appel de l'algorithme écrit en Fortran 77 standard;
une destruction des tableaux TMC auxiliaires;
une fermeture des fichiers TMS résultats;
l'utilisation à l'aide de la souris ou du clavier de menus documentés;
la sauvegarde de toutes les données de l'utilisateur.
Le logiciel Méfisto est utilisable sur tout systême UNIX doté des librairies X11.
128 Méga-octets de swap et stack sont nécessaires.
40 Méga-octets de mémoire secondaire sont en plus nécessaires.
Les versions offertes sont toutes sous forme exécutables.
Pour terminer, voici quelques exemples sous forme d'images
de résultats issus de l'exécution du logiciel Méfisto:
Tracé de 5 surfaces isothermes dans un miroir scrutant le soleil
Tracé de la température dans 5 plans de section selon Y
Déformée amplifiée d'une machoire sous l'effet d'une traction élastique
Déformée amplifiée d'une partie d'un cardan subissant un couple
La pièce sans déformation est tracée en pointillé jaune
The first few wave functions of an HeH++ molecule-ion
Page écrite par Alain Perronnet Dernière mise à jour le 13 juillet 2006