MED fichier

◆ MEDfilterEntityCr()

med_err MEDfilterEntityCr ( const med_idt  fid,
const med_int  nentity,
const med_int  nvaluesperentity,
const med_int  nconstituentpervalue,
const med_int  constituentselect,
const med_switch_mode  switchmode,
const med_storage_mode  storagemode,
const char *const  profilename,
const med_int  filterarraysize,
const med_int *const  filterarray,
med_filter *const  filter 
)

Crée une selection d'entités grâce a un tableau d'index filterarray de taille filterarraysize. Initialisé en sortie de fonction, le filtre filter sera utilisé pour lire/écrire des valeurs associées à ces entités. Ces valeurs peuvent être des coordonnées, des connectivités des valeurs de champs résultats mais aussi des numéros de familles, des noms ou numéros optionnels.

Paramètres
fidIdentificateur du fichier.
nentityNombre d'entités de même type géométrique constituant globalement le maillage. Ce paramètre ne doit pas prendre en compte nvaluesperentity et nconstituentpervalue.
nvaluesperentityNombre de valeurs par entité. Utiliser la valeur 1 pour un filtre d'éléments de maillage. Cela peut être le nombre de points d'intégration utilisé dans un champ résultat.
nconstituentpervalueNombre de constituants par valeur. Cela peut être le nombre de coordonnées des noeuds, le nombre de noeuds d'une connectivité, le nombre de composantes d'un champ résultat.
constituentselectNuméro de constituant des valeurs à filtrer (commence à 1). Le mot clé MED_ALL_CONSTITUENT permet de selectionner tous les constituants. Cela peut être le numéro de coordonnées des noeuds, le numéro de noeuds d'une connectivité, le numéro de composantes d'un champ résultat.
switchmodeMode d'entrelacement utilisé pour le stockage de valeurs med_switch_mode.
storagemodeIndique le mode de stockage en mémoire med_storage_mode des valeurs associées au profil utilisé.
profilenameNom du profil utilisé (de taille maximum MED_NAME_SIZE ) ou (MED_NO_PROFILE | MED_ALLENTITIES_PROFILE ) s'il n'y a pas de profil.
filterarraysizeNombre d'entités à filtrer et taille du tableau filterarray. Ne prend pas en compte nvaluesperentity et nconstituentpervalue.
filterarrayTableau d'index du profil des numéros d'entités associées aux valeurs à sélectionner.
[in,out]filterFiltre sur entités (med_filter) appliqué en lecture/écriture de valeurs. La désallocation est à la charge de l'utilisateur (cf. MEDfilterClose MEDfilterDeAllocate).
Renvoie
retour négatif en cas d'erreur (MED_ERR_HOWTO), Zéro sinon.

Crée une selection d'entités grâce a un tableau d'index filterarray de taille filterarraysize. Initialisé en sortie de fonction, le filtre filter sera utilisé pour lire/écrire des valeurs associées à ces entités. Ces valeurs peuvent être des coordonnées, des connectivités des valeurs de champs résultats mais aussi des numéros de familles, des noms ou numéros optionnels.

  • Les nvaluesperentity valeurs associées à chaque entité seront sélectionnées (ex : le nombre de points d'intégration des valeurs d'un champ résultat).
  • Il est possible de sélectionner l'ensemble des constituants par valeur ( MED_ALL_CONSTITUENT ) ou uniquement les constituants numéro constituentselect (ex : coordonnées n°i de noeuds, composantes n°i des valeurs d'un champ résultat). Les constituants sont lus/écrits en mode MED_FULL_INTERLACE|MED_NO_INTERLACE (med_switch_mode).
  • Le rangement des valeurs en mémoire peut être en mode MED_GLOBAL_STMODE ou MED_COMPACT_STMODE (med_storage_mode).
  • Les index définis dans le tableau de filtre (filterarray) sont des index relatifs à un tableau profil (eventuellement le tableau virtuel MED_ALLENTITIES_PROFILE ou MED_NO_PROFILE ). La numérotation des index commence à 1, comme la numérotation implicite des éléments.
  • Index et profils :
    Les valeurs à lire/écrire peuvent être définies sur un profil d'entités. L'utilisation d'un profil d'entités permet de restreindre le stockage des valeurs aux seules entités dont l'évolution présente un intérêt. Si les valeurs concernées ne sont pas définies sur un profil d'entités, les index utilisés sont directement les numéros d'entités (équivaut aux index d'un profil MED_ALLENTITIES_PROFILE). Si les valeurs concernées sont définies sur un profil, les index sont appliqués au profil pour sélectionner indirectement les entités.
  • Utilisation sans profils et sans tableau d'index :
    Il est possible d'initialiser un filtre sans utiliser de profil et sans définir un tableau d'index. Le filtre sert alors à selectionner les constituants de numéro constituentselect des valeurs.
Remarques
  • Les numéros d'entités selon la numérotation MED implicite sont relatifs au type géométrique de l'entité (la numérotation implicite commence à 1 pour chaque type géométrique différent).
  • Les numéros d'entités/index de profil doivent apparaître en ordre croissant.
  • Un numéro d'entité/index de profil peut aparaître plusieurs fois (ils sont alors consécutifs).
  • Le filtre créé prend en compte les paramètres nvaluesperentity et nconstituentpervalue pour selectionner les emplacements en mémoire en fonction du mode de stockage utilisé (med_storage_mode).
  • La sélection des emplacements mémoire lus/écrits s'opère dans l'espace mémoire d'un seul processus.
  • Le filtre créé s'utilise uniquement en mode séquentiel (le fid utilisé lors de la lecture/écriture doit provenir d'une ouverture séquentielle).
Voir également
MEDmeshNodeCoordinateAdvancedRd
MEDmeshNodeCoordinateAdvancedWr
MEDmeshEntityAttributeAdvancedRd
MEDmeshEntityAttributeAdvancedWr
MEDmeshElementConnectivityAdvancedRd
MEDmeshElementConnectivityAdvancedWr

Définition à la ligne 55 du fichier MEDfilterEntityCr.c.