MAJ_21_22_maillages.c

Aller à la documentation de ce fichier.
00001 /*  This file is part of MED.
00002  *
00003  *  COPYRIGHT (C) 1999 - 2015  EDF R&D, CEA/DEN
00004  *  MED is free software: you can redistribute it and/or modify
00005  *  it under the terms of the GNU Lesser General Public License as published by
00006  *  the Free Software Foundation, either version 3 of the License, or
00007  *  (at your option) any later version.
00008  *
00009  *  MED is distributed in the hope that it will be useful,
00010  *  but WITHOUT ANY WARRANTY; without even the implied warranty of
00011  *  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
00012  *  GNU Lesser General Public License for more details.
00013  *
00014  *  You should have received a copy of the GNU Lesser General Public License
00015  *  along with MED.  If not, see <http://www.gnu.org/licenses/>.
00016  */
00017 
00018 
00019 
00020 #include "med_config.h"
00021 #include "med_outils.h"
00022 #include <string.h>
00023 
00024 /* #ifdef __cplusplus */
00025 /* } */
00026 /* #endif */
00027 
00028 #include "med21.h"
00029 #include "med_hdfi21.h"
00030 #include "MAJ_21_22.h"
00031 
00032 void MAJ_21_22_maillages(med_idt fid)
00033 {
00034   med_idt gid;
00035   med_err ret;
00036   int n,i;
00037   char nom[MED_TAILLE_NOM+1];
00038   char chemin[MED_TAILLE_MAA+MED_TAILLE_NOM+1];
00039   char description[MED_TAILLE_DESC+1] = "Maillage converti au format MED V2.2";
00040   med_int type = (med_int) MED_NON_STRUCTURE;
00041   med_int dimension;
00042   
00043   /* Lecture du nombre de maillages */
00044   n = 0;
00045   _MEDnObjets(fid,(char *) MED_MAA,&n);
00046   EXIT_IF(n < 0,"Erreur a la lecture du nombre de maillage",NULL);
00047 
00048   /* 
00049    * Mise a jour des maillages :
00050    *  - type : MED_NON_STRUCTURE
00051    *  - description : "Maillage converti au format V2.2"
00052    */
00053   for (i=0;i<n;i++) {
00054     /* on recupere le nom du maillage */
00055     ret = _MEDobjetIdentifier(fid,(char *) MED_MAA,i,nom);
00056     EXIT_IF(ret < 0,"Identification d'un maillage",NULL);
00057     fprintf(stdout,"  >>> Normalisation du maillage [%s] \n",nom);
00058 
00059     /* on accede au maillage */
00060     strcpy(chemin,MED_MAA);
00061     strcat(chemin,nom);
00062     gid = _MEDdatagroupOuvrir(fid,chemin); 
00063     EXIT_IF(gid < 0,"Accès au maillage",nom);
00064 
00065     /* lecture de la dimension du maillage */
00066     ret = _MEDattrEntierLire(gid,(char *)(MED_NOM_DIM),&dimension);
00067     EXIT_IF(ret < 0,"Lecture de la dimension du maillage",nom);
00068 
00069     /* Ecriture du type et de la description */
00070     ret = _MEDattrStringEcrire(gid,(char *)(MED_NOM_DES),MED_TAILLE_DESC,description);
00071     EXIT_IF(ret < 0,"Ecriture de la description du maillage ",nom);
00072     ret = _MEDattrEntierEcrire(gid,(char *)(MED_NOM_TYP),&type);
00073     EXIT_IF(ret < 0,"Ecriture de la dimension du maillage ",nom);
00074     
00075     /* Mise a jour des noeuds du maillage */ 
00076     MAJ_21_22_noeuds_maillage(gid,dimension);  
00077     fprintf(stdout,"  ... Normalisation des noeuds effectuée ... \n");
00078     
00079     /* Mise a jour des éléments du maillage */ 
00080     MAJ_21_22_elements_maillage(gid,dimension);  
00081     fprintf(stdout,"  ... Normalisation des éléments effectuée ... \n");
00082     
00083     /* Mise a jour des familles du maillage */
00084     MAJ_21_22_familles_maillage(gid);
00085     fprintf(stdout,"  ... Normalisation des familles effectuée ... \n");
00086     
00087     /* On ferme tout */
00088     ret = _MEDdatagroupFermer(gid);
00089     EXIT_IF(ret < 0,"Fermeture de l'accès au maillage",NULL);
00090 
00091     fprintf(stdout,"  >>> Normalisation du maillage [%s] ... OK ... \n",nom);
00092   }
00093 }

Généré le Thu Oct 8 14:26:16 2015 pour MED fichier par  doxygen 1.6.1