MED fichier
MAJ_320_330_champs.c
Aller à la documentation de ce fichier.
1/* This file is part of MED.
2 *
3 * COPYRIGHT (C) 1999 - 2020 EDF R&D, CEA/DEN
4 * MED is free software: you can redistribute it and/or modify
5 * it under the terms of the GNU Lesser General Public License as published by
6 * the Free Software Foundation, either version 3 of the License, or
7 * (at your option) any later version.
8 *
9 * MED is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU Lesser General Public License for more details.
13 *
14 * You should have received a copy of the GNU Lesser General Public License
15 * along with MED. If not, see <http://www.gnu.org/licenses/>.
16 */
17
18
19#include "med_config.h"
20#include "med_outils.h"
21#include "med.h"
22
23#include <string.h>
24
25#include "MAJ_320_330.h"
26#include "MAJ_version.h"
27
28#define USER_MODE MED_COMPACT_STMODE
29
31 const char * const nommaa,
32 med_int nmodels,
33 const med_geometry_type* geotype_elst,
34 const char * geotypename_elst,
35 const char * const nomcha,
36 const char * const dtunit,
37 const med_field_type typcha,
38 const med_int ncomp,
39 const char * const comp,
40 const char * const unit,
41 const med_entity_type entite,
42 const med_switch_mode stockage,
43 const med_int ncstp) {
44
45 int i,j,k,l,m,n,nb_geo=0;
46 med_int nbpdtnor=0,pflsize,*pflval,ngauss=0,ngroup,nval;
47 med_int numdt=0,numo=0,nprofile=0;
48 med_int meshnumdt=0, meshnumit=0 ;
49 med_size medtype_size=0;
50 med_size _sizei=0,_sizef=0,_sizeNbr=0;
51 med_float dt=0.0;
52 unsigned char *val = NULL;
53 med_err ret=0;
54 char pflname [MED_NAME_SIZE+1]="";
55 char _profilename [MED_NAME_SIZE+1]="";
56 char locname [MED_NAME_SIZE+1]="";
58 char _pathf[(MED_FIELD_GRP_SIZE+1+MED_NAME_SIZE+1)+2*MED_MAX_PARA+1] = "/CHA_/";
59 char _pathtmp[MED_FIELD_GRP_SIZE+3]="/CHA__/";
61 char _entitygeotypename[2*MED_TAILLE_NOM_ENTITE+2]="";
62 char * lien = NULL;
63 med_bool _fieldexist = MED_FALSE;
64 med_bool _meshexist = MED_FALSE;
65 med_int _nentFromMesh = 0;
66 med_int _nentFromField = 0;
67 med_int _nent = 0;
68 med_geometry_type *type_geo;
69 med_data_type meddatatype = MED_CONNECTIVITY;
70 med_bool changement = MED_FALSE;
71 med_bool transformation = MED_FALSE;
72 htri_t _datasetexist;
73
74 const char * const * AFF;
75 const char * const * AFF_ENT=MED_GET_ENTITY_TYPENAME+1;
76 const char * * AFF_STRUCT = NULL;
77
78 switch (entite) {
79 case MED_NODE :
81 nb_geo = MED_N_NODE_FIXED_GEO;
83 meddatatype = MED_COORDINATE;
84 break;
85 case MED_CELL :
86 case MED_NODE_ELEMENT :
88 nb_geo = MED_N_CELL_FIXED_GEO;
90 break;
93 nb_geo = MED_N_FACE_FIXED_GEO;
95 break;
98 nb_geo = MED_N_EDGE_FIXED_GEO;
100 break;
101 case MED_STRUCT_ELEMENT :
102 AFF_STRUCT = (const char * *) calloc(sizeof(const char * ),nmodels+1);
103 for(i=0;i<nmodels;++i) AFF_STRUCT[i+1]= &geotypename_elst[(MED_NAME_SIZE+1)*i];
104 type_geo = (med_geometry_type*)(geotype_elst)-1;
105 nb_geo = nmodels;
106 AFF = AFF_STRUCT;
107 break;
108
109 }
110
111
112 for (k=1;k<=nb_geo;k++) {
113
114 /* Combien de séquences (PDT,NOR) a lire */
115 nbpdtnor = ncstp;
116 if (nbpdtnor < 1 ) continue;
117
118 for (j=0;j<nbpdtnor;j++) {
119
120 if ( MEDfieldComputingStepMeshInfo(fid, nomcha, j+1, &numdt, &numo,
121 &dt, &meshnumdt, &meshnumit) < 0 ) {
122 MESSAGE("Erreur a l'appel de MEDfieldComputingStepMeshInfo : ");
123 EXIT_IF(NULL == NULL,NULL,NULL);
124 }
125
126 if ( (nprofile = MEDfieldnProfile(fid,nomcha,numdt,numo,entite,type_geo[k],
127 pflname,locname ) ) < 0 ) {
128 MESSAGE("Erreur a la demande du nombre de profils referencés par le champ : ");
129 SSCRUTE(nomcha);
130 ISCRUTE(numdt); ISCRUTE(numo);
131 ISCRUTE_int(entite);ISCRUTE_int(type_geo[k]);
132 SSCRUTE(AFF_ENT[(int)entite]);SSCRUTE(AFF[k]);
133 EXIT_IF(NULL == NULL,NULL,NULL);
134 };
135
136
137 for (l=0;l<nprofile;l++) {
138
139 if ( (nval = MEDfieldnValueWithProfile(fid, nomcha, numdt, numo, entite, type_geo[k],
140 l+1, USER_MODE, pflname, &pflsize,
141 locname, &ngauss) ) < 0 ) {
142 MESSAGE("Erreur a la lecture du nombre de valeurs du champ : ");
143 SSCRUTE(nomcha);ISCRUTE(numdt);ISCRUTE(numo);
144 ISCRUTE_int(entite);ISCRUTE_int(type_geo[k]);
146 EXIT_IF(NULL == NULL,NULL,NULL);
147 };
148
149 /* printf("\n +Pas de Temps n."IFORMAT" (%f) [%s], n. d'ordre "IFORMAT", avec "IFORMAT" valeur(s) par entité.\n",numdt,dt,dtunit,numo,ngauss); */
150 /* printf("\t- Il y a "IFORMAT" entités qui portent des valeurs en mode %i. Chaque entite %s\ */
151 /* de type geometrique %s associes au profile |%s| a "IFORMAT" valeurs associées \n", */
152 /* nval,USER_MODE,AFF_ENT[(int)entite],AFF[k],pflname,ngauss); */
153
154 /*Lecture des valeurs du champ */
155 switch(typcha) {
156 case MED_FLOAT64: medtype_size=sizeof(med_float64); break;
157 case MED_FLOAT32: medtype_size=sizeof(med_float32); break;
158 case MED_INT32 : medtype_size=sizeof(med_int32 ); break;
159 case MED_INT64 : medtype_size=sizeof(med_int64 );
160 break;
161 case MED_INT : medtype_size=sizeof(med_int) ; break;
162 default:
163 MESSAGE("Erreur a la lecture du type de champ : ");
164 ISCRUTE_int(typcha);
165 EXIT_IF(NULL == NULL,NULL,NULL);
166 }
167
168 val = (unsigned char*) calloc(ncomp*nval*ngauss,medtype_size);
169 EXIT_IF(val == NULL,"L'appel de calloc a échoué ",NULL);
170
171 if (MEDfieldValueWithProfileRd(fid, nomcha, numdt, numo, entite,type_geo[k],
172 USER_MODE, pflname, stockage, MED_ALL_CONSTITUENT, val) < 0 ) {
173 MESSAGE("Erreur a la lecture des valeurs du champ : ");
174 SSCRUTE(nomcha);ISCRUTE_int(entite);ISCRUTE_int(type_geo[k]);
175 ISCRUTE(numdt);ISCRUTE(numo);
176 EXIT_IF(NULL == NULL,NULL,NULL);
177 }
178
179 strncpy(&_getNBR[MED_FIELD_GRP_SIZE],nomcha,MED_NAME_SIZE+1);
180 _sizeNbr = MED_FIELD_GRP_SIZE+strlen(nomcha);
181 _getNBR[_sizeNbr]='/';++_sizeNbr;
182 MED_ERR_EXIT_IF(_MEDgetComputationStepName(MED_SORT_DTIT,numdt,numo,&_getNBR[_sizeNbr])<0,
183 MED_ERR_CALL,MED_ERR_API,"_MEDgetEntityGeoTypeName");
184 _sizeNbr += 2*MED_MAX_PARA;
185 _getNBR[_sizeNbr]='/';++_sizeNbr;
186 MED_ERR_EXIT_IF(_MEDgetFieldEntityGeoTypeName(fid,_entitygeotypename,entite,type_geo[k])<0,
187 MED_ERR_CALL,MED_ERR_API,"_MEDgetFieldEntityGeoTypeName");
188 strncpy(&_getNBR[_sizeNbr],_entitygeotypename,2*MED_TAILLE_NOM_ENTITE+2);
189 _sizeNbr += strlen(_entitygeotypename);
190 _getNBR[_sizeNbr]='/';++_sizeNbr;
191 if ( strlen(pflname) )
192 strncpy(_profilename,pflname,MED_NAME_SIZE+1);
193 else
194 strncpy(_profilename,MED_NO_PROFILE_INTERNAL,MED_NAME_SIZE+1);
195 strncpy(&_getNBR[_sizeNbr],_profilename,MED_NAME_SIZE+1);
196 _sizeNbr += strlen(_profilename);
197
198 /* SSCRUTE(_getNBR); */
199 MED_ERR_EXIT_IF(_MEDattributeNumRdByName( fid, _getNBR, MED_NOM_NBR, MED_INTERNAL_INT, (unsigned char *) &_nentFromField) <0,
200 MED_ERR_CALL,MED_ERR_API,"_MEDattributeStringRdByName");
201 /* ISCRUTE_int(_nentFromField); */
202
203 EXIT_IF( H5Gmove(fid, _pathi, _pathtmp ) < 0,"Switch to ",_pathtmp);
204 /* Nous sommes dans une boucle sur les champs :
205 On récupère donc les champs en cours de transformation dans _pathtmp
206 et on les replace ds _pathi pour y travailler.
207 */
208 _datasetexist=H5Lexists( fid, _pathf, H5P_DEFAULT );
209 if (_datasetexist ) { EXIT_IF( (H5Gmove(fid, _pathf, _pathi ) < 0) ,"Switch to ",_pathi); }
210
211 /* Création du champ destination */
212 /* ATTENTION appel de MAJ_version avec fid,num
213 et non juste fid --> futures procédures de MAJ_330_... */
214 /* MAJ_version(fid); */
215 MAJ_version_num(fid,3,3,0);
216
217 /* Ajout du champ au nouveau format dans le _pathi */
218 /* Le champ peut déjà avoir été crée s'il y a plusieurs étapes de calcul */
219 MEDfileObjectExist(fid,MED_FIELD,nomcha,&_fieldexist);
220 if (!_fieldexist) {
221 MED_ERR_EXIT_IF( MEDfieldCr(fid,nomcha,typcha,ncomp,comp,unit,dtunit,nommaa ) < 0,
223 }
224
225 MEDfileObjectExist(fid,MED_MESH,nommaa,&_meshexist);
226 if (_meshexist) {
227 if ( (_nentFromMesh = MEDmeshnEntity( fid, nommaa, meshnumdt, meshnumit, entite, type_geo[k],
228 meddatatype, MED_NODAL, &changement, &transformation )
229 ) < 0 )
230 if ( (_nentFromMesh = MEDmeshnEntity( fid, nommaa, meshnumdt, meshnumit, entite, type_geo[k],
231 meddatatype, MED_DESCENDING, &changement, &transformation )
232 ) < 0 ) {
233 MESSAGE("Erreur a la lecture du nombre total d'entités supports au champ : ");
234 SSCRUTE(nomcha); ISCRUTE(numdt); ISCRUTE(numo);
235 SSCRUTE(nommaa); ISCRUTE(meshnumdt); ISCRUTE(meshnumit);
236 ISCRUTE_int(entite);ISCRUTE_int(type_geo[k]);
237 SSCRUTE(AFF_ENT[(int)entite]);SSCRUTE(AFF[k]);
238 EXIT_IF(_nentFromMesh < 0, NULL,NULL);
239 }
240 MED_ERR_EXIT_IF ( _nentFromMesh != _nentFromField, MED_ERR_INVALID, MED_ERR_ATTRIBUTE,
241 "Le nombre global d'entités support au champ ne correspond pas au nombre d'entitées"
242 " du maillage associé !" );
243 _nent = _nentFromMesh;
244 /* ISCRUTE_int(_nentFromMesh); */
245
246 } else {
247 _nent = _nentFromField;
248 fprintf(stdout," ... Le maillage [%s] associé au champ n'est pas local,"
249 " utilisation du champ pour déterminer le nbre global d'entités [%s] : "IFORMAT" ...\n",
250 nommaa,_entitygeotypename,_nent);
251 }
252
253
254 MED_ERR_EXIT_IF( MEDfieldValueWithProfileWr(fid, nomcha ,numdt, numo , dt,
255 entite, type_geo[k], USER_MODE, pflname,
256 locname, stockage, MED_ALL_CONSTITUENT,
257 _nent, (unsigned char*) val) < 0,
259
260 MED_ERR_EXIT_IF( MEDfieldComputingStepMeshWr(fid, nomcha, numdt, numo, meshnumdt, meshnumit ) < 0,
262
263
264 EXIT_IF( H5Gmove(fid, _pathi , _pathf ) < 0,"Switch to ",_pathf);
265 EXIT_IF( H5Gmove(fid, _pathtmp, _pathi ) < 0,"Switch to ",_pathi);
266
267 if ( val ) {free(val);val = NULL;}
268
269 MAJ_version_num(fid,3,2,1);
270 fprintf(stdout," ... Normalisation des données de type entier effectuée...\n");
271
272 } /* fin for sur les différents profils */
273 } /* fin for sur les étapes de calcul */
274 } /* fin for sur les types géométriques de maille */
275
276 free(AFF_STRUCT);
277 return ret;
278}
279
280
281
283{
284 med_err ret=0,lret=0;
285 med_field_type typcha;
286 char nomcha [MED_NAME_SIZE+1]="";
287 char meshname [MED_NAME_SIZE+1]="";
288 char dtunit [MED_SNAME_SIZE+1]="";
289 char *comp= NULL, *unit= NULL;
290 med_int ncomp,ncha;
291 med_int ncstp=0;
292 med_bool local=MED_FALSE;
293 htri_t _datasetexist;
295 char _pathf[(MED_FIELD_GRP_SIZE+1+MED_NAME_SIZE+1)+2*MED_MAX_PARA+1] = "/CHA_/";
296 char _pathtmp[MED_FIELD_GRP_SIZE+3]="/CHA__/";
297 int i=0,_num=0;
298 /* char _cstpname[2*MED_MAX_PARA+1]=""; */
299 med_int _nmodels=0;
301
302 med_geometry_type * geotype_elst;
303 char * geotypename_elst;
304
306 char _elementname[MED_NAME_SIZE+1]="";
307 med_int _elementdim=0;
308 char _supportmeshname[MED_NAME_SIZE+1]="";
310 med_int _nnode=0;
311 med_int _ncell=0;
312 med_geometry_type _geocelltype=MED_NONE;
313 char _geocelltypename[MED_SNAME_SIZE+1]="";
314 med_int _nconstantattribute=0;
315 med_bool _anyprofile=MED_FALSE;
316 med_int _nvariableattribute=0;
317
318 MAJ_version_num(fid,3,2,1);
319
320 _nmodels = MEDnStructElement(fid);
321 EXIT_IF(_nmodels < 0,"lors de la lecture du nombre d'éléments de structure",NULL);
322
323 /* nmailles_elst = (med_int *) malloc(_nmodels*sizeof(med_int)); */
324 geotype_elst = (med_geometry_type *) malloc(_nmodels*sizeof(med_geometry_type));
325 geotypename_elst = (char *) malloc(_nmodels*sizeof(char)*(MED_NAME_SIZE+1));
326
327 for (i=0; i < _nmodels; i++) {
328 ret= MEDstructElementInfo(fid, i+1, &geotypename_elst[i*(MED_NAME_SIZE+1)], &geotype_elst[i],
329 &_elementdim, _supportmeshname,
330 &_entitytype, &_nnode, &_ncell, &_geocelltype,
331 &_nconstantattribute, &_anyprofile, &_nvariableattribute );
332 EXIT_IF(ret < 0,"lors de la demande d'information sur les éléments de structure",NULL);
333
334 }
335
336 /* combien de champs dans le fichier */
337 ncha = MEDnField(fid);
338 EXIT_IF(ncha < 0,"lors de la lecture du nombre de champs",NULL);
339
340 /* MAJ des champs */
341 for (i=0;i<ncha;i++) {
342
343 /* Lecture du nombre de composantes */
344 ncomp = MEDfieldnComponent(fid,i+1);
345 if (ncomp < 0) {
346 MESSAGE("Erreur à la lecture du nombre de composantes : "); ISCRUTE(ncomp);
347 exit(1);
348 }
349
350 /* Lecture du type du champ, des noms des composantes et du nom de l'unité*/
351 comp = (char*) malloc(ncomp*MED_SNAME_SIZE+1);
352 EXIT_IF(comp == NULL,NULL,NULL);
353 unit = (char*) malloc(ncomp*MED_SNAME_SIZE+1);
354 EXIT_IF(unit == NULL,NULL,NULL);
355
356 ret = MEDfieldInfo(fid,i+1,nomcha,meshname,&local,&typcha,comp,unit,dtunit,&ncstp);
358
359 if ( (typcha != MED_INT32) && (typcha != MED_INT64) ) goto CONT;
360
361 fprintf(stdout," >>> Normalisation du champ [%s] \n",nomcha);
362
363 /* champs aux noeuds */
364 lret = getFieldsOn(fid, meshname, _nmodels, geotype_elst,geotypename_elst,
365 nomcha, dtunit, typcha, ncomp, comp, unit, MED_NODE, mode_coo, ncstp);
366
367 /* champs sur les elements et aux points de Gauss */
368 if (lret == 0) lret = getFieldsOn(fid, meshname, _nmodels, geotype_elst, geotypename_elst,
369 nomcha, dtunit, typcha, ncomp, comp, unit, MED_CELL, mode_coo, ncstp);
370 else { MESSAGE("Erreur à la lecture des champs aux noeuds "); ret = -1; continue;}
371
372 if (lret == 0) lret = getFieldsOn(fid, meshname, _nmodels, geotype_elst, geotypename_elst,
373 nomcha, dtunit, typcha, ncomp, comp, unit, MED_DESCENDING_FACE, mode_coo, ncstp);
374 else { MESSAGE("Erreur à la lecture des champs aux mailles "); ret = -1; continue;}
375
376 if (lret == 0) lret = getFieldsOn(fid, meshname, _nmodels, geotype_elst, geotypename_elst,
377 nomcha, dtunit, typcha, ncomp, comp, unit, MED_DESCENDING_EDGE, mode_coo, ncstp);
378 else {MESSAGE("Erreur à la lecture des champs aux faces "); ret = -1; continue;}
379
380 if (lret == 0) lret = getFieldsOn(fid, meshname, _nmodels, geotype_elst, geotypename_elst,
381 nomcha, dtunit, typcha, ncomp, comp, unit, MED_NODE_ELEMENT,mode_coo, ncstp);
382 else {MESSAGE("Erreur a la lecture des champs aux aretes "); ret = -1; continue;}
383
384 if (lret != 0) {MESSAGE("Erreur a la lecture des champs aux noeuds des mailles "); ret = -1;};
385
386 if (_nmodels)
387 lret = getFieldsOn(fid, meshname, _nmodels, geotype_elst,geotypename_elst,
388 nomcha, dtunit, typcha, ncomp, comp, unit, MED_STRUCT_ELEMENT,mode_coo, ncstp);
389 if (lret != 0) {MESSAGE("Erreur a la lecture des champs aux éléments de sructure "); ret = -1;};
390
391 /*A ce stade _pathf contient les champs au nouveau format */
392 /*A ce stade _pathi contient les champs initiaux */
393 strncpy(&_pathi[MED_FIELD_GRP_SIZE] ,nomcha,MED_NAME_SIZE+1);
394 strncpy(&_pathf[MED_FIELD_GRP_SIZE+1],nomcha,MED_NAME_SIZE+1);
395
396 EXIT_IF( (H5Ldelete(fid, _pathi , H5P_DEFAULT) < 0) ,"Delete " ,_pathi);
397 /* if ( H5Ldelete(fid, _pathi , H5P_DEFAULT) < 0) H5Eprint(stderr); */
398 EXIT_IF( (H5Gmove (fid, _pathf , _pathi ) < 0) ,"Moving ",_pathf);
399 /* if (H5Gmove (fid, _pathf , _pathi ) < 0) H5Eprint(stdout); */
400
401 fprintf(stdout," >>> Normalisation du champ [%s] : ... OK ... \n",nomcha);
402
403 strncpy(_pathi,MED_FIELD_GRP,MED_FIELD_GRP_SIZE+1 );
404 strncpy(_pathf,"/CHA_/" ,MED_FIELD_GRP_SIZE+1 +1);
405
406 CONT:
407
408 free(comp);
409 free(unit);
410 /* MAJ_version_num(fid,3,2,1); */
411 }
412
413 _datasetexist=H5Lexists( fid, _pathf, H5P_DEFAULT );
414 if (_datasetexist ) {
415 /* EXIT_IF( (H5Ldelete(fid,_pathi, H5P_DEFAULT) < 0) ,"Delete ",_pathi); */
416 /* EXIT_IF( (H5Gmove(fid, _pathf, _pathi ) < 0) ,"Switch to ",_pathf); */
417 EXIT_IF( (H5Ldelete(fid,_pathf, H5P_DEFAULT) < 0) ,"Delete ",_pathf);
418 }
419 free(geotype_elst);
420 free(geotypename_elst);
421
422 /* _MEDobjetsOuverts(fid); */
423
424}
#define USER_MODE
void MAJ_320_330_champs(med_idt fid)
med_err getFieldsOn(med_idt fid, const char *const nommaa, med_int nmodels, const med_geometry_type *geotype_elst, const char *geotypename_elst, const char *const nomcha, const char *const dtunit, const med_field_type typcha, const med_int ncomp, const char *const comp, const char *const unit, const med_entity_type entite, const med_switch_mode stockage, const med_int ncstp)
void MAJ_version_num(med_idt fid, const int majeur, const int mineur, const int release)
Definition MAJ_version.c:23
MEDC_EXPORT med_int MEDnField(const med_idt fid)
Cette fonction permet de lire le nombre de champs dans un fichier.
Definition MEDnField.c:35
MEDC_EXPORT med_err MEDfieldComputingStepMeshInfo(const med_idt fid, const char *const fieldname, const int csit, med_int *const numdt, med_int *const numit, med_float *const dt, med_int *const meshnumdt, med_int *const meshnumit)
Cette fonction permet de lire les informations caractérisant une étape de calcul : numéro de pas de t...
MEDC_EXPORT med_err MEDfieldValueWithProfileRd(const med_idt fid, const char *const fieldname, const med_int numdt, const med_int numit, const med_entity_type entitype, const med_geometry_type geotype, const med_storage_mode storagemode, const char *const profilename, const med_switch_mode switchmode, const med_int componentselect, unsigned char *const value)
Cette fonction permet de lire les valeurs d'un champ définies sur des entités d'un maillage pour une ...
MEDC_EXPORT med_err MEDfieldCr(const med_idt fid, const char *const fieldname, const med_field_type fieldtype, const med_int ncomponent, const char *const componentname, const char *const componentunit, const char *const dtunit, const char *const meshname)
Cette fonction crée un champ dans un fichier.
Definition MEDfieldCr.c:44
MEDC_EXPORT med_int MEDfieldnValueWithProfile(const med_idt fid, const char *const fieldname, const med_int numdt, const med_int numit, const med_entity_type entitype, const med_geometry_type geotype, const int profileit, const med_storage_mode storagemode, char *const profilename, med_int *const profilesize, char *const localizationname, med_int *const nintegrationpoint)
Cette fonction permet de lire le nombre de valeurs à lire dans un champ pour une étape de calcul,...
MEDC_EXPORT med_err MEDfieldComputingStepMeshWr(const med_idt fid, const char *const fieldname, const med_int numdt, const med_int numit, const med_int meshnumdt, const med_int meshnumit)
Cette fonction permet de définir l'étape de calcul ( meshnumdit , meshnumit ) à utiliser pour le mail...
MEDC_EXPORT med_int MEDfieldnProfile(const med_idt fid, const char *const fieldname, const med_int numdt, const med_int numit, const med_entity_type enttype, const med_geometry_type geotype, char *const defaultprofilename, char *const defaultlocalizationname)
Cette fonction permet de lire le nombre de profils référencés dans un champ pour une étape de calcul,...
MEDC_EXPORT med_int MEDfieldnComponent(const med_idt fid, const int ind)
Cette fonction lit le nombre de composantes d'un champ.
MEDC_EXPORT med_err MEDfieldValueWithProfileWr(const med_idt fid, const char *const fieldname, const med_int numdt, const med_int numit, const med_float dt, const med_entity_type entitype, const med_geometry_type geotype, const med_storage_mode storagemode, const char *const profilename, const char *const localizationname, const med_switch_mode switchmode, const med_int componentselect, const med_int nentity, const unsigned char *const value)
Cette fonction permet d'écrire les valeurs d'un champ définies sur des entités d'un maillage pour une...
MEDC_EXPORT med_err MEDfieldInfo(const med_idt fid, const int ind, char *const fieldname, char *const meshname, med_bool *const localmesh, med_field_type *const fieldtype, char *const componentname, char *const componentunit, char *const dtunit, med_int *const ncstp)
Cette fonction permet de lire les informations concernant le champ d'indice ind .
MEDC_EXPORT med_err MEDfileObjectExist(const med_idt fid, const med_class medclass, const char *const objectname, med_bool *const objectexist)
Interroge le fichier fid pour tester l'existence de l'objet objectname de type medclass.
MEDC_EXPORT med_int MEDmeshnEntity(const med_idt fid, const char *const meshname, const med_int numdt, const med_int numit, const med_entity_type entitype, const med_geometry_type geotype, const med_data_type datatype, const med_connectivity_mode cmode, med_bool *const changement, med_bool *const transformation)
Cette routine permet de lire le nombre d'entités dans un maillage pour une étape de calcul donnée.
MEDC_EXPORT med_int MEDnStructElement(const med_idt fid)
Cette routine renvoie le nombre de modèles d'éléments de structure.
MEDC_EXPORT med_err MEDstructElementInfo(const med_idt fid, const int mit, char *const modelname, med_geometry_type *const mgeotype, med_int *const modeldim, char *const supportmeshname, med_entity_type *const sentitytype, med_int *const snnode, med_int *const sncell, med_geometry_type *const sgeotype, med_int *const nconstantattribute, med_bool *const anyprofile, med_int *const nvariableattribute)
Cette routine décrit les caractéristiques d'un modèle d'élément de structure par itération.
#define MED_NAME_SIZE
Definition med.h:81
med_switch_mode
Definition med.h:96
@ MED_NO_INTERLACE
Definition med.h:98
int med_geometry_type
Definition med.h:194
#define MED_SNAME_SIZE
Definition med.h:82
med_bool
Definition med.h:260
@ MED_FALSE
Definition med.h:260
med_data_type
Definition med.h:149
@ MED_CONNECTIVITY
Definition med.h:149
@ MED_COORDINATE
Definition med.h:149
MEDC_EXPORT med_geometry_type MED_GET_EDGE_GEOMETRY_TYPE[MED_N_EDGE_FIXED_GEO+2]
#define MED_NO_PROFILE_INTERNAL
Definition med.h:290
MEDC_EXPORT const char *const MED_GET_ENTITY_TYPENAME[MED_N_ENTITY_TYPES+2]
int32_t med_int32
Definition med.h:334
med_field_type
Definition med.h:165
@ MED_INT
Definition med.h:170
@ MED_INT64
Definition med.h:169
@ MED_INT32
Definition med.h:168
@ MED_FLOAT64
Definition med.h:166
@ MED_FLOAT32
Definition med.h:167
MEDC_EXPORT const char *const MED_GET_CELL_GEOMETRY_TYPENAME[MED_N_CELL_FIXED_GEO+2]
#define MED_MAX_PARA
Definition med.h:76
@ MED_SORT_DTIT
Definition med.h:300
@ MED_FIELD
Definition med.h:188
@ MED_MESH
Definition med.h:188
#define MED_ALL_CONSTITUENT
Definition med.h:293
MEDC_EXPORT const char *const MED_GET_FACE_GEOMETRY_TYPENAME[MED_N_FACE_FIXED_GEO+2]
double med_float64
Definition med.h:328
MEDC_EXPORT const char * MED_GET_NODE_GEOMETRY_TYPENAME[MED_N_NODE_FIXED_GEO+2]
int med_int
Definition med.h:333
#define MED_N_NODE_FIXED_GEO
Definition med.h:251
#define MED_NONE
Definition med.h:231
@ MED_INTERNAL_INT
Definition med.h:158
MEDC_EXPORT med_geometry_type MED_GET_NODE_GEOMETRY_TYPE[MED_N_NODE_FIXED_GEO+2]
med_entity_type
Definition med.h:143
@ MED_NODE
Definition med.h:143
@ MED_UNDEF_ENTITY_TYPE
Definition med.h:145
@ MED_CELL
Definition med.h:143
@ MED_NODE_ELEMENT
Definition med.h:144
@ MED_DESCENDING_FACE
Definition med.h:143
@ MED_STRUCT_ELEMENT
Definition med.h:144
@ MED_DESCENDING_EDGE
Definition med.h:143
MEDC_EXPORT med_geometry_type MED_GET_FACE_GEOMETRY_TYPE[MED_N_FACE_FIXED_GEO+2]
#define MED_N_FACE_FIXED_GEO
Definition med.h:243
double med_float
Definition med.h:327
hsize_t med_size
Definition med.h:320
#define MED_N_EDGE_FIXED_GEO
Definition med.h:247
herr_t med_err
Definition med.h:323
#define MED_N_CELL_FIXED_GEO
Definition med.h:239
float med_float32
Definition med.h:330
int64_t med_int64
Definition med.h:335
MEDC_EXPORT const char * MED_GET_EDGE_GEOMETRY_TYPENAME[MED_N_EDGE_FIXED_GEO+2]
MEDC_EXPORT med_geometry_type MED_GET_CELL_GEOMETRY_TYPE[MED_N_CELL_FIXED_GEO+2]
hid_t med_idt
Definition med.h:322
@ MED_NODAL
Definition med.h:255
@ MED_DESCENDING
Definition med.h:255
#define MED_ERR_CALL
Definition med_err.h:48
#define MED_ERR_FIELD
Definition med_err.h:91
#define MED_ERR_INVALID
Definition med_err.h:40
#define MED_ERR_ACCESS
Definition med_err.h:31
#define MED_ERR_ATTRIBUTE
Definition med_err.h:100
#define MED_ERR_CREATE
Definition med_err.h:27
#define MED_ERR_API
Definition med_err.h:111
#define MED_ERR_WRITE
Definition med_err.h:29
MEDC_EXPORT med_err _MEDattributeNumRdByName(med_idt pid, const char *const path, const char *const attname, const med_internal_type type, unsigned char *const val)
MEDC_EXPORT med_err _MEDgetComputationStepName(const med_sorting_type sortingtype, const med_int numdt, const med_int numit, char *const datagroupname)
MEDC_EXPORT med_err _MEDgetFieldEntityGeoTypeName(med_idt fid, char *const entitygeotypename, const med_entity_type entitytype, const med_geometry_type geotype)
#define MED_TAILLE_NOM_ENTITE
Definition med_outils.h:38
#define MED_FIELD_GRP
Definition med_outils.h:169
#define MED_FIELD_GRP_SIZE
Definition med_outils.h:170
#define MED_NOM_NBR
Definition med_outils.h:40
#define EXIT_IF(expression, message, arg)
Definition med_utils.h:343
#define SSCRUTE(chaine)
Definition med_utils.h:323
#define MED_ERR_EXIT_IF(expression, r1, r2, arg)
Definition med_utils.h:356
#define MESSAGE(chaine)
Definition med_utils.h:324
#define ISCRUTE(entier)
Definition med_utils.h:313
#define IFORMAT
Definition med_utils.h:145
#define ISCRUTE_int(entier)
Definition med_utils.h:314