Miss 6.5 : Manuel Informatique : Version : 2.1
Transcription
Miss 6.5 : Manuel Informatique : Version : 2.1
Miss 6.5 : Manuel Informatique : Version : 2.1 D. Clouteau June 21, 2007 Contents 1 Principes généraux 1.1 Principes et outils généraux . . . . . . . 1.1.1 Style de programmation . . . . 1.1.2 Les fichiers sources . . . . . . . 1.1.3 Les fichiers d’includes . . . . . . 1.1.4 Les sous-programmes . . . . . . 1.1.5 Arborescence des fichiers sources 1.1.6 Installation . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 2 2 2 2 3 3 3 4 2 Structure de données 2.1 Données du problème . . . . . . . . . . . . . . 2.1.1 Données de l’approximation numérique . 2.1.2 La base de modes de référence . . . . . 2.1.3 La base de mode locale . . . . . . . . . 2.1.4 Données d’archivage . . . . . . . . . . . 2.1.5 Données Géométriques . . . . . . . . . 2.1.6 Les éléments . . . . . . . . . . . . . . . 2.1.7 Les groupes . . . . . . . . . . . . . . . . 2.1.8 Les domaines géométriques . . . . . . . 2.1.9 Données Mécaniques . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5 6 6 7 8 10 10 13 15 16 20 3 Le système de fichier 3.0.1 Gestionnaire de fichier . 3.0.2 Utilisation . . . . . . . . 3.0.3 Les fichiers utilisateurs . 3.0.4 Les fichiers d’archivage . 3.0.5 Evolutions souhaitables 4 Adressage 4.0.1 4.0.2 4.0.3 4.0.4 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 26 26 27 27 28 32 mémoire Sources et installation . . . . . . . . Conception . . . . . . . . . . . . . . Utilisation . . . . . . . . . . . . . . . Conventions d’utilisation dans MISS . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 33 33 33 34 34 1 . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . Chapter 1 Principes généraux 1.1 Principes et outils généraux Le programme MISS est fondé sur la juxtaposition de modules communiquant entre eux par l’intermédiaire de fichiers. Le code source de miss se présente sous la forme d’une arborescence à partir de la racine miss.rx.x • Style de programmation • fichiers sources • les bibliothèques • l’installation Manuel programmeur 1.1.1 Style de programmation MISS est écrit en fortran 77. Les seules extensions autorisées sont l’emploi de fichier d’include et l’utilisation de EENDDO. Les variables sont écrites sur 6 caractères au maximum. Les fichiers sources sont généralement en majuscules, les parties écrites en minuscules indiquent des développements en cours ou non testée. Principes et outils 1.1.2 Les fichiers sources On différencie ici deux types de fichiers: • les fichiers d’includes • les sous-programmes Principes et outils, arborescence 2 Miss 6.5: Manuel Informatique : Version : 2.1 1.1.3 3 Les fichiers d’includes Il sont de cinq types : • cst.h : définition des paramètres du programme • blanc.h : le common blanc et sa taille • data.h : définition des variables réelles usuelles ( 1, pi, 1/2 ...) • a*.h : pointeurs d’adressage b-z *.h : variables globales du code. Ces fichiers contiennent la description des variables, les déclarations de type et les instructions (PARAMETER, COMMON, DATA) Principes et outils, arborescence 1.1.4 Les sous-programmes Il y a un fichier par sous-programme. Ces fichiers ont une entête précisant : • L’histoire de ce fichier : origine de la routine, personne ayant programmé cette routine, historique des modifications • L’action effectuée dans cette routine, • La description des variables passées en argument. A la suite de cette entête, apparaissent : • Les déclarations des variables, parfois sous forme d’includes • un bloc d’initialisation, parfois sous forme d’includes • un bloc d’exécution, • un bloc regroupant les formats d’impression. Principes et outils, arborescence 1.1.5 Arborescence des fichiers sources Les fichiers sont répartis à partir d’un répertoire racine miss.rX.X. Sous ce répertoire apparaissent les répertoires suivants : • common : fichiers d’includes qui dans les fichiers sources seront donc toujours définis en adresse relative : ’../common/xxxx.h’. • doslib : calcul des fonctions de Green du stratifié, • fftlib : bibliothèque de transformé de Fourier, • geolib : bibliothèque géométrique, • iolib : gestion des entrées-sorties, • mémoire : gestion de la mémoire dynamique, Miss 6.5: Manuel Informatique : Version : 2.1 4 • mathlib : bibliothèque mathématique, • laglib : lecture des mot-clés • extmiss : lecture d’un domaine extérieur, • miss2d : bibliothèque spécifique 2D (fonctions de Green), • miss3d : bibliothèque spécifique 3D (fonctions de Green), • miss2.5d : bibliothèque spécifique 2.5D (fonctions de Green), • missaxi : bibliothèque spécifique axi (fonctions de Green), • misslib : bibliothèque éléments de frontière et sous-structuration dynamique • misscoq : couplage avec les codes d’élément finis,coqef et cobef par l’intermédiaire du menu EXTE, • premiss : entrée des données de MISS, • postmiss : post-traitement • predos : entrée des données pour le calcul des fonctions de Green du stratifié, • postdos : post-traitement des fonctions de Green du stratifié, • signlib : gestion des signaux, • utlib : utilitaires généraux. • instal : procédure d’installation • missnl : module non linéaire. Principes et outils 1.1.6 Installation Dans le répertoire principal miss.rx.x se trouve la commande d’instalation instal qui lance les différents Makefile dans chacun des répertoires. Principes et outils Chapter 2 Structure de données Les structures de données manipulées par le programme MISS sont les images informatiques des données décrites dans le manuel utilisateur. Ces structures ne sont pas toujours facilement identifiables dans le code du fait du language de programmation utilisé. Elles se résumeront en pratique à des collections de tableaux, et on essaiera ici d’en extraire une cohérence globale. Elles se divisent globalement en deux types de données : • les données du problème de structures très hétérogènes incluant des : – – – – données données données données d’archivage géométrique de l’approximation numérique mécanique • les résultats de calcul de structures plus homogènes et définis sont les formes génériques suivantes : – – – – champs impédances forces équivalentes facteurs de participation Ces structures de données apparaissent sur trois supports gérés de façons autonomes : • en mémoire à l’aide de la bibliothèque de gestion de la mémoire mémoire • sur des fichiers utilisateurs • sur des fichiers d’archivages à l’aide de la bibliothèque de gestion des fichiers iolib. Ces structures de données sont créés suivant trois modes : • par le programmeur, dans le code source • par l’utilisateur ou des programmes extérieurs dans les fichiers de données • par l’exécutable lors de l’execution Manuel programmeur 5 Miss 6.5: Manuel Informatique : Version : 2.1 2.1 6 Données du problème Ces données sont définies dans le menu DATA. Pour comprendre ces différentes données, on se référera soit au manuel utilisateur, soit à la notice pour les détails. • données archivage • données géométrique • données mécanique • données de l’approximation numérique 2.1.1 Données de l’approximation numérique Les données de l’approximation numérique sont les suivantes : • La base de modes de référence • La base de modes locale • Domaines mécaniques numériques Domaines mécaniques numériques La structure de données domaine mécanique numérique est constitué de : • un domaine mécanique • une base de modes locale définie sur ce domaine • l’intérieur et l’extérieur fonctionnel Son identificateur se confond avec celui du Domaine géométrique : ISDOM • en mémoire : pointeurPDATA common ADATA • Fichier d’archivage : .MAIL • création identique aux domaines géométriques et mécaniques – par concaténation : pour le domaine 0 – par assemblage : pour le domaines 0 : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires dans la routine INPUT par la routine ENDOM0 – par frontières et intérieur : pour les domaines 6= 0 • chargement : dans LDDOM par la routine RDMAIL Miss 6.5: Manuel Informatique : Version : 2.1 7 Intérieur et extérieur d’un domaine mécanique numérique NCHEXT et NCHGEX pour le domaine 0 : Entier : nombre de modes extérieurs dans la base. • en mémoire : common MAIL • Fichier d’archivage : .MAIL • création : dans la routine ENDDOMpar la routine DCHEXT, • création : routine LDDOM. NCHINT et NCHGIN pour le domaine 0 : Entier : nombre de modes intérieurs dans la base. • en mémoire : common MAIL • Fichier d’archivage : .MAIL • création : dans la routine ENDDOM ou dans ENDOM0 par la routine DCHEXT, • création : routine LDDOM. CHEXT (NCHSUI ou NCHG): tableau d’Entier : renumérotation des modes de la base en placant en tete les modes intérieurs en vue de l’élimination partielle. Ce tableau sert également d’identification sur le type de mode (intérieur ou extérieur) suivant que la valeur est supérieure ou inférieure à NCHINT. • en mémoire : Pointeur PCHEXT common ADATA • Fichier d’archivage : .MAIL • initialisation pour le domaine 0 : dans la routine LECCHP. • mise à jour pour le domaine 0 : dans la routine ENDDOM • création : dans la routine ENDDOM ou dans ENDOM0 par la routine DCHEXT • création : routine LDDOM. Domaine mécanique numérique , Données de l’approximation numérique , Données du problème , structure de donnée 2.1.2 La base de modes de référence La structure de données base de modes de référence définit les modes sur lesquels seront approchées les solutions. Ces modes sont définis sur le maillage global soit explicitement par leur support et leurs valeurs nodales soit implicitement (ils sont unitaires pour 1 ddl et nuls pour tous les autres. Ils sont soit définis aux noeuds, soit aux éléments). La structure de donnée est la suivante : • NCHTG : Entier : nombre de fonction de base de référence définies aux noeuds – en mémoire : common MAIL – Fichier d’archivage : .MAIL Miss 6.5: Manuel Informatique : Version : 2.1 8 – création : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires par la routine DEFCHP . – création : routine LDDOM . • TYMOD (NGRPG ) : tableau d’entiers parmis les valeurs données dans cst.h fixant le type de modes par groupe (définition explicite ou implicite). – en mémoire : Pointeurs PTYMOD common ADATA – Fichier d’archivage : .MAIL domaine 0 – création : dans DEFCHP . • GRPCHPG (NGRPG , NCHTG ): entier dans 0,1: support des fonctions de base sous la forme d’un graphe fonction de base X groupe – en mémoire : Pointeurs PGRPCH common ADATA – création : dans LECCHP par la routine GRPCHP . – destruction : dans ENDOM0 • CHPLM (NDDLI.espacereférence ,NODTOT ,NCHTG ) : tableau de complexes donnant les valeurs des fonctions de base aux différents noeuds, pour les différents ddl. – en mémoire : Pointeurs PGRPCH common ADATA – Fichier d’archivage : .MAIL domaine 0 – création : dans LECCHP par la routine GRPCHP . – création : routine LDDOM . Données de l’approximation numérique , Données du problème , structure de donnée 2.1.3 La base de mode locale Les fonctions de base locales sont les restrictions au domaine ISDOM courant des fonctions de base de référence. La structure de donnée est la suivante : • NCHTOT et NCHTG : Entier : nombre de modes explicites dans la base locale – en mémoire : common MAIL – Fichier d’archivage : .MAIL – création pour le domaine 0 : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires par la routine DEFCHP . – création : dans ENDDOM par la routine NCHDOM . – création : routine LDDOM . • NCHBEM et NCHBEG pour le domaine 0 : Entier : nombre de modes implicites de type BEM dans la base locale. – en mémoire : common MAIL – Fichier d’archivage : .MAIL Miss 6.5: Manuel Informatique : Version : 2.1 9 – création pour le domaine 0 : dans la routine LECCHP . par la routine NBBEM – création : dans ENDDOM par la routine NBEDOM . – création : routine LDDOM . • NCHSUI et NCHG pour le domaine 0 : Entier : nombre de modes dans la base locale. – en mémoire : common MAIL – création pour le domaine 0 : dans la routine LECCHP . par la routine NBBEM – création : routine LDDOM . • IGRPCHP (NGRP ,NCHTOT ou NCHTG ): entier dans 0,1: support des fonctions de base sous la forme d’un graphe fonction de base X groupe – en mémoire : Pointeurs PGRPCH common ADATA – Fichier d’archivage : .MAIL – création domaine 0 : dans LECCHP par la routine GRPCHP . – création domaine 6=0: dans ENDDOM routine DDLDOM . – création domaine 6=0: routine LDDOM . • suppression de MODGRP • LSKBEM (NCHBEM ): entier : ddl local sur lequel les modes implicites sont unitaires – en mémoire : Pointeurs PLSKBE common ADATA – Fichier d’archivage : .MAIL – création domaine 0 : dans LECCHP par la routine DEFMBE . – création domaine 6=0: dans ENDDOM routine DDLDOM . – création domaine 6=0: routine LDDOM . • IDDL (NCHSUI ) ou IDDLG (NCHG ) pour le domaine 0: tableau d’entier : numéro global d’un mode local. – en mémoire : Pointeur PIDDL ou PIDDLG common ADATA – Fichier d’archivage : .MAIL – création domaine 0 : dans LECCHP par la routine GRPCHP . – création domaine 6=0: dans ENDDOM routine DDLDOM . – création domaine 6=0: routine LDDOM . Données de l’approximation numérique , Données du problème , structure de donnée Miss 6.5: Manuel Informatique : Version : 2.1 2.1.4 10 Données d’archivage Ce sont des données liées soit à l’étude • nom générique de l’étude • titre de l’étude soit au code lui même • version • révision permettant l’identification des fichiers créés. Ces données sont stockées dans le common Miss . La version et la révision sont fixées dans la routine INIT Données du problème , structure de donnée nom générique de l’étude Il est définit dans le menu principal. Il sert de prefixe par defaut aux fichiers générés par le programme. iolib. Il est rappelé dans le fichier de sortie .OUT Il est stocké dans le common Miss . Données du problème , structure de donnée, données archivage titre de l’étude Il est définit dans le menu principal. Il est rappelé dans le fichier de sortie .OUT, et dans le post-traitement Il est stocké dans le common Miss . Données du problème , structure de donnée, données archivage 2.1.5 Données Géométriques Les données géométriques définies dans le manuel programmeur sont les suivantes : • l’espace de référence : 2D, 3D, axi ..... • lles noeuds • les points de controle • les éléments • les points de gauss • les groupes • les domaines Les informations géométriques scalaires sont conservées en mémoire dans le common MAIL Elles sont archivées dans les fichiers .MAIL par la routine WRMAIL et relues par RDMAIL au fur et à mesure des besoins. Données du problème , structure de donnée Miss 6.5: Manuel Informatique : Version : 2.1 11 Les noeuds La structure de données noeuds est constituée par : • NODTOT : entier : le nombre total de noeuds. – en mémoire : common MAIL – Fichier d’archivage : .MAIL du domaine 0 – création : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires par la routine INPUT . • XNOD (NDIM .espace de référence ,NODTOT ) : real : les coordonnées des noeuds – en mémoire : Pointeur PXNOD du common ADATA – Fichier d’archivage : fichiers .MAIL du domaine 0 – création : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires par la routine INOEUD . La structure noeuds est globale à l’ensemble du maillage. Les noeuds sont numérotés de 1 à NODTOT dans l’ordre implicite de définition. Données du problème , structure de donnée, données géométriques Les points de contrôle La structure de données points de controle est très similaire à la structure de données noeuds , mais elle est locale à un domaine et définit par : • NPTCTR : entier : le nombre total de point de controle du domaine. – en mémoire : common MAIL – Fichier d’archivage : .MAIL du domaine – création : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires par la routine INPUT . • XCTR (NDIM .espace de référence ,NPTCTR ) : real : les coordonnées des points de contrôle. – en mémoire : Pointeur PXCTR du common ADATA – Fichier d’archivage : fichiers .MAIL – création : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires par la routine INOEUD . Les points de contrôle sont numérotés de 1 à NPTCTR dans l’ordre implicite de définition. modification Données du problème , structure de donnée, données géométriques Miss 6.5: Manuel Informatique : Version : 2.1 12 Les points de Gauss La structure de données points de gauss regroupe à la fois des données géométriques et des données d’intégration. Elle est en fait double car elle comporte deux séries de points de Gauss, grossiers et fins. Cette structure de données est créée à partir de la structure élément s et de la structures paramétres d’intégration . • NBG1 : entier : le nombre total de point de gauss sur le domaine. – en mémoire : common INTEGR – création dans LDDOM • XPGG (NDIM .espace de référence ,NBG1 ) : real : les coordonnées des points de gauss. – en mémoire : Pointeur PXPGG du common AGEOM – Fichier d’archivage : fichiers .GEOM – création : Dans PRPGEO par la routine INGEOM . – création : Dans PRPGEO par lecture du fichier .GEOM . • NEPGG (NDIM .espace de référence ,NBG1, NDD.domaine) : real : les vecteurs normaux aux points de gauss. – en mémoire : Pointeur PNEPGG du common AGEOM – Fichier d’archivage : fichiers .GEOM – création : Dans PRPGEO par la routine INGEOM . – création : Dans PRPGEO par lecture du fichier .GEOM . • WPGG (NBG1 ) : real : poids aux points de gauss. – en mémoire : Pointeur PWPGG du common AGEOM – Fichier d’archivage : fichiers .GEOM – création : Dans PRPGEO par la routine INGEOM . – création : Dans PRPGEO par lecture du fichier .GEOM . • ELTGG (NBG1 ) : entiers : éléments auquel appartiennent les points de gauss. – en mémoire : Pointeur PELTGG du common AGEOM – Fichier d’archivage : fichiers .GEOM – création : Dans PRPGEO par la routine INGEOM . – création : Dans PRPGEO par lecture du fichier .GEOM . Les points de gauss grossier sont numérotés de 1 à NBG1 dans l’ordre implicite de définition. • NBG2 : entier : le nombre total de point de gauss fin sur le domaine. – en mémoire : common INTEGR – création : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires par la routine INPUT . Miss 6.5: Manuel Informatique : Version : 2.1 13 – création dans LDDOM • XPGF (NDIM .espace de référence ,NBG2 ) : real : les coordonnées des points de gauss. – en mémoire : Pointeur PXPGF du common AGEOM – Fichier d’archivage : fichiers .GEOM – création : Dans PRPGEO par la routine INGEOM . – création : Dans PRPGEO par lecture du fichier .GEOM . • NEPGF (NDIM .espace de référence ,NBG2 , NDD.domaine) : real : les vecteurs normaux aux points de gauss. – en mémoire : Pointeur PNEPGF du common AGEOM – Fichier d’archivage : fichiers .GEOM – création : Dans PRPGEO par la routine INGEOM . – création : Dans PRPGEO par lecture du fichier .GEOM . • WPGF (NBG2 ) : real : poids aux points de gauss. – en mémoire : Pointeur PWPGF du common AGEOM – Fichier d’archivage : fichiers .GEOM – création : Dans PRPGEO par la routine INGEOM . – création : Dans PRPGEO par lecture du fichier .GEOM . • ELTGF (NBG2 ) : entiers : éléments auquel appartiennent les points de gauss. – en mémoire : Pointeur PELTGF du common AGEOM – Fichier d’archivage : fichiers .GEOM – création : Dans PRPGEO par la routine INGEOM . – création : Dans PRPGEO par lecture du fichier .GEOM . Données du problème , structure de donnée, données géométriques 2.1.6 Les éléments La structure de données éléments est locale à un domaine. Elle est constituée par : • NELTOT : entier : le nombre total d’éléments dans le domaine. – en mémoire : common MAIL – Fichier d’archivage : .MAIL du domaine – création 1: lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires par la routine INPUT .pour le domaine 0 – création 2: routine NELDOM . – création 3 : dans LDDOM par la routine RDMAIL Miss 6.5: Manuel Informatique : Version : 2.1 14 • NBREC :entier: le nombre de quadrangles – en mémoire : common INTEGR – Fichier d’archivage : .MAIL du domaine – création 1: dans la routine ielemg .pour le domaine 0 – création 2: dans ENDDOM: par la routine ELTDOM . • NBTRI :entier: le nombre de triangles – en mémoire : common INTEGR – Fichier d’archivage : .MAIL du domaine – création 1: dans la routine ielemg .pour le domaine 0 – création 2: dans ENDDOM: par la routine ELTDOM . • NBSEG :entier: le nombre de segments – en mémoire : common INTEGR – Fichier d’archivage : .MAIL du domaine – création 1: dans la routine ielemg .pour le domaine 0 – création 2: dans ENDDOM: par la routine ELTDOM . • NODEL (MXNDEL .espace de référence ,NELTOT ) : matrice entiers: les numéros des noeuds (zéro si pas de noeuds). – en mémoire : Pointeur PXNOD du common ADATA – Fichier d’archivage : fichiers .MAIL – création dans INPUT : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires par la routine ielemg . – création dans ENDDOM: par la routine ELTDOM . – création dans LDDOM par la routine RDMAIL • IEL (NELTOT ) : vecteur entier: numéros globaux des éléments locaux (vide pour le domaine 0) – en mémoire : Pointeur PIEL du common ADATA – Fichier d’archivage : fichiers .MAIL – création dans ENDDOM: par la routine ELTDOM . – création dans LDDOM par la routine RDMAIL • AIRE (NELTOT ) : vecteur réel: aire des éléments (vide pour le domaine 0) – en mémoire : Pointeur PAIRE du common AGEOM – Fichier d’archivage : fichiers .GEOM – création : Dans PRPGEO par la routine INGEOM . – création : Dans PRPGEO par lecture du fichier .GEOM . Miss 6.5: Manuel Informatique : Version : 2.1 15 • NOREL (NDIM .espace de référence ,NELTOT ) : vecteur réel: normale moyenne des éléments (vide pour le domaine 0) – en mémoire : Pointeur PNOREL du common AGEOM – Fichier d’archivage : fichiers .GEOM – création : Dans PRPGEO par la routine DEFNOR . – création : Dans PRPGEO par lecture du fichier .GEOM . Les éléments sont numérotés de 1 à NELTOT dans l’ordre implicite de définition. Par ailleurs NELEM = NELTOT .domaine0 est conservé comme variable globale. • NELEM : entier : le nombre total d’éléments dans le domaine 0. – en mémoire : common MAIL – Fichier d’archivage : .MAIL du domaine 0 – création : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires par la routine INPUT . 2.1.7 Les groupes Les groupes sont des ensembles d’éléments. La structure de donnée groupes peut se définir par : • NGRP : entier : le nombre total de groupes dans le domaine. – en mémoire : common MAIL – Fichier d’archivage : .MAIL du domaine – création 1pour le domaine 0 : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires dans la routine INPUT par les routines ielemg et IGROUP . – création 2: routine NGRDOM . • GROUP (NELTOT.éléments ) : vecteur entier: groupes auquelles appatiennent les éléments – en mémoire : Pointeur PGROUP du common ADATA – Fichier d’archivage : fichiers .MAIL – création dans INPUT : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires par la routine ielemg . – création dans INPUT : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires par la routine IGROUP . – création dans ENDDOM: par la routine ELTDOM . – création dans LDDOM par la routine RDMAIL • TYPGRP (1+NBCAR ,NGRP ) : vecteur de (1 entier, NBCAR réels) : type de groupe et caractéristiques associées. – en mémoire : Pointeur PTYPGR du common ADATA Miss 6.5: Manuel Informatique : Version : 2.1 16 – Fichier d’archivage : fichiers .MAIL – création dans INPUT : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires par la routine IGROUP pour le domaine 0 – création dans ENDDOM: par la routine MSKDOM . – création dans LDDOM par la routine RDMAIL Enfin comme pour les éléments, NGRPG =NGRP .Domaine0 est conservé en variable globale. • NGRPG : entier : le nombre total de groupes dans le domaine 0. – en mémoire : common MAIL – Fichier d’archivage : .MAIL du domaine 0 – création : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires dans la routine INPUT par les routines ielemg et IGROUP . 2.1.8 Les domaines géométriques La structure de données domaine géométrique n’est pas explicite dans le code (modif), elle n’est qu’une partie de la structure domaine physique. On notera par ailleurs la différence qui existe encore entre le domaine 0 et les autres domaines. On peut néanmoins la définir formellement comme suit : • Domaine géométrique – ISDOM : numéro identifiant le domaine ∗ en mémoire : common MAIL ∗ création 1pour les domaines 6=0 : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires dans la routine LECDOM . ∗ création 2: lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires dans la routine miss3d . – noeuds (domaine 0 seulement ) – éléments – groupes – points de controle (sauf domaine 0) – l’intérieur et l’extérieur de ce domaine • en mémoire : pointeur PDATA common ADATA • Fichier d’archivage : .MAIL • création – par concaténation : pour le domaine 0 – par assemblage : pour le domaines 0 : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires dans la routine INPUT par la routine ENDOM0 – par frontières et intérieur : pour les domaines 6=0 • chargement : dans LDDOM par la routine RDMAIL Miss 6.5: Manuel Informatique : Version : 2.1 Intérieur et extérieur d’un domaine géométrique d’un domaine est défini par groupe sous la forme : 17 L’intérieur et l’extérieur • GREXT (NGRP ) : vecteur entier : indicateur sur les groupes intérieurs ou extérieurs (0 intérieur, 1 extérieur pours les interfaces, 1 intérieur, 0 exterieur) • en mémoire : Pointeur PGREXT du common ADATA • Fichier d’archivage : fichiers .MAIL • initialisation dans LECCHP pour le domaine 0.(à modifier ) • création dans ENDDOM pour les autres domaines. • modification ENDDOM pour le domaine 0 • création dans LDDOM par la routine RDMAIL Création d’un domaine par concaténation Le domaine est créé à partir des structures de données qui le constituent : ISDOM, noeuds (domaine 0 seulement ),éléments, groupes, points de controle (sauf domaine 0). C’est le mode de création du domaine 0 par la routine LECDOM . Création d’un domaine par assemblage Le domaine est créé par assemblage d’autres domaines.: Non implémenté C’est le mode de mise à jour du domaine 0 par la routine ENDDOM .( mise à jour de GREXT) pour le recréer dans ENDOM0. .(Modif) Création d’un domaine par sa frontière • Définition de la frontière sous la forme d’une liste de groupes sur le fichier de données utilisateurs MISS.IN dans la routine INPUT par la routine DEFDOM – en mémoire : Pointeur PDFDOM • Définition du domaine de référence (implicitement le domaine 0). • Création des structures éléments,groupes, à partir de celles du domaine de référence et de la frontière • Définition des points de controle La définition d’un domaine se fait à l’aide d’un tableau local à INPUT, PDFDOM qui pour chaque groupe associe une des trois valeurs suivantes : -1 : la surface avec normale inversée (le groupe) appartient à la frontière, 0 : le groupe n’appartient pas au domaine, 1 : la surface (le groupe) appartient à la frontière. notera à partir de la r5.8 l’apparition de structure de données permettant d’avoirs des domaines imbriqués les uns dans les autres. Cette structure n’existe en réalité que pour le domaine 0, ensemble de tous les domaines. Miss 6.5: Manuel Informatique : Version : 2.1 18 Il s’agit pour le domaine 0 de détecter les frontières intérieures et extérieures. Ce tri est rangé dans le tableau pgrext. Ce tableau est créé en sommant les tableaux successifs PDFDOM. On note ici une ambiguité possible pour les développements futurs, en effet une valeur nulle peut signifier soit qu’une surface est intérieure, soit qu’elle n’appartient pas au domaine. La deuxième ambiguité vient des structures minces type plaques qui sont en contact des deux cotés avec d’autres domaines. Le tableau pgrext.est également créé au niveau de chacun des domaines, toutefois pour ceux-ci tous les groupes sont extérieurs. Cette notion de frontières intérieures et extérieures permettra de définir des ddls intérieurs ou extérieurs, les ddls étant associés à des fonctions de base, et les fonctions de base à leur support. • Remarque 1: dans le futur il semble intéressant de définir les point de contrôle comme un groupe intérieur. • Remarque 2: dans un domaine il y deux maillages, le maillage extérieur (celui que le domaine peut partager avec d’autres domaines, c’est typiquement le maillage des sous-domaines) et le maillage total, somme de l’intérieur et de l’extérieur (c’est typiquement le maillage global). Paramètres d’intégration En marge de la géométrie elle-même, les données permettant de faire des intégrations sur cette géométrie sont définies également par l’utilisateur (mot-clé INTEgration). La structure paraminte est globale : • NREC1:entier: nombre de points de gauss grossiers sur un coté d’un quadrangle – en mémoire : common INTEGR – création : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires dans la routine INPUT • NTRI1:entier: nombre de points de gauss grossiers sur un triangle – en mémoire : common INTEGR – création : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires dans la routine INPUT • NSEG1:entier: nombre de points de gauss grossiers sur un segment – en mémoire : common INTEGR – création : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires dans la routine INPUT • NREC2:entier: nombre de points de gauss grossiers sur un coté d’un quadrangle – en mémoire : common INTEGR – création : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires dans la routine INPUT • NTRI2:entier: nombre de points de gauss grossiers sur un triangle – en mémoire : common INTEGR Miss 6.5: Manuel Informatique : Version : 2.1 19 – création : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires dans la routine INPUT • NSEG2:entier: nombre de points de gauss grossiers sur un segment – en mémoire : common INTEGR – création : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires dans la routine INPUT L’espace géométrique de référence L’espace géométrique de référence est l’espace sur lequel sont définies les données géométriques. Il fixe des variables du contexte d’éxécution. Il est impossible de modifier cet espace en cours d’éxecution, ce choix est fait automatiquement à la création de l’exécutable en choisissant la bibliothèque adaptée. Les possibilités offertes par le code sont les suivantes : • miss2d : Géométrie 2D, • miss3d : Géométrie 3D, • miss2.5d : Géométrie 3D invariante par translation • missaxi : Géométrie 3D invariante par rotation autour d’un axe, Ce choix a été guidé par une recherche d’éfficacité : • A la programmation : Il n’est plus nécessaire de coder les différents tests • lors des tests : cette méthode rend totalement étanche de grandes partie des codes • A l’exécution : l’éxécutable est plus petit et de nombreux tests sont supprimés. Il comporte néanmoins des défauts : • Les différentes versions ne sont pas toujours au même niveau de développement • les routines peuvent nécessiter des arguments différents (en pratique certains arguments ne seront pas utilisés dans certains cas) • Un rique de duplication d’une partie importante du code source Afin de lutter contre ce dernier inconvénient, seules les parties vraiment différentes du code sont mises dans les bibliothèques spécifiques. Les autres parties sont conservées dans le bibliothèques communes dans lequelles des tests spécifiques sont effectués. Pour ce faire le type d’espace géométrique est rangé dans le common LOGIC sous la forme de variables logiques initialisées dans les routines INIT .de chaque bibliothèque. On peut formellement lui donner la structure suivante : espace de référence : • NDIM : entier : dimension de l’espace de définition des données géométriques – En mémoire : common CONST . Miss 6.5: Manuel Informatique : Version : 2.1 20 – Création : routine INIT • MXNDEL : entier : nombre maxi de noeuds que peut avoir un élement de cet espace – En mémoire : common CONST . – Création : routine INIT • NBPHA : nombre par defaut de ddl mécaniques – En mémoire : common CONST . – Création : routine INIT • L2D : logical – En mémoire : common LOGIC . – Création : routine INIT • L3D : logical – En mémoire : common LOGIC . – Création : routine INIT • L25 : logical – En mémoire : common LOGIC . – Création : routine INIT • LAXI : logical – En mémoire : common LOGIC . – Création : routine INIT • NDDLI : entier : nombre maximum de ddl par noeuds pour la définition des fonctions de base – En mémoire : common CONST . – Fichier d’archivage : .MAIL – création : routine INIT – création : routine LDDOM 2.1.9 Données Mécaniques Les données mécaniques sont de trois types : • les modèles de matériaux constituant les domaines • les conditions aux limites • les domaines mécaniques Miss 6.5: Manuel Informatique : Version : 2.1 21 domaines mécaniques Un domaine mécanique est constitué de trois éléments : • Domaine géométrique : définissant le support géométrique sur lequel applique la mécanique • modèle matériau : définissant le type de mécanique a prendre en compte sur le domaine. Il fixe en paticulier l’espace des phases générique (la dimension physique des variables qui pourront être définies sur le domaine) • conditions aux limites sur le Domaine géométrique : définissant pour chaque constituant du domaine géométrique les types de variables qui y sont imposées. Son identificateur se confond avec celui du Domaine géométrique : ISDOM • en mémoire : pointeur PDATA common ADATA • Fichier d’archivage : .MAIL • création identique aux domaines géométriques – par concaténation : pour le domaine 0 – par assemblage : pour le domaines 0 : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires dans la routine INPUT par la routine ENDOM0 – par frontières et intérieur : pour le domaines 6=0 • chargement : dans LDDOM par la routine RDMAIL les modèles matériaux la forme : matériau : La structure de données modèle matériaux est de • ITYMAT : entier parmis les types de modèles matériaux – En mémoire : common MAIL. – Fichier d’archivage : .MAIL – création : routine LECMAT ou LECFLU • NBDDLM : entier : nombre de ddl mécaniques par noeuds – En mémoire : common CONST – Fichier d’archivage : .MAIL – création : routine INPUT – création : routine LDDOM • NBDDLH : entier : nombre de ddl hydraulique par noeuds – En mémoire : common CONST – Fichier d’archivage : .MAIL – création : routine INPUT Miss 6.5: Manuel Informatique : Version : 2.1 22 – création : routine LDDOM – modification : routine MSKDOM • NBDDL entier : nombre de ddl par noeuds – En mémoire : common CONST . – création : routine LDDOM • paramètres : type paramètres matériau type de modèles matériau Les types de modèles matériau disponibles sont définis dans cst.h . Il est possible de répartir ces types suivant les catégories suivantes : • Les modèles éléments de frontières sur lesquels sont connues les solutions élémentaires – IFLUI : espace homogène fluide acoustique – ISOL : espace homogène solide visco-élastique isotrope – ISTRA : solide visco-élastique stratifié – IDFLU : demi-espace fluide acoustique homogène – BIPHA : non disponible – IDFLIC : demi-espace fluide incompressible homogène avec surface libre – FLIC : fluide incompressible homogène – ISSH : espace homogène solide visco-élastique isotrope 2D SH • les modèles issus de codes FEM – IEXT – IKCM – ICHAR – IRIG – IAMO – IMAS – IKC – IKM – ICM • INDEF: non défini Le modèle matériau fait reférence à un modèle physique Miss 6.5: Manuel Informatique : Version : 2.1 23 Paramètres matériau • parmis (parammatélashom, parammatflui, parammatélasstratifié) : Champs spécifiques pour la définition du matériau Ces données ne sont utilisées que dans des routines spécifiques. • LSTRA :logical: matériau stratifié – En mémoire : common LOGIC. – création : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires dans la routine LECMAT – création : routine LDDOM Paramètres matériauélastique homogène • Ce champ caractérise les matériaux élastiques et contient également quelques variables intermédiaires pour le calcul des fonctions de Green ou pour des raisons de normalisation – En mémoire : common MATE. – Fichier d’archivage : .MAIL – création : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires dans la routine LECMAT – création : routine LDDOM – création : routine INIVSP (matdos2m) paramètres matériau fluide • Ce champ caractérise les fluides et contient également quelques variables intermédiaires pour le calcul des fonctions de Green ou pour des raisons de normalisation. – En mémoire : common FLUI – Fichier d’archivage : .MAIL – création : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires dans la routine LECFLU – création : routine LDDOM Paramètres matériau élastique stratifié Ce champ permet de caractériser les matériaux élastiques stratifiés. Il est stocké dans le common DOS2M Paramètres matériaux , Matériaux, Données mécaniques, Données du problème Les types conditions aux limites Conditions aux limites parmis les types donnés dans csth Miss 6.5: Manuel Informatique : Version : 2.1 24 Les conditions aux limites Les conditions aux limites sont fixés par groupe d’élément à l’aide du tableau MASK(NGRP) : tableau de types de conditions aux limites • En mémoire : poiteur PMASK du common ADATA • Fichier d’archivage : .MAIL • création : domaine 0 : lecture des fichiers de données utilisateurs MISS.IN ou auxiliaires dans la routine DEFCHP • création : domaine 6=0 : routine MSKDOM • création : routine LDDOM Paramètres des fonctions de green élastiques • Ce champ caractérise les paramètres utiles au calcul des fonctions de Green élastiques – En mémoire : common MATE . – Fichier d’archivage : aucun – mise à jour : routine INIGRE COEFMA Paramètres des fonctions de green fluide • Ce champ caractérise les paramètres utiles au calcul des fonctions de Green fluides – En mémoire : common FLUI – Fichier d’archivage : aucun – mise à jour : routine INIGRE COEFFL Fonctions de base et DDL Les champs imposés aux noeuds PCHPLM sont ensuite transférés (routine INGEOM) en champs imposés sur les éléments dans le tableau PCHLME stocké dans le common AGEOM puis dans le fichier .LM (indépendant de la fréquence). Les chargements Contrairement à l’ensemble des autre données associées au problème, les chargements (ainsi que les signaux) ne sont pas définis dans le menu DATA, mais dans les menus INCI ou EXTE. En particulier les définitions liées aux champs incidents ne sont pas stockées dans le fichier .MAIL et donc ne sont pas recréées dans LDDOM. Ceci explique les précautions particulières concernant les champs incidents dans la notice. Les nombres de chargements au niveau local et global sont stockés dans le common MAIL: • NCHUI nombre de champs incidents imposés par domaine • NCHUIG : nombre de champs incidents imposes globaux Toutefois, NCHUI change en fonction des domaines, le vecteur (NDOMN) stocké dans le common blanc à l’adresse PNBUI(admain.h) donne donc ce nombre de chargement en fonction du domaine : Miss 6.5: Manuel Informatique : Version : 2.1 25 • PNBUI: nombre de champs incident par domaine Il n’y a pas de table allant de la numérotation locale des champs incidents à la numérotation globale. Les champs incidents (ou chargements) étant supposés indépendant d’un domaine à l’autre (non nuls sur au plus un domaine), la numérotation globale suit la numérotation locale mise bout à bout dans l’ordre des domaines. La fonction (ISDOM,NDOMN,ia(PNBUI)) renvoie le numéro global du premier champ incident défini sur le domaine ISDOM. Les données de définition du champ incident sont stockées référencées dans le common chui.h. On remarquera que dans l’état actuel du code tous les champ incidents sur un domaine doivent être du même type. **** Remarque ***** La structure de données des chargements devra dans les futures versions être revue, intégrée dans le menu data et stockée sur le fichier .MAIL. Fréquences La sélection de la plage de fréquence du calcul est faite par l’utilisateur dans le menu DATA (routine INPUT). Les données liées à cette plage de fréquence sont stockées dans le common FREQdu fichier freq.h: Nombre d’onde La version 2.5D introduit un échantillonnage supplémentaire par rapport aux versions 2D et 3D, il s’agit de l’échantillonnage en nombre d’onde horizontal. A cet échantillonnage est attribué la notion de mode (comme les modes en axisymétrique ou pour la prise en compte des symétries). Deux commons D25 et MSOURsont associés pour stocker les variables relatives à cet échantillonnage (cf. fichier deuxetdemi.h). Chapter 3 Le système de fichier Miss fait appel au moyen d’un gestionnaire de fichier à deux types de fichiers : • les fichiers utilisateurs ASCII • les fichiers d’archivage MISS binaires. 3.0.1 Gestionnaire de fichier Les sous-programmes permettant la manipulation des fichiers se décomposent dans les niveaux suivants : • Niveau 0 : – NTRAN : Manipulation des fichiers séquentiels, – IODA : Manipulation des fichiers accès direct, • Niveau 1: – DEFICH : définition des caractéristiques des fichiers (type, suffixe, unit ...), – OPENFL : utilitaire d’ouverture des fichiers d’archivage et utilisateur – RDFL : gestionnaire de lecture sur un fichier, – WRTFL : gestionnaire d’écriture sur un fichier, • Niveau 2 : – HEADFR : Lecture et vérification de l’entête, – HEADFW : Ecriture de l’entête, – WRTMAT : gestionnaire d’écriture de matrices sur un fichier, – PRRTAP : ouverture d’un fichier en lecture, vérification de l’entête et positionnement, – PRWTAP : creation d’un fichier en ecriture, vérification de l’entête et positionnement. – WRMAIL : lecture des fichiers .MAIL. – RDMAIL : écriture des fichiers .MAIL. 26 Miss 6.5: Manuel Informatique : Version : 2.1 27 Les commons contenant les informations nécessaires à la manipulation de ces fichiers sont regroupes dans le fichier tape.h. Ces commons contiennent en particulier : • l’identificateur RFILE sous forme d’une chaı̂ne de 80 caractères. Les huit premiers sont utilisés pour définir le type de fichier, le reste est utilisé pour stocker le nom de ce fichier. Cet identificateur est initialisé dans la routine DEFICH. Le nom générique n’étant pas encore connu, le nom consiste simplement en un suffixe. • la taille des enregistrements LREC, • la position courante sur le fichier LKEY(seulement pour les fichiers accès direct) • l’dentificateur LREWFLpour le rembobinage du fichier à chaque fréquence. Les fichiers résultats contiennent en général plusieurs fréquences stockées successivement. Cependant dans certains les résultats sont indépendant de la fréquence (fichiers .LMpar exemple, ou les fichiers pour des fluides incompressibles). Il convient alors de les rembobiner à chaque nouvelle fréquence. • l’identificateur IFTYP, fixant le type de fichiers parmis les types définis dans cst.h 3.0.2 Utilisation Les fichiers cst.h et tape.h doivent être mis en include des routines utilisant cette bibliothèque. Les routines accessibles à l’utilisateur de la bibliothèque sous les suivants : • OPENFL : utilitaire d’ouverture des fichiers d’archivage et utilisateur • RDFL : gestionnaire de lecture sur un fichier, • WRTFL : gestionnaire d’écriture sur un fichier, • WRTMAT : gestionnaire d’écriture de matrices sur un fichier, • PRRTAP : ouverture d’un fichier en lecture, vérification de l’entête et positionnement, • PRWTAP : creation d’un fichier en ecriture, vérification de l’entête et positionnement. Les fichiers DOS2M sont gérés directement par IODA. 3.0.3 Les fichiers utilisateurs Les fichiers utilisateurs sont de deux types : • données • résultats Miss 6.5: Manuel Informatique : Version : 2.1 28 les fichiers de données utilisateurs Les fichiers de données utilisateurs sont : • le fichier de données principal MISS.IN sur l’unité fortran IIN • le fichier auxiliaire sur l’unité IAUX. Dans la version actuelle il ne peut y avoir qu’un seul fichier auxiliaire ouvert en même temps. les fichiers de données sont lus à l’aide des bibliothèques de lecture et de pre-traitement • laglib, • premiss, • extmiss, • predos, • signlib. les fichiers de résultats utilisateurs Les fichiers de résultats utilisateurs sont : • le fichier $ sur l’unité fortran ISCRE • le fichier de sortie sur l’unité IOUT. • le fichier de dessin sur l’unité IDES. Dans la version actuelle il ne peut y avoir qu’un seul fichier de dessin ouvert en même temps. les fichiers de résultats sont écrits à l’aide des bibliothèques de post-traitement postmiss et postdos 3.0.4 Les fichiers d’archivage Les fichiers d’archivage ont tous un préfixe rappelant le nomgénérique , et un suffixe indiquant le type de fichier (cf. Notice utilisateur, rubrique fichier). Entre ce prefixe et ce suffixe apparait le domaine concerné. Ce sont des fichiers binaires de deux types : • séquenciels • accès direct Le fichier .INA constitue une exeption, puisqu’il s’agit d’un fichier ASCII séquentiel, utilisé dans le programme pour stocker les commandes comprisent dans la boucle sur les fréquences. Miss 6.5: Manuel Informatique : Version : 2.1 29 Les fichiers d’archivage séquentiels Ils s’agit de fichiers contenant des structures de données non répétitives. Seuls deux fichiers sont de ce type : • .MAIL : sur l’unité IMAIL, contenant les infomations géométriques, mécaniques et fonctionnelles liées à un domaine, créé par WRMAIL relut par RDMAIL. • .GEOM : sur l’unité IGEOM, contenant les informations sur les points de gauss en vue de l’intégration numérique. • .PRP : sur l’unité IPRP, contenant la partie des fonctions de Green indépendante de la fréquence. Les fichiers d’archivage à accés direct Ces fichiers contiennent des résultats de calculs. Ils sont construits sous forme de boucles sur différents paramêtres imbréquées les unes dans les autres. Ces fichiers dont les unité fortran sont créées dans la routine DEFICH et stockés dans le common TAPE ont les types suivants : • champs • impédances • forces équivalentes • mouvements induits – IMVFD – IEIGEN Les fichiers d’impédance Les fichiers d’impédance ont une structure relativement simple. Il sont constitués des quatres boucles imbriquée : • Fréquences – modes ∗ DDL généralisés · DDL généralisés La longueur des enregistrements étant égale à la longueur de la bouclela plus basse*la taille d’un complexe. Les noms, le contenu et la taille de ces fichiers sont résumés dans le tableau suivant : Miss 6.5: Manuel Informatique : Version : 2.1 Unité IIMPD contenu Impédances IRIGI IMASS IAMOR IMEIGE 30 boucle 1 nfreq boucle 2 nbmod 1 1 1 1 nbmod nbmod nbmod nbmod Rigidité Masse Amortissement masse projetée sur les modes propres boucle 3 nchsui nchgex pour le domaine 0 nchsui nchsui nchsui nching boucle 4 nchsui nchgex pour le domaine 0 nchsui nchsui nchsui nching Structure des fichiers de force et de mouvement induit Les fichiers de force et de mouvement sismique induit ont une structure relativement simple. Ils sont constitués des quatres boucles imbriquée : • Fréquences – modes ∗ ncharges · NDDL généralisés La longueur des enregistrements étant égale à la longueur de la bouclela plus basse*la taille d’un complexe. Les noms, le contenu et la taille de ces fichiers sont résumés dans le tableau suivant : Unité Contenu Boucle 1 Boucle 2 Boucle 3 Boucle 4 IFS Forces nfreq nbmod nchui nchsui équivalentes nchuig pour le Nchgex pour le domaine 0 domaine 0 IFTOT IFEIG Force totale nfreq nbmod Forces nfreq nbmod équivalentes projetées sur la base modale fichiers d’archivage, gestionnaire de fichier nchui nchuig nchsui nchgex Les fichiers de champs Les fichiers de champs ont globalement la même structure que les autres fichiers résultats. Il contiennent toutefois cinqboucles imbriquées sur : • fréquences – modes ∗ chargements · elements-noeuds-points de controle · ddl mécaniques On distingue deux types de fichiers: Miss 6.5: Manuel Informatique : Version : 2.1 31 • les fichiers de champs sur les interfaces • les fichiers de champs aux points de contrôle fichiers d’archivage, gestionnaire de fichier fichiers des champs sur les interfaces Les fichiers où sont stockés les champs sur les interfaces fonctionnent par couples, l’un en déplacement, l’autre en contrainte : • IUI<->ITUI • ILM<->ITDM • IUTOT<->ITTOT Le fichier .D0 fait exeption à cette règle dans la mesure où il est est implicitement associé au fichier .UI (en fait .D0 devrait s’appeler .TD0 et on a udo = - ui) • (-IUI)<->IDO Toutefois le contenu exact de ces fichiers ne correspond pas nécessairement à la terminologie choisie et dépend en fait des conditions aux limites imposées. La terminologie est bien vérifiée (déplacements dans les fichiers .U* et contraintes dans les fichiers .T*) dans le cas de frontières en déplacement imposés. La convention peut être trouvée facilement en prenant le contenu du fichier .LM qui contient les champs imposés sur les interfaces (les fonctions de base du problème global). Les fichiers .UI et .UTOT contiendront le même type de données que celles stockées dans le fichier .LM, alors que les fichiers .TDM, .D0, .TUI et .TTOT contiendront les variables duales de celles stockées dans les autres fichiers. On trouvera dans le manuel utilisateur la définition exacte du contenu des fichiers. fichiers des champs aux points de contrôle Les fichiers des champs sur les points de contrôle sont similaires de ceux contenant les champs sur les interfaces. Ce sont les suivants. • ICUI • ICTR • ICTOT • ISCTR • ISCTOT • ISCUI Miss 6.5: Manuel Informatique : Version : 2.1 3.0.5 32 Evolutions souhaitables • Ne plus fixer en dur dans DEFICHles numéros d’unités fortran, permettant ainsi d’ouvrir autant de fichiers de chaque type que nécessaire. – Integrer ainsi defich à openfl – ajouter un type à openfl • Enrichir le contenu de l’entête pour que le contenu du fichier soit une structure de donnée auto-portante. • Permettre la création de répertoires • Permettre que les domaines aient des noms au lieu de numéros • Permettre d’avoir les boucles de bas niveau de tailles différentes pour les différents modes ou les différentes fréquences. Chapter 4 Adressage mémoire Le code est fondé sur une méthode d’adressage dynamique, l’ensemble des vecteurs ou des matrices utilisés dans le code est archivé dans le common BLANCĊe système d’adressage mémoire est géré par la bibliothèque memlib. 4.0.1 Sources et installation Les fichiers sources On différencie ici deux types de fichiers: • les fichiers d’includes : blanc.h, blancm.h, admain.h • les sous-programmes : définis dans le répertoire memlib. Installation L’installation de la biliothèque memlib se réalise en deux temps : • définition de la taille du common BLANC • création de la bibliothèque par la commande unix ”make” lisant le fichier Makefile ou directement en installant le programme MISS. 4.0.2 Conception Le common BLANC est de type entier définissant ainsi la variable de plus petite taille. Le common cst.h contient les paramètres définissant la taille des mots en fonction du mot élémentaire du common blanc. L’adressage s’effectue ensuite en utilisant un pointeur de fin PLAST qui est incrémenté de la longueur du tableau à réserver. La libération de la mémoire s’effectue en réaffectant le pointeur PLAST. Ce pointeur est stocké dans le common ADMAIN. En particulier le pointeur PLASTne doit plus être accédé directement. 33 Miss 6.5: Manuel Informatique : Version : 2.1 4.0.3 34 Utilisation L’utilisation du gestionnaire mémoire se fait à l’aide de routines d’adressages utilisées dans le contexte suivant : • les fichiers cst.h et blanc.h doivent être mis en include. • Il convient d’utiliser les tailles élémentaires de mots définies dans l’include cst.h Les routines d’adressage sont les suivantes : • ALOC(pointeur,taillereclamée,codeerreur) : allocation de la taillereclamée à partir du pointeur. • FFREE(pointeur) : libération à partir du pointeur. Attention, cette routine libère toute la mémoire qui suit ce pointeur et non la seule mémoire associé à ce pointeur lors de son allocation. • MARK(pointeur) : renvoir la position de la première adresse libre. Cette routine est utile pour se similer des pointeurs sur des structures complexe qui pourront être liberés en bloc. • SIZFRM(pointeur,size) : donne la taille entre le pointeur pointeur la première adresse libre. • SHIFT : permet de decaller un tableau en mémoire (très délicat à utiliser), • MEFREE : taille de la mémoire disponible. 4.0.4 Conventions d’utilisation dans MISS La répartition de cet adressage dans le code est régit par les règles suivantes : • Les adressages sont effectués dans des routines dédiées commençant par les lettres ad. • Avant une routine d’exécution s’appelant toto on appelle la routine adtoto qui fait l’adressage. • Les pointeurs adressés seront stockés dans un common ayant pour nom atoto. • Les noms des pointeurs commence toujours par P afin d’obliger leur déclaration comme entier. • Il y a correspondance entre le nom du pointeur et le nom de la variable. A la variable VECT1 sera associé le pointeur PVECT1. Le common ADMAINcontient des pointeurs supplémentaires marquant le début de l’adressage des grand modules du programme, ainsi que la taille de la structure de données adressée à l’intérieur de ce module : exemple • CONTR: module • PCONTR: pointeur Miss 6.5: Manuel Informatique : Version : 2.1 35 • NCONTR : longueur On utilise la routine MARKpour initialiser le pointeur. Les sous-programmes d’adressage sont les suivants : Adressage Routines ou Modules ADASDI ASSDIF ADCONT CONTR ADCTSG CONTSG commons AMVFD ACONTR ACONTR ADGEOM PRPGEO AGEOM ADMVFD MVFOND AMVFD ADPRPI PRPINT dans PRPGR APRPIN ADPRUI PRPINT dans PRPGI APRPUI ADRESA ADASIF RESALL ARESA ARESO ADRESO RESOU ARESO ADREUI RESUI AREUI AFFTGE FFTGEN FOUR AINFFT INIFFT FOUR Une partie de l’adressage reste distribué dans le code et ne vérifie pas les règles précédemment énoncées. Il s’agit en particulier de la structure de donnée générale du problème initialisée dans le module DATA. Les tailles des différents tableaux étant dépendant de données entrées par l’utilisateur, l’adressage se fait au fur et à mesure de la définition de ces données. Les pointeurs associés sont stockés dans le common ADATA. L’adressage est effectué une première fois dans la routine INPUT. Le module LDDOM permet ensuite de relire cette structure de donnée, l’adressage est donc refait dans LDDOM.