ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/mailleur/src/main.cpp
Revision: 449
Committed: Tue Oct 29 12:13:27 2013 UTC (11 years, 7 months ago) by francois
File size: 20526 byte(s)
Log Message:
Affichage d'un bilan apres chaque execution de cas test et rappel de la reussite de chaque cas test a la fin du vasy general

File Contents

# User Rev Content
1 francois 283 //------------------------------------------------------------
2     //------------------------------------------------------------
3     // MAGiC
4     // Jean Christophe Cuilli�e et Vincent FRANCOIS
5     // D�artement de G�ie M�anique - UQTR
6     //------------------------------------------------------------
7     // Le projet MAGIC est un projet de recherche du d�artement
8     // de g�ie m�anique de l'Universit�du Qu�ec �
9     // Trois Rivi�es
10     // Les librairies ne peuvent �re utilis�s sans l'accord
11     // des auteurs (contact : francois@uqtr.ca)
12     //------------------------------------------------------------
13     //------------------------------------------------------------
14     //
15     // main.cpp
16     //
17     //------------------------------------------------------------
18     //------------------------------------------------------------
19     // COPYRIGHT 2000
20     // Version du 02/03/2006 �11H25
21     //------------------------------------------------------------
22     //------------------------------------------------------------
23     #include "gestionversion.h"
24     #ifdef WINDOWS_VERSION
25     #include "fenetre.h"
26     #endif
27    
28     #pragma hdrstop
29    
30 francois 432 #include "magic_application.h"
31 francois 283 #include <string.h>
32     #include "mg_file.h"
33     #include "fct_taille.h"
34     #include "mailleur0d.h"
35     #include "mailleur1d.h"
36     #include "mailleur2d.h"
37     #include "mailleur3d.h"
38     #include "mailleur_adaptatif.h"
39     #include "fct_generateur_3D.h"
40     #include "mg_export.h"
41     #include "step_import.h"
42     #include "acis_import.h"
43    
44     //---------------------------------------------------------------------------
45    
46 francois 432 int main(int argc,char **argv)
47 francois 283 {
48 francois 432 std::vector<MAGIC_PARAMETRE_APPLICATION> lst;
49     MAGIC_PARAMETRE_APPLICATION p1(3,(char*)"-carte",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Fichier de carte de taille");
50 francois 447 MAGIC_PARAMETRE_APPLICATION p2(4,(char*)"-niveauopt3d",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Limite supérieure des mailles à optimiser - Défaut 2");
51 francois 432 MAGIC_PARAMETRE_APPLICATION p3(5,(char*)"-niveau",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Dimension limite des entités à mailler - Défaut 3");
52     MAGIC_PARAMETRE_APPLICATION p5(6,(char*)"-front",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Maillage d'une géométrie par la méthode frontale - Defaut");
53     MAGIC_PARAMETRE_APPLICATION p6(7,(char*)"-adapt",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Maillage adaptatif d'une géométrie maillée");
54     MAGIC_PARAMETRE_APPLICATION p4(8,(char*)"-prioritemetrique",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"Valeur de la prise en compte de la métrique versus la qualité - Défaut 0.65");
55     MAGIC_PARAMETRE_APPLICATION p7(9,(char*)"-numgeo",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Numero de géometrie à mailler - Défaut la première");
56     MAGIC_PARAMETRE_APPLICATION p8(10,(char*)"-groupe",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Groupe topologique à mailler - Défaut pas de groupe");
57     MAGIC_PARAMETRE_APPLICATION p9(11,(char*)"-analyse",MAGIC_PARAMETRE_APPLICATION::BOOL,(char*)"Analyse de la qualité du maillage après le maillage");
58     MAGIC_PARAMETRE_APPLICATION p10(12,(char*)"-visufront",MAGIC_PARAMETRE_APPLICATION::BOOL,(char*)"Activation de la visalisation dynamique du front");
59     MAGIC_PARAMETRE_APPLICATION p11(13,(char*)"-nummai",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Numéro du maillage à adapter - Défaut le premier");
60     MAGIC_PARAMETRE_APPLICATION p12(14,(char*)"-limitadapt",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"Limite inférieure en %d'erreur pour conserver les mailles");
61 francois 447 MAGIC_PARAMETRE_APPLICATION p13(15,(char*)"-niveauopt2d",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Limite supérieure des mailles à optimiser - Défaut 5");
62 francois 283
63    
64    
65 francois 432
66     //MAGIC_PARAMETRE_APPLICATION p7(8,(char*)"-tailleoctree",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"Taille des octants par rapport à la taille souhaitée - Défaut 2.");
67     //MAGIC_PARAMETRE_APPLICATION p8(9,(char*)"-fem",MAGIC_PARAMETRE_APPLICATION::BOOL,(char*)"Création du maillage fem");
68     //MAGIC_PARAMETRE_APPLICATION p9(10,(char*)"-degre",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Degre du maillage fem - Défaut 1");
69 francois 447 p5.ajouter_dependance(1);p5.ajouter_dependance(2);p5.ajouter_dependance(3);p5.ajouter_dependance(4);p5.ajouter_dependance(5);p5.ajouter_dependance(8);p5.ajouter_dependance(9);p5.ajouter_dependance(10);p5.ajouter_dependance(11);p5.ajouter_dependance(12);p5.ajouter_dependance(15);
70 francois 432 p6.ajouter_dependance(1);p6.ajouter_dependance(2);p6.ajouter_dependance(3);p6.ajouter_dependance(11);p6.ajouter_dependance(12);p6.ajouter_dependance(13);p6.ajouter_dependance(14);
71     lst.push_back(p1);
72     lst.push_back(p2);
73     lst.push_back(p3);
74     lst.push_back(p5);
75     lst.push_back(p6);
76     lst.push_back(p4);
77     lst.push_back(p7);
78     lst.push_back(p8);
79     lst.push_back(p9);
80     lst.push_back(p10);
81     lst.push_back(p11);
82     lst.push_back(p12);
83 francois 447 lst.push_back(p13);
84 francois 432
85     MAGIC_APPLICATION app((char*)"Mailleur d'une géometrie par la méthode frontale",argc,argv,lst,true,true);
86     if (app.get_erreur()==true) return 0;
87    
88     if (app.get_action()==-1) app.change_action(6);
89    
90     if (app.get_action()==6)
91     {
92     char fichier[500];
93     char fichiersortie[500];
94     char fichiercarte[500];
95     int numgeometrie;
96     double prioritemetrique;
97     int numgroupe;
98     int niveau;
99     bool analyse;
100     bool visufront;
101 francois 447 int niveauopt3d;
102     int niveauopt2d;
103 francois 432 app.recupere_parametre_string(1,fichier,(char*)"Fichier d'entrée manquant");
104     app.recupere_parametre_string_avec_defaut(2,fichiersortie,fichier);
105     app.recupere_parametre_string(3,fichiercarte,(char*)"Fichier carte manquant");
106     app.recupere_parametre_double_avec_defaut(8,prioritemetrique,0.65);
107     app.recupere_parametre_int_avec_defaut(9,numgeometrie,0);
108     app.recupere_parametre_int_avec_defaut(10,numgroupe,0);
109     app.recupere_parametre_int_avec_defaut(5,niveau,3);
110     app.recupere_parametre_bool_avec_defaut(11,analyse,false);
111     app.recupere_parametre_bool_avec_defaut(12,visufront,false);
112 francois 447 app.recupere_parametre_int_avec_defaut(4,niveauopt3d,2);
113     app.recupere_parametre_int_avec_defaut(15,niveauopt2d,5);
114 francois 432 if (app.get_erreur()==true) return 0;
115     char message[500];
116     app.affiche((char*)"Parametre d'etude du mailleur");
117     sprintf(message," Fichier magic : %s",fichier);
118     app.affiche(message);
119     sprintf(message," Numero de geometrie : %d",numgeometrie);
120     sprintf(message," Fichier carte : %s",fichiercarte);
121     app.affiche(message);
122     sprintf(message," Parametre de metrique : %2.2f",prioritemetrique*100);
123     app.affiche(message);
124     app.affiche((char*)"Lecture du fichier M.A.G.i.C");
125     MG_FILE gest(fichier);
126     MG_GEOMETRIE* mggeo;
127     if (numgeometrie==0) mggeo=gest.get_mg_geometrie(numgeometrie); else mggeo=gest.get_mg_geometrieid(numgeometrie);
128     MG_MAILLAGE* mgmai=new MG_MAILLAGE(mggeo);
129     gest.ajouter_mg_maillage(mgmai);
130     FCT_GENERATEUR_3D<4> carte;
131     FCT_TAILLE* metrique;
132     MAILLEUR2D::priorite_metrique=prioritemetrique;
133     MG_GROUPE_TOPOLOGIQUE* mggt=NULL;
134     if (numgroupe!=0)
135     mggt=mggeo->get_mg_groupe_topologiqueid(numgroupe);
136     app.affiche((char*)"Lecture carte de taille");
137     carte.lire(fichiercarte);
138     metrique=&carte;
139     if (niveau>-1)
140 francois 283 {
141 francois 432 app.affiche((char*)"MAILLAGE 0D");
142     MAILLEUR0D m0d(mgmai,mggeo);
143     m0d.maille(mggt);
144 francois 283 }
145 francois 432 TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> lst;
146     if (mggt!=NULL)
147     {
148     int nb=mggt->get_nb();
149     for (int i=0;i<nb;i++)
150     {
151     lst.ajouter(mggt->get(i));
152     mggt->get(i)->get_topologie_sousjacente(&lst);
153     }
154     }
155     if (niveau>0)
156     {
157     app.affiche((char*)"MAILLAGE 1D");
158     int nb=mggeo->get_nb_mg_arete();
159     for (int i=0;i<nb;i++)
160     {
161     MG_ARETE* arete=mggeo->get_mg_arete(i);
162     if (mggt!=NULL)
163     if (lst.existe(arete)==0) continue;
164     char mess[100];
165     sprintf(mess," arete %d",i);
166     app.affiche(mess);
167 francois 446 MAILLEUR1D m1d(mgmai,mggeo,metrique,arete);
168 francois 432 m1d.maille(mggt);
169     }
170     }
171     if (niveau>1)
172     {
173     app.affiche((char*)"MAILLAGE 2D");
174     int nb=mggeo->get_nb_mg_face();
175     for (int i=0;i<nb;i++)
176     {
177     MG_FACE* mgface=mggeo->get_mg_face(i);
178     if (mggt!=NULL)
179     if (lst.existe(mgface)==0) continue;
180     char mess[100];
181     sprintf(mess," face %d",i);
182     app.affiche(mess);
183 francois 446 MAILLEUR2D m2d(mgmai,mggeo,metrique,mgface);
184 francois 447 m2d.change_niveau_optimisation(niveauopt2d);
185 francois 432 m2d.maille(mggt);
186     }
187     }
188     if (niveau==3)
189     {
190     app.affiche((char*)"MAILLAGE 3D");
191     int nb=mggeo->get_nb_mg_volume();
192     for (int i=0;i<nb;i++)
193     {
194     MG_VOLUME* mgvol=mggeo->get_mg_volume(i);
195     if (mggt!=NULL)
196     if (lst.existe(mgvol)==0) continue;
197 francois 446 MAILLEUR3D m3d(mgmai,mggeo,metrique,mgvol);
198 francois 432 m3d.active_affichage(app.affiche);
199 francois 447 m3d.change_niveau_optimisation(niveauopt3d);
200 francois 432 if (visufront) m3d.active_log(fichiersortie);
201     m3d.maille(mgvol);
202     if (analyse)
203     {
204     app.affiche((char*)"Analyse maillage");
205     double vol;int tab[4];
206     m3d.analyse_maillage_obtenu(vol,tab);
207     char mess[100];
208     sprintf(mess," 1) Respect de la carte de taille");
209     app.affiche(mess);
210     sprintf(mess," nombre de tetra theorique %f, nombre de tetra pratique %d ",vol,mgmai->get_nb_mg_tetra());
211     app.affiche(mess);
212     sprintf(mess," erreur : %.2f%%",(mgmai->get_nb_mg_tetra()-vol)*100./vol);
213     app.affiche(mess);
214     sprintf(mess," 2) Qualite du maillage");
215     app.affiche(mess);
216     sprintf(mess," nombre de tetra bon (qualite>0.5) : %d (%.2f%%)",tab[3],tab[3]*100./mgmai->get_nb_mg_tetra());
217     app.affiche(mess);
218     sprintf(mess," nombre de tetra acceptable (qualite>0.2) : %d (%.2f%%) ",tab[2],tab[2]*100./mgmai->get_nb_mg_tetra());
219     app.affiche(mess);
220     sprintf(mess," nombre de tetra moyen (qualite>0.1) : %d (%.2f%%) ",tab[1],tab[1]*100./mgmai->get_nb_mg_tetra());
221     app.affiche(mess);
222     sprintf(mess," nombre de tetra mauvais (qualite>0.) : %d (%.2f%%) ",tab[0],tab[0]*100./mgmai->get_nb_mg_tetra());
223     app.affiche(mess);
224     }
225     }
226     }
227     app.affiche((char*)"Enregistrement");
228 francois 449 gest.enregistrer(fichiersortie);
229 francois 432 app.affiche((char*)"Fin");
230    
231     }
232    
233     if (app.get_action()==7)
234     {
235     char fichier[500];
236     char fichiersortie[500];
237     char fichiercarte[500];
238     int nummaillage;
239     double prioritemetrique;
240     bool analyse;
241     bool visufront;
242     double limiteadapt;
243     app.recupere_parametre_string(1,fichier,(char*)"Fichier d'entrée manquant");
244     app.recupere_parametre_string_avec_defaut(2,fichiersortie,fichier);
245     app.recupere_parametre_string(3,fichiercarte,(char*)"Fichier carte manquant");
246     app.recupere_parametre_double_avec_defaut(8,prioritemetrique,0.65);
247     app.recupere_parametre_int_avec_defaut(13,nummaillage,0);
248     app.recupere_parametre_bool_avec_defaut(11,analyse,false);
249     app.recupere_parametre_bool_avec_defaut(12,visufront,false);
250     app.recupere_parametre_double(14,limiteadapt,"Valeur limite d'adaptation manquante");
251     if (app.get_erreur()==true) return 0;
252     char message[500];
253     app.affiche((char*)"Adaptation de maillage");
254     sprintf(message," Fichier magic : %s",fichier);
255     app.affiche(message);
256     printf(message," Numero de maillage : %d",nummaillage);
257     app.affiche(message);
258     sprintf(message," Carte : %s",fichiercarte);
259     app.affiche(message);
260     MG_FILE gest(fichier);
261     MG_MAILLAGE* mai;
262     if (nummaillage==0) mai=gest.get_mg_maillage(nummaillage); else mai=gest.get_mg_maillageid(nummaillage);
263     FCT_GENERATEUR_3D<4> carte;
264     FCT_TAILLE* metrique;
265     carte.lire(fichiercarte);
266     metrique=&carte;
267     MG_MAILLAGE* nvmai=new MG_MAILLAGE(mai->get_mg_geometrie());
268     gest.ajouter_mg_maillage(nvmai);
269     MAILLEUR_ADAPTATIF mesh(mai,nvmai,metrique,limiteadapt);
270     mesh.active_affichage(app.affiche);
271     if (visufront) mesh.active_log(fichier);
272     mesh.maille();
273     if (analyse)
274     {
275 francois 446 MAILLEUR3D m3d(nvmai,nvmai->get_mg_geometrie(),metrique);
276 francois 432 app.affiche((char*)"Analyse maillage");
277     double vol;int tab[4];
278     m3d.analyse_maillage_obtenu(vol,tab);
279     char mess[100];
280     sprintf(mess," 1) Respect de la carte de taille");
281     app.affiche(mess);
282     sprintf(mess," nombre de tetra theorique %f, nombre de tetra pratique %d ",vol,nvmai->get_nb_mg_tetra());
283     app.affiche(mess);
284     sprintf(mess," erreur : %.2f%%",(nvmai->get_nb_mg_tetra()-vol)*100./vol);
285     app.affiche(mess);
286     sprintf(mess," 2) Qualite du maillage");
287     app.affiche(mess);
288     sprintf(mess," nombre de tetra bon (qualite>0.5) : %d (%.2f%%)",tab[3],tab[3]*100./nvmai->get_nb_mg_tetra());
289     app.affiche(mess);
290     sprintf(mess," nombre de tetra acceptable (qualite>0.2) : %d (%.2f%%) ",tab[2],tab[2]*100./nvmai->get_nb_mg_tetra());
291     app.affiche(mess);
292     sprintf(mess," nombre de tetra moyen (qualite>0.1) : %d (%.2f%%) ",tab[1],tab[1]*100./nvmai->get_nb_mg_tetra());
293     app.affiche(mess);
294     sprintf(mess," nombre de tetra mauvais (qualite>0.) : %d (%.2f%%) ",tab[0],tab[0]*100./nvmai->get_nb_mg_tetra());
295     app.affiche(mess);
296     }
297     app.affiche((char*)"Enregistrement");
298     gest.enregistrer(fichiersortie);
299     app.affiche((char*)"Fin");
300     }
301    
302    
303    
304     /*
305 francois 283 char fichier[1000],fichier2[1000],fichiercarte[1000];
306     int typecarte,niveau=3,numgeometrie=0,adapt=0,nummaillage=0;
307     int exportgmsh=0;
308     int visufront=0;
309     int analyse=0;
310     int diff=0;
311     int niveauopt=2;
312     int octal=0;
313     int verif=0;
314     double coef=2.;
315     double eps,dg,prioritemetrique=0.65;
316     double limiteadapt=0.25;
317     int numgroupe=0;
318     int numgeo;
319     int fem=0;
320     int degre=1;
321 francois 375 bool versioncompilee=false;
322 francois 283 for (int i=0;i<argc;i++)
323     {
324     if (strcmp(argv[i],"-magic")==0) strcpy(fichier,argv[i+1]);
325     if (strcmp(argv[i],"-typecarte")==0) typecarte=atoi(argv[i+1]);
326     if (strcmp(argv[i],"-carte")==0) strcpy(fichiercarte,argv[i+1]);
327     if (strcmp(argv[i],"-eng")==0) dg=atof(argv[i+1]);
328     if (strcmp(argv[i],"-eps")==0) eps=atof(argv[i+1]);
329     if (strcmp(argv[i],"-niveau")==0) niveau=atoi(argv[i+1]);
330     if (strcmp(argv[i],"-prioritemetrique")==0) prioritemetrique=atof(argv[i+1]);
331     if (strcmp(argv[i],"-numgeo")==0) numgeometrie=atoi(argv[i+1]);
332     if (strcmp(argv[i],"-adapt")==0) adapt=1;
333     if (strcmp(argv[i],"-nummai")==0) nummaillage=atoi(argv[i+1]);
334     if (strcmp(argv[i],"-exportgmsh")==0) exportgmsh=1;
335     if (strcmp(argv[i],"-visufront")==0) visufront=1;
336     if (strcmp(argv[i],"-analyse")==0) analyse=1;
337     if (strcmp(argv[i],"-out")==0) {
338     strcpy(fichier2,argv[i+1]);
339     diff=1;
340     }
341     if (strcmp(argv[i],"-niveauopt")==0) {
342     niveauopt=atoi(argv[i+1]);
343     }
344     if (strcmp(argv[i],"-limitadapt")==0) {
345     limiteadapt=atof(argv[i+1]);
346     }
347     if (strcmp(argv[i],"-octal")==0) octal=1;
348     if (strcmp(argv[i],"-verif")==0) verif=1;
349     if (strcmp(argv[i],"-coef")==0) coef=atof(argv[i+1]);
350     if (strcmp(argv[i],"-groupe")==0) numgroupe=atoi(argv[i+1]);
351     if (strcmp(argv[i],"-geo")==0) numgeo=atoi(argv[i+1]);
352     if (strcmp(argv[i],"-fem")==0) fem=1;
353     if (strcmp(argv[i],"-degre")==0) degre=atoi(argv[i+1]);
354 francois 375 if (strcmp(argv[i],"-version")==0) versioncompilee=true;
355 francois 283 }
356 francois 375 affiche((char*)"Mailleur MAGiC");
357     if (versioncompilee)
358     {
359     GESTIONVERSION v;
360     char version[500];
361     v.print(version);
362     affiche(version);
363     }
364 francois 283 char message[500];
365     char nomtypecarte[9][9]={"Standard","Fichier"};
366     if (adapt)
367     {
368     affiche((char*)"Adaptation de maillage");
369     sprintf(message," Fichier magic : %s",fichier);
370     affiche(message);
371     sprintf(message," Numero de maillage : %d",nummaillage);
372     affiche(message);
373     sprintf(message," Carte : %s",fichiercarte);
374     affiche(message);
375     MG_FILE gest(fichier);
376     MG_MAILLAGE* mai=gest.get_mg_maillageid(nummaillage);
377     FCT_GENERATEUR_3D<4> carte;
378     FCT_TAILLE* metrique;
379     carte.lire(fichiercarte);
380     metrique=&carte;
381     if (diff) strcpy(fichier,fichier2);
382     MG_MAILLAGE* nvmai=new MG_MAILLAGE(mai->get_mg_geometrie());
383     gest.ajouter_mg_maillage(nvmai);
384     MAILLEUR_ADAPTATIF mesh(mai,nvmai,metrique,limiteadapt);
385     mesh.active_affichage(affiche);
386     if (visufront) mesh.active_log(fichier);
387     mesh.maille();
388     if (analyse)
389     {
390     MAILLEUR3D m3d(nvmai,nvmai->get_mg_geometrie(),NULL,metrique);
391     affiche((char*)"Analyse maillage");
392 francois 424 double vol;int tab[4];
393     m3d.analyse_maillage_obtenu(vol,tab);
394 francois 283 char mess[100];
395 francois 424 sprintf(mess," 1) Respect de la carte de taille");
396     affiche(mess);
397     sprintf(mess," nombre de tetra theorique %f, nombre de tetra pratique %d ",vol,nvmai->get_nb_mg_tetra());
398     affiche(mess);
399     sprintf(mess," erreur : %.2f%%",(nvmai->get_nb_mg_tetra()-vol)*100./vol);
400     affiche(mess);
401     sprintf(mess," 2) Qualite du maillage");
402     affiche(mess);
403     sprintf(mess," nombre de tetra bon (qualite>0.5) : %d (%.2f%%)",tab[3],tab[3]*100./nvmai->get_nb_mg_tetra());
404     affiche(mess);
405     sprintf(mess," nombre de tetra acceptable (qualite>0.2) : %d (%.2f%%) ",tab[2],tab[2]*100./nvmai->get_nb_mg_tetra());
406     affiche(mess);
407     sprintf(mess," nombre de tetra moyen (qualite>0.1) : %d (%.2f%%) ",tab[1],tab[1]*100./nvmai->get_nb_mg_tetra());
408     affiche(mess);
409     sprintf(mess," nombre de tetra mauvais (qualite>0.) : %d (%.2f%%) ",tab[0],tab[0]*100./nvmai->get_nb_mg_tetra());
410     affiche(mess);
411     }
412 francois 283 affiche((char*)"Enregistrement");
413     //strcat(fichier,".magic");
414     gest.enregistrer(fichier);
415     if (exportgmsh)
416     {
417     affiche((char*)"Exportation GMSH");
418     MG_EXPORT exp;
419     exp.gmsh(mai,fichier);
420     }
421     affiche((char*)"Fin");
422     return 1;
423     }
424     if (octal)
425     {
426     sprintf(message," Fichier magic : %s",fichier);
427     affiche(message);
428     sprintf(message," Type de carte : %s",nomtypecarte[1]);
429     affiche(message);
430     sprintf(message," Fichier carte : %s",fichiercarte);
431     affiche(message);
432     affiche((char*)"Lecture carte de taille");
433     FCT_GENERATEUR_3D<4> carte;
434     carte.lire(fichiercarte);
435     affiche((char*)"Maillage");
436     MG_GESTIONNAIRE* gest;
437     MG_FILE* file=new MG_FILE(fichier);
438     if (file->get_code_de_lecture()==0)
439     {
440     delete file;
441     MG_GESTIONNAIRE* gest2=new MG_GESTIONNAIRE;
442     gest=gest2;
443     }
444     else gest=file;
445     MG_MAILLAGE* mgmai=new MG_MAILLAGE(NULL);
446     gest->ajouter_mg_maillage(mgmai);
447     MAILLEUR3D mailleur(&carte,mgmai);
448     mailleur.change_coef(coef);
449     mailleur.maille();
450     if (verif)
451     {
452     affiche((char*)"Verification");
453     MG_MAILLAGE* mgmai2=new MG_MAILLAGE(NULL);
454     gest->ajouter_mg_maillage(mgmai2);
455     mailleur.verifie_conformite_octale(mgmai,mgmai2);
456     }
457     if (fem)
458     {
459     affiche((char*)"Maillage FEM");
460     FEM_MAILLAGE* femmai=new FEM_MAILLAGE(mgmai->get_mg_geometrie(),mgmai,degre);
461     gest->ajouter_fem_maillage(femmai);
462     femmai->construire(0);
463     }
464     affiche((char*)"Enregistrement");
465     gest->enregistrer(fichier);
466     if (exportgmsh)
467     {
468     affiche((char*)"Exportation GMSH");
469     MG_EXPORT exp;
470     if (fem)
471     {
472     affiche((char*)"Maillage FEM");
473     FEM_MAILLAGE* femmai=new FEM_MAILLAGE(mgmai->get_mg_geometrie(),mgmai,degre);
474     gest->ajouter_fem_maillage(femmai);
475     femmai->construire(0);
476     } exp.gmsh(mgmai,fichier);
477     }
478     delete gest;
479     affiche((char*)"Fin");
480     return 1;
481 francois 432 }*/
482 francois 283 return 0;
483     }
484    
485    
486    
487     #pragma package(smart_init)