## Documentation de la bibliothèque MED-fichier V2.2 : Guide d'utilisation - Module "MED_Famille".

Sommaire de la page
Introduction Modèles de programmation Créer une famille dans un maillage Lire le nombre de famille dans un maillage Accéder aux familles d'un maillage Lire le nombre d'attribut dans une famille Lire le nombre de groupe dans une famille Lire les informations sur une famille Convertir une liste de groupes en familles et créer ces familles dans un maillage Exemples de programmation Exemple de création de familles de noeud et d'élément dans un maillage Exemple de lecture des toutes les familles d'un maillage Exemple de conversion d'une liste de groupes en familles et écriture de ces familles dans un maillage Conventions sur la définition des familles dans un maillage

Retour à la page de garde du guide d'utilisation

# Introduction

Les routines disponibles permettent de :

- Créer une famille dans un maillage.
- Savoir combien de familles contient un maillage.
- Savoir combien d'attribut contient une famille.
- Savoir combien de groupe contient une famille.
- Lire les informations sur une famille (valeurs des attributs, liste des groupes).
- Convertir une liste de groupes en familles et écrire ces familles dans un maillage.

Ces routines sont détaillées dans le guide de référence du module MED_Famille.

# Modèles de programmation

### Créer une famille dans un maillage

La routine MEDfamCr/effamc permet de créer une famille dans un maillage.

Les conventions sur la création des familles dans un maillage sont décrites dans la rubrique Conventions sur la définition des familles dans un maillage.

### Lire le nombre de famille dans un maillage

La routine MEDnFam/efnfam permet de lire le nombre de famille dans un maillage.

### Accéder aux familles d'un maillage

Dès que l'on connait le nombre de famille, il est possible d'accéder à chaque famille par l'intermédiaire d'une boucle. Si on a "N" familles, cette boucle ira de 1 à N. A chaque itération, la valeur du compteur de la boucle est un indice permettant l'accés à une famille donnée.

La lecture des familles d'un maillage consiste à :

- Déterminer le nombre de famille.
- Pour chaque famille :
  - Lire le nombre d'attributs
  - Lire le nombre de groupes.
  - Allouer la mémoire nécessaire au stockage des noms de groupes et des attributs en mémoire.
  - Lire les informations sur la famille (nom, numéro, attribut(s), groupes).

### Lire le nombre d'attribut dans une famille

La routine MEDnAttribut/efnatt permet de lire le nombre d'attribut dans une famille.

### Lire le nombre de groupe dans une famille

La routine MEDnGroupe/efngro permet de lire le nombre de groupe dans une famille.

### Lire les informations sur une famille

La routine MEDfamInfo/effami permet de lire les informations sur une famille. Les données lues sont :

- Le nom.
- Le numéro.
- Les attributs.
- Les groupes.

Les conventions sur la définition des familles dans un maillage sont décrites dans la rubrique Conventions sur la définition des familles dans un maillage.

### Convertir une liste de groupes en familles et créer ces familles dans un maillage

La routine MEDgro2famCr/efg2fc permet de :

- Convertir une liste de groupes d'entités en familles d'entités.
- Créer ces familles dans un maillage.
- Ecrire les numéros des familles des entités dans un maillage.

Avertissements : Cette routine n'a pas encore été testée sur de gros cas d'utilisation. Il est recommandé d'attendre une prochaine version de la bibliothèque avant de l'utiliser.

# Exemples de programmation

### Exemple de création de familles de noeud et d'élément dans un maillage

Le programme suivant crée dans un maillage des familles de noeuds et d'éléments selon les conventions définies dans la rubrique Conventions sur la définition des familles dans un maillage.

Ce programme va :

- Créer un fichier de nom "test8.med".
- Créer dans ce fichier un maillage non structuré.
- Créer la famille vide de numéro 0.
- Créer 3 familles d'éléments de numéros -1, -2 et -3.
- Créer 2 familles de noeuds de numéros 1 et 2.
- Fermer le fichier "test8.med".

Accès aux sources :

- Version C.
- Version FORTRAN.

### Exemple de lecture des toutes les familles d'un maillage

Le programme suivant va lire toutes les familles d'un maillage selon les conventions définies dans la rubrique Conventions sur la définition des familles dans un maillage.

Ce programme va :

- Ouvrir le fichier de nom "test8.med" en mode MED_LECTURE.
- Identifier le premier maillage de ce fichier.
- Lire le nombre de famille de ce maillage.
- Pour chaque famille :
  - Lire le nombre de groupe.
  - Lire le nombre d'attribut.
  - Lire les informations sur la famille (nom, numéro, attribut(s), groupe(s)).
- Fermer le fichier "test8.med".

Accès aux sources :

- Version C.
- Version FORTRAN.

### Exemple de conversion d'une liste de groupes en familles et écriture de ces familles dans un maillage

Le programme suivant permet de :

- Créer le fichier de nom "test19.med".
- Créer dans ce fichier un maillage non structuré.
- Créer dans ce maillage la famille vide de numéro 0.
- Convertir une liste de groupe de noeuds en familles de noeuds et les créer dans le maillage.
- Convertir une liste de groupe de d'éléments en familles d'éléments et les créer dans le maillage.
- Fermer le fichier "tets19.med".

Accès aux sources :

- Version C.
- Version FORTRAN.

# Conventions sur la définition des familles dans un maillage

- Une famille est composée de :
  - Une liste d'attributs de valeurs entières (éventuellement vide).
  - Une liste de noms de groupes (éventuellement vide).
- Chaque attribut de famille est composé de :
  - Un descripteur entier qui correspond à un numéro d'ordre dans la liste.
  - Une valeur entière.
  - Un descripteur qui est une chaîne de MED_TAILLE_DESC (200) caractères.
  Les descripteurs et les valeurs sont stockés dans deux listes distinctes. Les descripteurs sont stockés dans un tableau de caractères.
- Dans un maillage MED, on trouve trois types de familles:
  - La famille de numéro 0 qui ne comporte aucun attribut ni groupe.
  - Zéro ou plusieurs familles des noeuds dont le numéro doit être strictement positif.
  - Zéro ou plusieurs familles d'éléments (mailles/faces/arêtes) dont le numéro doit être strictement négatif.
- La définition de la famille vide de numéro 0 est obligatoire, elle constitue la famille de référence pour tous les noeuds et les éléments qui n'appartiennent à aucun groupe et n'ont aucun attribut.
- Une famille de noeuds peut porter le même nom qu'un famille d'éléments. Par contre les familles d'éléments (respectivement de noeuds) doivent toutes avoir des noms différents.
- Le numéro de famille est le lien existant entre la famille considérée et une entité du maillage (noeud, maille, face ou arête). Ce numéro doit être unique dans chaque maillage.