ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/microstructure/src/main.cpp
Revision: 1027
Committed: Thu Jun 27 15:30:41 2019 UTC (5 years, 10 months ago) by francois
File size: 40800 byte(s)
Log Message:
amelioration des scripts pour l'étude des polycristaux.

File Contents

# User Rev Content
1 francois 756 //------------------------------------------------------------
2     //------------------------------------------------------------
3     // MAGiC
4     // Jean Christophe Cuilli�re et Vincent FRANCOIS
5     // D�partement de G�nie M�canique - UQTR
6     //------------------------------------------------------------
7     // Le projet MAGIC est un projet de recherche du d�partement
8     // de g�nie m�canique de l'Universit� du Qu�bec �
9     // Trois Rivi�res
10     // Les librairies ne peuvent �tre utilis�es 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    
24    
25    
26    
27     #include "gestionversion.h"
28     #include "magic_application.h"
29 couturad 919 #include "mstruct_ves.h"
30     #include "mstruct_ver.h"
31     #include "mstruct_parametres.h"
32     #include "mg_gestionnaire.h"
33     #include "mg_file.h"
34     #include "fct_taille_fem_solution.h"
35 couturad 926 #include "mstruct_ves_file.h"
36 francois 947 #include "mstruct_generateur_polycristaux.h"
37 couturad 919 #ifdef ALL_OCC
38     #include "occ_import.h"
39     #endif
40 francois 756 //---------------------------------------------------------------------------
41    
42    
43    
44     int main(int argc,char **argv)
45     {
46     std::vector<MAGIC_PARAMETRE_APPLICATION> lst;
47 couturad 919 // p_in(1) -in
48     // p_out(2) -out
49 couturad 968 MAGIC_PARAMETRE_APPLICATION p3(3,(char*)"-ves_in",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Fichier VES d'entree");
50     MAGIC_PARAMETRE_APPLICATION p4(4,(char*)"-ves_out",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Fichier VES de sortie");
51     MAGIC_PARAMETRE_APPLICATION p5(5,(char*)"-carte",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Carte de taille FEM solution");
52     MAGIC_PARAMETRE_APPLICATION p6(6,(char*)"-dossier",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Dossier de resultat");
53     MAGIC_PARAMETRE_APPLICATION p7(7,(char*)"-param",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Fichier de parametres");
54     MAGIC_PARAMETRE_APPLICATION p8(8,(char*)"-lstparam",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Fichier listant plusieurs fichiers de parametres");
55     MAGIC_PARAMETRE_APPLICATION p9(9,(char*)"-paramaster",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Fichier de parametre aster");
56     MAGIC_PARAMETRE_APPLICATION p10(10,(char*)"-type_generateur",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Type de generateur : [0] RSA, [1] DCR");
57 couturad 993 MAGIC_PARAMETRE_APPLICATION p11(11,(char*)"-type_inclusion",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Type d'inclusion : [0] Sphere, [1] Cylindre");
58 couturad 968 MAGIC_PARAMETRE_APPLICATION p12(12,(char*)"-type_maillage",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Type de maillage : [0] lineaire, [1] quadratique, [2] lineaire et quadratique");
59 couturad 971 MAGIC_PARAMETRE_APPLICATION p13(13,(char*)"-type_etude",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Type d'etude : [0] mecanique, [1] thermique, [2] mecanique et thermique");
60     MAGIC_PARAMETRE_APPLICATION p14(14,(char*)"-nb_couche_erosion",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Nombre de couche d'erosion (defaut = 0)");
61     MAGIC_PARAMETRE_APPLICATION p15(15,(char*)"-epaisseur_couche_erosion",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"Epaisseur d'une couche d'erosion (defaut = 0.02)");
62 couturad 968 MAGIC_PARAMETRE_APPLICATION p16(16,(char*)"-ves_sph",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Fichier VES chargement spherique");
63     MAGIC_PARAMETRE_APPLICATION p17(17,(char*)"-ves_dev",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Fichier VES chargement deviatorique");
64     MAGIC_PARAMETRE_APPLICATION p18(18,(char*)"-lstves",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Liste de VES");
65     MAGIC_PARAMETRE_APPLICATION p19(19,(char*)"-eps",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"Distance max entre la triangulation et la géométrie");
66     MAGIC_PARAMETRE_APPLICATION p20(20,(char*)"-creeparam",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Creer une structure de parametres");
67     MAGIC_PARAMETRE_APPLICATION p21(21,(char*)"-gen_geo",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Generer la geometrie");
68     MAGIC_PARAMETRE_APPLICATION p22(22,(char*)"-gen_mat",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Generer les materiaux");
69     MAGIC_PARAMETRE_APPLICATION p23(23,(char*)"-gen_carte",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Generer la carte de taille");
70     MAGIC_PARAMETRE_APPLICATION p24(24,(char*)"-gen_mg_maill",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Generer le MG maillage");
71     MAGIC_PARAMETRE_APPLICATION p25(25,(char*)"-gen_fem_maill",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Generer le FEM maillage");
72     MAGIC_PARAMETRE_APPLICATION p26(26,(char*)"-gen_etude",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Generer l'etude");
73     MAGIC_PARAMETRE_APPLICATION p27(27,(char*)"-gen_calcul",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Lancer la resolution numerique");
74     MAGIC_PARAMETRE_APPLICATION p28(28,(char*)"-gen_post_traitement",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Generer le post-traitement des resultats");
75     MAGIC_PARAMETRE_APPLICATION p29(29,(char*)"-cumuler_post_traitement",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Cumuler les post-traitement d'une liste de VES");
76     MAGIC_PARAMETRE_APPLICATION p30(30,(char*)"-affiche_contenu",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Affiche le contenu d'un fichier VES");
77     MAGIC_PARAMETRE_APPLICATION p31(31,(char*)"-export_tristl",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Exportation de la triangulation STL de la microstructure");
78     MAGIC_PARAMETRE_APPLICATION p32(32,(char*)"-export_maill_abaqus",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Exportation du maillage au format ABAQUS");
79     MAGIC_PARAMETRE_APPLICATION p33(33,(char*)"-creeparampoly",MAGIC_PARAMETRE_APPLICATION::BOOL,(char*)"Création d'un fichier de paramétres");
80     MAGIC_PARAMETRE_APPLICATION p34(34,(char*)"-polycristaux",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"génération d'un polycristal");
81 couturad 971 MAGIC_PARAMETRE_APPLICATION p35(35,(char*)"-ves_lambda_x",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Fichier VES lambda x");
82     MAGIC_PARAMETRE_APPLICATION p36(36,(char*)"-ves_lambda_y",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Fichier VES lambda y");
83     MAGIC_PARAMETRE_APPLICATION p37(37,(char*)"-ves_lambda_z",MAGIC_PARAMETRE_APPLICATION::STRING,(char*)"Fichier VES lambda z");
84 couturad 997 MAGIC_PARAMETRE_APPLICATION p38(38,(char*)"-compress_histo",MAGIC_PARAMETRE_APPLICATION::ACTION,(char*)"Compresser un fichier histogramme (.txt) selon une largeur de colonne");
85     MAGIC_PARAMETRE_APPLICATION p39(39,(char*)"-largeur",MAGIC_PARAMETRE_APPLICATION::DOUBLE,(char*)"Largeur de colonne");
86 francois 1022 MAGIC_PARAMETRE_APPLICATION p40(40,(char*)"-exportpoint",MAGIC_PARAMETRE_APPLICATION::BOOL,(char*)"Exportation des points qui ont généré les cristaux");
87 couturad 951
88 couturad 968 p20.ajouter_dependance(10);p20.ajouter_dependance(11);p20.ajouter_dependance(12);p20.ajouter_dependance(13);p20.ajouter_dependance(14);p20.ajouter_dependance(15);
89     p21.ajouter_dependance(4);p21.ajouter_dependance(7);p21.ajouter_dependance(8);
90     p22.ajouter_dependance(3);p22.ajouter_dependance(4);p22.ajouter_dependance(7);p22.ajouter_dependance(8);
91     p23.ajouter_dependance(3);p23.ajouter_dependance(4);p23.ajouter_dependance(7);
92     p24.ajouter_dependance(3);p24.ajouter_dependance(4);p24.ajouter_dependance(7);p24.ajouter_dependance(5);
93     p25.ajouter_dependance(3);p25.ajouter_dependance(4);p25.ajouter_dependance(7);
94     p26.ajouter_dependance(3);p26.ajouter_dependance(4);p26.ajouter_dependance(7);
95     p27.ajouter_dependance(3);p27.ajouter_dependance(4);p27.ajouter_dependance(7);p27.ajouter_dependance(9);
96 couturad 971 p28.ajouter_dependance(3);p28.ajouter_dependance(4);p28.ajouter_dependance(7);p28.ajouter_dependance(8);p28.ajouter_dependance(16);p28.ajouter_dependance(17);p28.ajouter_dependance(35);p28.ajouter_dependance(36);p28.ajouter_dependance(37);
97 couturad 968 p29.ajouter_dependance(7);p29.ajouter_dependance(8);p29.ajouter_dependance(6);
98     p30.ajouter_dependance(3);
99     p31.ajouter_dependance(3);p31.ajouter_dependance(2);p31.ajouter_dependance(19);
100     p32.ajouter_dependance(3);p32.ajouter_dependance(6);
101 francois 1022 p34.ajouter_dependance(1);p34.ajouter_dependance(2);p34.ajouter_dependance(7);p34.ajouter_dependance(33);p34.ajouter_dependance(40);
102 couturad 997 p38.ajouter_dependance(1);p38.ajouter_dependance(2);p38.ajouter_dependance(39);
103 couturad 968
104 couturad 772 lst.push_back(p3);
105 couturad 919 lst.push_back(p4);
106     lst.push_back(p5);
107     lst.push_back(p6);
108     lst.push_back(p7);
109     lst.push_back(p8);
110     lst.push_back(p9);
111     lst.push_back(p10);
112     lst.push_back(p11);
113     lst.push_back(p12);
114     lst.push_back(p13);
115     lst.push_back(p14);
116     lst.push_back(p15);
117     lst.push_back(p16);
118     lst.push_back(p17);
119     lst.push_back(p18);
120     lst.push_back(p19);
121     lst.push_back(p20);
122     lst.push_back(p21);
123 couturad 926 lst.push_back(p22);
124     lst.push_back(p23);
125 couturad 927 lst.push_back(p24);
126     lst.push_back(p25);
127     lst.push_back(p26);
128 couturad 929 lst.push_back(p27);
129 couturad 933 lst.push_back(p28);
130 couturad 934 lst.push_back(p29);
131 francois 947 lst.push_back(p30);
132     lst.push_back(p31);
133 couturad 951 lst.push_back(p32);
134     lst.push_back(p33);
135     lst.push_back(p34);
136 couturad 971 lst.push_back(p35);
137     lst.push_back(p36);
138     lst.push_back(p37);
139 couturad 997 lst.push_back(p38);
140     lst.push_back(p39);
141 francois 1022 lst.push_back(p40);
142 francois 756
143 couturad 995 MAGIC_APPLICATION app((char*)"Homogeneisation d'une microstructure",argc,argv,lst,true,true);
144 couturad 919 if(app.get_erreur()==true) return 0;
145 couturad 968
146     if(app.get_action()==20)
147 couturad 772 {
148 couturad 968 app.affiche((char*)"***********************************************");
149     app.affiche((char*)"*** Creation des fichiers de parametres ***");
150     app.affiche((char*)"***********************************************");
151     int type_generateur;
152     int type_inclusion;
153     int type_maillage;
154     int type_etude;
155     int nb_couche;
156     double epaisseur_couche;
157     app.recupere_parametre_int(10,type_generateur,(char*)"Type de generateur manquant");
158     app.recupere_parametre_int(11,type_inclusion,(char*)"Type d'inclusion manquant");
159     app.recupere_parametre_int(12,type_maillage,(char*)"Type de maillage manquant");
160     app.recupere_parametre_int(13,type_etude,(char*)"Type d'etude manquant");
161 couturad 971 app.recupere_parametre_double_avec_defaut(15,epaisseur_couche,0.02);
162 couturad 968 app.recupere_parametre_int_avec_defaut(14,nb_couche,0);
163     if (app.get_erreur()==true) return 0;
164     bool maillage_lin=false;
165     bool maillage_quad=false;
166     if(type_maillage==0) maillage_lin=true;
167     else if(type_maillage==1) maillage_quad=true;
168     else {maillage_lin=true;maillage_quad=true;}
169 couturad 971 bool etude_mecanique=false;
170     bool etude_thermique=false;
171     if(type_etude==0) etude_mecanique=true;
172     else if(type_etude==1) etude_thermique=true;
173     else if(type_etude==2){etude_mecanique=true;etude_thermique=true;}
174     PARAMETRES::generer_fichier_parametres(etude_mecanique,etude_thermique,type_generateur,type_inclusion,maillage_lin,maillage_quad,nb_couche,epaisseur_couche,app.affiche);
175     PARAMETRES::generer_script_ves(etude_mecanique,etude_thermique,type_inclusion,maillage_lin,maillage_quad,app.affiche);
176     PARAMETRES::generer_script_post_traitement(etude_mecanique,etude_thermique,type_inclusion,maillage_lin,maillage_quad,epaisseur_couche,app.affiche);
177 couturad 968 }
178    
179    
180     if(app.get_action()==21)
181     {
182 couturad 919 app.affiche((char*)"**************************************");
183     app.affiche((char*)"*** Generation de la geometrie ***");
184     app.affiche((char*)"**************************************");
185     char fichier_ves_out[500];
186     char fichier_param[500];
187     char fichier_lstparam[500];
188     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
189 couturad 968 app.recupere_parametre_string_avec_defaut(7,fichier_param,(char*)"");
190     app.recupere_parametre_string_avec_defaut(8,fichier_lstparam,(char*)"");
191 couturad 919 if (app.get_erreur()==true) return 0;
192     std::string str_fichier_ves_out = fichier_ves_out;
193     size_t found = str_fichier_ves_out.rfind((char*)".");
194     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
195     str_fichier_magic_out.append((char*)".magic");
196     if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
197     {
198     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
199     return 0;
200     }
201     if(strlen(fichier_param)>0)
202     {
203     std::vector<OT_PARAMETRES*> vector_param_geometrie;
204 couturad 964 OT_PARAMETRES* param_geometrie = new OT_PARAMETRES;
205     char message[5000];
206     if(PARAMETRES::importer_fichier_parametres(fichier_param,param_geometrie)==FAIL)
207     {
208     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
209     app.affiche(message);
210     return 1;
211     }
212     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
213     app.affiche(message);
214 couturad 919 vector_param_geometrie.push_back(param_geometrie);
215 couturad 926 MSTRUCT_VES ves;
216 couturad 919 ves.active_affichage(app.affiche);
217 couturad 961 if(ves.generer_geometrie(vector_param_geometrie)==FAIL)
218     {
219     delete param_geometrie;
220     return 1;
221     }
222 couturad 919 ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
223     delete param_geometrie;
224     }
225     else if(strlen(fichier_lstparam)>0)
226     {
227     std::vector<OT_PARAMETRES*> vector_param_geometrie;
228 couturad 964 char message[5000];
229     if(PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param_geometrie)==FAIL)
230     {
231     std::sprintf(message,"ERREUR lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
232     app.affiche(message);
233     return 1;
234     }
235     std::sprintf(message,"Lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
236     app.affiche(message);
237 couturad 926 MSTRUCT_VES ves;
238 couturad 919 ves.active_affichage(app.affiche);
239 couturad 961 if(ves.generer_geometrie(vector_param_geometrie)==FAIL)
240     {
241     std::vector<OT_PARAMETRES*>::iterator it_vector;
242     for(it_vector=vector_param_geometrie.begin();it_vector!=vector_param_geometrie.end();it_vector++)
243     {
244     delete *it_vector;
245     }
246     return 1;
247     }
248 couturad 919 ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
249     std::vector<OT_PARAMETRES*>::iterator it_vector;
250     for(it_vector=vector_param_geometrie.begin();it_vector!=vector_param_geometrie.end();it_vector++)
251     {
252     delete *it_vector;
253     }
254     }
255 couturad 964 char message[5000];
256     std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
257     app.affiche(message);
258     std::sprintf(message,"Fichier MAGIC de sortie : \033[38;5;46m%s\033[1;33m",str_fichier_magic_out.c_str());
259     app.affiche(message);
260 couturad 772 }
261 francois 756
262 couturad 968 if(app.get_action()==22)
263 couturad 772 {
264 couturad 919 app.affiche((char*)"************************************");
265     app.affiche((char*)"*** Generation des materiaux ***");
266     app.affiche((char*)"************************************");
267     char fichier_ves_in[500];
268     char fichier_ves_out[500];
269     char fichier_param[500];
270     char fichier_lstparam[500];
271     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
272     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
273 couturad 968 app.recupere_parametre_string_avec_defaut(7,fichier_param,(char*)"");
274     app.recupere_parametre_string_avec_defaut(8,fichier_lstparam,(char*)"");
275 couturad 919 if (app.get_erreur()==true) return 0;
276 couturad 964 char message[5000];
277     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
278     app.affiche(message);
279 couturad 919 std::string str_fichier_ves_out = fichier_ves_out;
280     size_t found = str_fichier_ves_out.rfind((char*)".");
281     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
282     str_fichier_magic_out.append((char*)".magic");
283     if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
284     {
285     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
286     return 0;
287     }
288     if(strlen(fichier_param)>0)
289     {
290     std::vector<OT_PARAMETRES*> vector_param_materiau;
291     OT_PARAMETRES* param_materiau = new OT_PARAMETRES;
292 couturad 964 char message[5000];
293     if(PARAMETRES::importer_fichier_parametres(fichier_param,param_materiau)==FAIL)
294     {
295     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
296     app.affiche(message);
297     return 1;
298     }
299     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
300     app.affiche(message);
301 couturad 919 vector_param_materiau.push_back(param_materiau);
302 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
303 couturad 919 ves.active_affichage(app.affiche);
304     ves.generer_materiau(vector_param_materiau);
305     ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
306     delete param_materiau;
307     }
308     else if(strlen(fichier_lstparam)>0)
309     {
310     std::vector<OT_PARAMETRES*> vector_param_materiau;
311 couturad 964 char message[5000];
312     if(PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param_materiau)==FAIL)
313     {
314     std::sprintf(message,"ERREUR lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
315     app.affiche(message);
316     return 1;
317     }
318     std::sprintf(message,"Lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
319     app.affiche(message);
320 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
321 couturad 919 ves.active_affichage(app.affiche);
322     ves.generer_materiau(vector_param_materiau);
323     ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
324     std::vector<OT_PARAMETRES*>::iterator it_vector;
325     for(it_vector=vector_param_materiau.begin();it_vector!=vector_param_materiau.end();it_vector++)
326     {
327     delete *it_vector;
328     }
329     }
330 couturad 964 std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
331     app.affiche(message);
332     std::sprintf(message,"Fichier MAGIC de sortie : \033[38;5;46m%s\033[1;33m",str_fichier_magic_out.c_str());
333     app.affiche(message);
334 couturad 772 }
335 couturad 919
336 couturad 968 if(app.get_action()==23)
337 couturad 919 {
338     app.affiche((char*)"********************************************");
339     app.affiche((char*)"*** Generation de la carte de taille ***");
340     app.affiche((char*)"********************************************");
341     char fichier_ves_in[500];
342     char fichier_param[500];
343 couturad 926 char fichier_ves_out[500];
344 couturad 919 app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
345 couturad 926 app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
346 couturad 968 app.recupere_parametre_string(7,fichier_param,(char*)"Fichier de parametre manquant");
347 couturad 919 if (app.get_erreur()==true) return 0;
348 couturad 964 char message[5000];
349     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
350     app.affiche(message);
351 couturad 919 OT_PARAMETRES* param_carte = new OT_PARAMETRES;
352 couturad 964 if(PARAMETRES::importer_fichier_parametres(fichier_param,param_carte)==FAIL)
353     {
354     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
355     app.affiche(message);
356     return 1;
357     }
358     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
359     app.affiche(message);
360 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
361 couturad 919 ves.active_affichage(app.affiche);
362     ves.generer_carte(param_carte);
363 couturad 926 ves.enregistrer(fichier_ves_out);
364 couturad 919 delete param_carte;
365 couturad 964 std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
366     app.affiche(message);
367 couturad 919 }
368    
369 couturad 968 if(app.get_action()==24)
370 couturad 919 {
371     app.affiche((char*)"**********************************");
372     app.affiche((char*)"*** Generation du maillage ***");
373     app.affiche((char*)"**********************************");
374     char fichier_ves_in[500];
375     char fichier_ves_out[500];
376     char fichier_param[500];
377     char fichier_carte[500];
378     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
379     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
380 couturad 968 app.recupere_parametre_string(5,fichier_carte,(char*)"Fichier de carte de taille manquant");
381     app.recupere_parametre_string(7,fichier_param,(char*)"Fichier de parametre manquant");
382 couturad 919 if (app.get_erreur()==true) return 0;
383 couturad 964 char message[5000];
384     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
385     app.affiche(message);
386     std::sprintf(message,"Fichier CARTE d'entree : \033[38;5;46m%s\033[1;33m",fichier_carte);
387     app.affiche(message);
388 couturad 919 std::string str_fichier_ves_out = fichier_ves_out;
389     size_t found = str_fichier_ves_out.rfind((char*)".");
390     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
391     str_fichier_magic_out.append((char*)".magic");
392     OT_PARAMETRES* param_maillage = new OT_PARAMETRES;
393 couturad 964 if(PARAMETRES::importer_fichier_parametres(fichier_param,param_maillage)==FAIL)
394     {
395     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
396     app.affiche(message);
397 couturad 966 delete param_maillage;
398 couturad 964 return 1;
399     }
400     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
401     app.affiche(message);
402 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
403 couturad 919 ves.active_affichage(app.affiche);
404     FCT_TAILLE_FEM_SOLUTION *carte=new FCT_TAILLE_FEM_SOLUTION(fichier_carte);
405 couturad 966 if(ves.generer_maillage(param_maillage,carte)==FAIL)
406     {
407     std::sprintf(message,"ERREUR generation du maillage : \033[38;5;46m%s\033[1;33m",fichier_param);
408     app.affiche(message);
409     delete param_maillage;
410     return 1;
411     }
412 couturad 919 ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
413     delete param_maillage;
414     delete carte;
415 couturad 964 std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
416     app.affiche(message);
417     std::sprintf(message,"Fichier MAGIC de sortie : \033[38;5;46m%s\033[1;33m",str_fichier_magic_out.c_str());
418     app.affiche(message);
419 couturad 919 }
420    
421 couturad 968 if(app.get_action()==25)
422 couturad 919 {
423     app.affiche((char*)"**************************************");
424     app.affiche((char*)"*** Generation du FEM maillage ***");
425     app.affiche((char*)"**************************************");
426     char fichier_ves_in[500];
427     char fichier_ves_out[500];
428     char fichier_param[500];
429     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
430     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
431 couturad 968 app.recupere_parametre_string(7,fichier_param,(char*)"Fichier de parametre manquant");
432 couturad 919 if (app.get_erreur()==true) return 0;
433 couturad 964 char message[5000];
434     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
435     app.affiche(message);
436 couturad 919 std::string str_fichier_ves_out = fichier_ves_out;
437     size_t found = str_fichier_ves_out.rfind((char*)".");
438     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
439     str_fichier_magic_out.append((char*)".magic");
440     OT_PARAMETRES* param_maillage = new OT_PARAMETRES;
441 couturad 964 if(PARAMETRES::importer_fichier_parametres(fichier_param,param_maillage)==FAIL)
442     {
443     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
444     app.affiche(message);
445 couturad 966 delete param_maillage;
446 couturad 964 return 1;
447     }
448     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
449     app.affiche(message);
450 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
451 couturad 919 ves.active_affichage(app.affiche);
452 couturad 966 if(ves.generer_fem_maillage(param_maillage)==FAIL)
453     {
454     std::sprintf(message,"ERREUR generation fem maillage : \033[38;5;46m%s\033[1;33m",fichier_param);
455     app.affiche(message);
456     delete param_maillage;
457     return 1;
458     }
459 couturad 919 ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
460 couturad 964 delete param_maillage;
461     std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
462     app.affiche(message);
463     std::sprintf(message,"Fichier MAGIC de sortie : \033[38;5;46m%s\033[1;33m",str_fichier_magic_out.c_str());
464     app.affiche(message);
465 couturad 919 }
466    
467 couturad 968 if(app.get_action()==26)
468 couturad 919 {
469     app.affiche((char*)"*********************************");
470     app.affiche((char*)"*** Generation de l'etude ***");
471     app.affiche((char*)"*********************************");
472     char fichier_ves_in[500];
473     char fichier_ves_out[500];
474     char fichier_param[500];
475     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
476     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
477 couturad 968 app.recupere_parametre_string(7,fichier_param,(char*)"Fichier de parametre manquant");
478 couturad 919 if (app.get_erreur()==true) return 0;
479 couturad 964 char message[5000];
480     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
481     app.affiche(message);
482 couturad 919 std::string str_fichier_ves_out = fichier_ves_out;
483     size_t found = str_fichier_ves_out.rfind((char*)".");
484     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
485     str_fichier_magic_out.append((char*)".magic");
486     OT_PARAMETRES* param_etude = new OT_PARAMETRES;
487 couturad 964 if(PARAMETRES::importer_fichier_parametres(fichier_param,param_etude)==FAIL)
488     {
489     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
490     app.affiche(message);
491     return 1;
492     }
493     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
494     app.affiche(message);
495 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
496 couturad 919 ves.active_affichage(app.affiche);
497     ves.generer_etude(param_etude);
498     ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
499     delete param_etude;
500 couturad 964 std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
501     app.affiche(message);
502     std::sprintf(message,"Fichier MAGIC de sortie : \033[38;5;46m%s\033[1;33m",str_fichier_magic_out.c_str());
503     app.affiche(message);
504 couturad 919 }
505    
506 couturad 968 if(app.get_action()==27)
507 couturad 919 {
508 couturad 968 app.affiche((char*)"********************************");
509     app.affiche((char*)"*** Generation du Calcul ***");
510     app.affiche((char*)"********************************");
511 couturad 919 char fichier_ves_in[500];
512 couturad 926 char fichier_ves_out[500];
513 couturad 919 char fichier_param[500];
514     char fichier_param_aster[500];
515     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
516     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
517 couturad 968 app.recupere_parametre_string(7,fichier_param,(char*)"Fichier de parametre manquant");
518     app.recupere_parametre_string(9,fichier_param_aster,(char*)"Fichier de parametre aster manquant");
519 couturad 919 if (app.get_erreur()==true) return 0;
520 couturad 964 char message[5000];
521     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
522     app.affiche(message);
523 couturad 919 std::string str_fichier_ves_out = fichier_ves_out;
524     size_t found = str_fichier_ves_out.rfind((char*)".");
525     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
526 couturad 968 std::string nom_etude = "aster_" + str_fichier_magic_out;
527 couturad 919 str_fichier_magic_out.append((char*)".magic");
528     OT_PARAMETRES* param_etude = new OT_PARAMETRES;
529 couturad 964 if(PARAMETRES::importer_fichier_parametres(fichier_param,param_etude)==FAIL)
530     {
531     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
532     app.affiche(message);
533     return 1;
534     }
535     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
536     app.affiche(message);
537 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
538 couturad 919 ves.active_affichage(app.affiche);
539 couturad 968 ves.generer_calcul(param_etude,fichier_param_aster,nom_etude);
540 couturad 919 ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
541     delete param_etude;
542 couturad 964 std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
543     app.affiche(message);
544     std::sprintf(message,"Fichier MAGIC de sortie : \033[38;5;46m%s\033[1;33m",str_fichier_magic_out.c_str());
545     app.affiche(message);
546 couturad 919 }
547    
548 couturad 968 if(app.get_action()==28)
549 couturad 919 {
550 couturad 968 app.affiche((char*)"*******************************************************");
551     app.affiche((char*)"*** Generation du port-traitement des resultats ***");
552     app.affiche((char*)"*******************************************************");
553 couturad 919 char fichier_ves_in[500];
554     char fichier_ves_out[500];
555     char fichier_param[500];
556     char fichier_lstparam[500];
557 couturad 968 char fichier_ves_sph[500];
558     char fichier_ves_dev[500];
559 couturad 971 char fichier_ves_lambda_x[500];
560     char fichier_ves_lambda_y[500];
561     char fichier_ves_lambda_z[500];
562 couturad 968 app.recupere_parametre_string_avec_defaut(3,fichier_ves_in,(char*)"");
563     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
564     app.recupere_parametre_string_avec_defaut(7,fichier_param,(char*)"");
565     app.recupere_parametre_string_avec_defaut(8,fichier_lstparam,(char*)"");
566     app.recupere_parametre_string_avec_defaut(16,fichier_ves_sph,(char*)"");
567 couturad 971 app.recupere_parametre_string_avec_defaut(17,fichier_ves_dev,(char*)"");
568     app.recupere_parametre_string_avec_defaut(35,fichier_ves_lambda_x,(char*)"");
569     app.recupere_parametre_string_avec_defaut(36,fichier_ves_lambda_y,(char*)"");
570     app.recupere_parametre_string_avec_defaut(37,fichier_ves_lambda_z,(char*)"");
571 couturad 919 if (app.get_erreur()==true) return 0;
572 couturad 964 char message[5000];
573 couturad 968 std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
574 couturad 964 app.affiche(message);
575 couturad 919 if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
576     {
577     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
578     return 0;
579     }
580 couturad 968 if((strlen(fichier_ves_sph)>0 && strlen(fichier_ves_dev)==0) || (strlen(fichier_ves_sph)==0 && strlen(fichier_ves_dev)>0))
581     {
582     app.affiche_erreur((char*)"-ves_sph ET -ves_dev, OU rien");
583     return 0;
584     }
585 couturad 919 if(strlen(fichier_param)>0)
586     {
587 couturad 968 std::vector<OT_PARAMETRES*> vector_param_analyse;
588     OT_PARAMETRES* param_analyse = new OT_PARAMETRES;
589 couturad 964 char message[5000];
590 couturad 968 if(PARAMETRES::importer_fichier_parametres(fichier_param,param_analyse)==FAIL)
591 couturad 964 {
592     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
593     app.affiche(message);
594     return 1;
595     }
596     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
597     app.affiche(message);
598 couturad 971 vector_param_analyse.push_back(param_analyse);
599     if(strlen(fichier_ves_lambda_x)>0 && strlen(fichier_ves_lambda_y)>0 && strlen(fichier_ves_lambda_z)>0)
600 couturad 968 {
601 couturad 971 MSTRUCT_VES_FILE ves_lambda_x;
602     ves_lambda_x.ouvrir(fichier_ves_lambda_x);
603     MSTRUCT_VES_FILE ves_lambda_y;
604     ves_lambda_y.ouvrir(fichier_ves_lambda_y);
605     MSTRUCT_VES_FILE ves_lambda_z;
606     ves_lambda_z.ouvrir(fichier_ves_lambda_z);
607     MSTRUCT_VES ves;
608     ves.active_affichage(app.affiche);
609     ves.generer_post_traitement(vector_param_analyse,&ves_lambda_x,&ves_lambda_y,&ves_lambda_z);
610     ves.enregistrer(fichier_ves_out);
611     }
612     else if(strlen(fichier_ves_sph)>0 && strlen(fichier_ves_dev)>0)
613     {
614 couturad 968 MSTRUCT_VES_FILE ves_sph;
615     ves_sph.ouvrir(fichier_ves_sph);
616     MSTRUCT_VES_FILE ves_dev;
617     ves_dev.ouvrir(fichier_ves_dev);
618     MSTRUCT_VES ves;
619     ves.active_affichage(app.affiche);
620     ves.generer_post_traitement(vector_param_analyse,&ves_sph,&ves_dev);
621     ves.enregistrer(fichier_ves_out);
622     }
623     else
624     {
625     MSTRUCT_VES ves(fichier_ves_in);
626     ves.active_affichage(app.affiche);
627     ves.generer_post_traitement(vector_param_analyse);
628     ves.enregistrer(fichier_ves_out);
629     }
630     delete param_analyse;
631 couturad 919 }
632     else if(strlen(fichier_lstparam)>0)
633     {
634 couturad 968 std::vector<OT_PARAMETRES*> vector_param_analyse;
635 couturad 964 char message[5000];
636 couturad 968 if(PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param_analyse)==FAIL)
637 couturad 964 {
638     std::sprintf(message,"ERREUR lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
639     app.affiche(message);
640     return 1;
641     }
642     std::sprintf(message,"Lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
643     app.affiche(message);
644 couturad 971 if(strlen(fichier_ves_lambda_x)>0 && strlen(fichier_ves_lambda_y)>0 && strlen(fichier_ves_lambda_z)>0)
645 couturad 968 {
646 couturad 971 MSTRUCT_VES_FILE ves_lambda_x;
647     ves_lambda_x.ouvrir(fichier_ves_lambda_x);
648     MSTRUCT_VES_FILE ves_lambda_y;
649     ves_lambda_y.ouvrir(fichier_ves_lambda_y);
650     MSTRUCT_VES_FILE ves_lambda_z;
651     ves_lambda_z.ouvrir(fichier_ves_lambda_z);
652     MSTRUCT_VES ves;
653     ves.active_affichage(app.affiche);
654     ves.generer_post_traitement(vector_param_analyse,&ves_lambda_x,&ves_lambda_y,&ves_lambda_z);
655     ves.enregistrer(fichier_ves_out);
656     }
657     else if(strlen(fichier_ves_sph)>0 && strlen(fichier_ves_dev)>0)
658     {
659 couturad 968 MSTRUCT_VES_FILE ves_sph;
660     ves_sph.ouvrir(fichier_ves_sph);
661     MSTRUCT_VES_FILE ves_dev;
662     ves_dev.ouvrir(fichier_ves_dev);
663     MSTRUCT_VES ves;
664     ves.active_affichage(app.affiche);
665     ves.generer_post_traitement(vector_param_analyse,&ves_sph,&ves_dev);
666     ves.enregistrer(fichier_ves_out);
667     }
668     else
669     {
670     MSTRUCT_VES ves(fichier_ves_in);
671     ves.active_affichage(app.affiche);
672     ves.generer_post_traitement(vector_param_analyse);
673     ves.enregistrer(fichier_ves_out);
674     }
675 couturad 919 std::vector<OT_PARAMETRES*>::iterator it_vector;
676 couturad 968 for(it_vector=vector_param_analyse.begin();it_vector!=vector_param_analyse.end();it_vector++)
677 couturad 919 {
678     delete *it_vector;
679     }
680     }
681 couturad 968 std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
682     app.affiche(message);
683 couturad 919 }
684    
685 couturad 968 if(app.get_action()==29)
686 couturad 919 {
687 couturad 968 app.affiche((char*)"**************************************");
688     app.affiche((char*)"*** Cumule des post-traitement ***");
689     app.affiche((char*)"**************************************");
690 couturad 927 char fichier_param[500];
691     char fichier_lstparam[500];
692 couturad 968 char fichier_lst_ves[500];
693 couturad 927 char dossier_resultat[500];
694 couturad 968 app.recupere_parametre_string_avec_defaut(7,fichier_param,(char*)"");
695     app.recupere_parametre_string_avec_defaut(8,fichier_lstparam,(char*)"");
696     app.recupere_parametre_string(18,fichier_lst_ves,(char*)"Liste de VES");
697     app.recupere_parametre_string_avec_defaut(6,dossier_resultat,(char*)"");
698 couturad 927 if (app.get_erreur()==true) return 0;
699 couturad 964 char message[5000];
700 couturad 968 std::sprintf(message,"Liste de fichier VES : \033[38;5;46m%s\033[1;33m",fichier_lst_ves);
701 couturad 964 app.affiche(message);
702     std::sprintf(message,"Dossier de resultat : \033[38;5;46m%s\033[1;33m",dossier_resultat);
703     app.affiche(message);
704 couturad 927 if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
705     {
706     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
707     return 0;
708     }
709     if(strlen(fichier_param)>0)
710     {
711     std::vector<OT_PARAMETRES*> vector_param;
712     OT_PARAMETRES* param = new OT_PARAMETRES;
713 couturad 964 char message[5000];
714     if(PARAMETRES::importer_fichier_parametres(fichier_param,param)==FAIL)
715     {
716     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
717     app.affiche(message);
718     return 1;
719     }
720     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
721     app.affiche(message);
722 couturad 927 vector_param.push_back(param);
723     MSTRUCT_VER ver;
724     ver.active_affichage(app.affiche);
725 couturad 968 ver.cumuler_post_traitement(fichier_lst_ves,vector_param,dossier_resultat,true);
726 couturad 927 delete param;
727     }
728     else if(strlen(fichier_lstparam)>0)
729     {
730     std::vector<OT_PARAMETRES*> vector_param;
731 couturad 964 char message[5000];
732     if(PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param)==FAIL)
733     {
734     std::sprintf(message,"ERREUR lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
735     app.affiche(message);
736     return 1;
737     }
738     std::sprintf(message,"Lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
739     app.affiche(message);
740 couturad 927 MSTRUCT_VER ver;
741     ver.active_affichage(app.affiche);
742 couturad 968 ver.cumuler_post_traitement(fichier_lst_ves,vector_param,dossier_resultat,true);
743 couturad 927 std::vector<OT_PARAMETRES*>::iterator it_vector;
744     for(it_vector=vector_param.begin();it_vector!=vector_param.end();it_vector++)
745     {
746     delete *it_vector;
747     }
748     }
749     }
750    
751 couturad 933 if(app.get_action()==30)
752     {
753 couturad 968 app.affiche((char*)"***************************");
754     app.affiche((char*)"*** AFFICHE CONTENU ***");
755     app.affiche((char*)"***************************");
756 couturad 933 char fichier_ves_in[500];
757     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
758     if (app.get_erreur()==true) return 0;
759 couturad 968 MSTRUCT_VES_FILE ves_file;
760     ves_file.ouvrir(fichier_ves_in);
761     ves_file.affiche_contenu(app.affiche);
762 couturad 933 }
763 couturad 934
764     if(app.get_action()==31)
765     {
766 couturad 968 #ifdef ALL_OCC
767     app.affiche((char*)"********************************************************************");
768     app.affiche((char*)"*** Exportation de la triangulation STL de la microstructure ***");
769     app.affiche((char*)"********************************************************************");
770     char fichier_ves_in[500];
771     char fichier_magic_out[500];
772     double eps;
773     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
774     app.recupere_parametre_string(2,fichier_magic_out,(char*)"Fichier MAGIC de sortie manquant");
775     app.recupere_parametre_double_avec_defaut(19,eps,0.001);
776 couturad 934 if (app.get_erreur()==true) return 0;
777 couturad 968 MSTRUCT_VES ves(fichier_ves_in);
778     MG_GESTIONNAIRE* gest = ves.get_mg_gestionnaire();
779     MG_GEOMETRIE* mggeo = ves.get_mg_geometrie();
780     OCC_IMPORT occ_import;
781     MG_MAILLAGE* tristl = occ_import.importer_triangulation_V2017(*gest,mggeo,eps);
782     gest->enregistrer(fichier_magic_out);
783     #endif
784     }
785 francois 947
786     if(app.get_action()==32)
787     {
788     app.affiche((char*)"***********************************************");
789 couturad 968 app.affiche((char*)"*** EXPORT DU MAILLAGE AU FORMAT ABAQUS ***");
790     app.affiche((char*)"***********************************************");
791     char fichier_ves_in[500];
792     char dossier[500];
793     app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant");
794     app.recupere_parametre_string(6,dossier,(char*)"Dossier de resultats");
795     if (app.get_erreur()==true) return 0;
796     MSTRUCT_VES ves(fichier_ves_in);
797     ves.exporter_maillage_abaqus(dossier);
798     }
799    
800 francois 980 if(app.get_action()==34)
801 couturad 968 {
802     app.affiche((char*)"***********************************************");
803 francois 947 app.affiche((char*)"*** GENERATION D'UN POLYCRISTAL ***");
804     app.affiche((char*)"***********************************************");
805     char fichier_magic[1000];
806     char fichier_param[1000];
807     bool creeparam;
808 francois 980 app.recupere_parametre_bool_avec_defaut(33,creeparam,false);
809 francois 1022 bool exportpoint;
810     app.recupere_parametre_bool_avec_defaut(40,exportpoint,false);
811 francois 947 if (app.get_erreur()==true) return 0;
812     if (creeparam)
813 couturad 968 {
814 francois 1022 app.recupere_parametre_string(7,fichier_param,(char*)"Fichier de parametre manquant");
815     if (app.get_erreur()==true) return 0;
816 couturad 968 MSTRUCT_GENERATEUR_POLYCRISTAUX gen;
817     gen.active_affichage(app.affiche);
818 francois 1027 gen.cree_param(fichier_param,argv[0]);
819 couturad 968 }
820 francois 1022 else if (exportpoint)
821 couturad 968 {
822 francois 1022 app.affiche((char*)"\nExportation des points de germe des cristaux");
823     char fichier_export[1000];
824     app.recupere_parametre_string(1,fichier_magic,(char*)"Fichier d'entrée manquant");
825     app.recupere_parametre_string(2,fichier_export,(char*)"Fichier de sortie manquant");
826     if (app.get_erreur()==true) return 0;
827     MSTRUCT_GENERATEUR_POLYCRISTAUX gen(fichier_magic,fichier_export);
828    
829     }
830     else
831     {
832     app.recupere_parametre_string(7,fichier_param,(char*)"Fichier de parametre manquant");
833 francois 947 app.recupere_parametre_string(2,fichier_magic,(char*)"Fichier de sortie manquant");
834     if (app.get_erreur()==true) return 0;
835     MSTRUCT_GENERATEUR_POLYCRISTAUX gen(fichier_param);
836     gen.active_affichage(app.affiche);
837     gen.genere(fichier_magic);
838 couturad 968 }
839 francois 947 }
840 couturad 934
841 couturad 997
842     if(app.get_action()==38)
843     {
844     app.affiche((char*)"**********************************");
845     app.affiche((char*)"*** COMPRESSER HISTOGRAMME ***");
846     app.affiche((char*)"**********************************");
847     char fichier_in[1000];
848     char fichier_out[1000];
849     double largeur;
850     app.recupere_parametre_string(1,fichier_in,(char*)"Fichier (.txt) in manquant");
851     app.recupere_parametre_string(2,fichier_out,(char*)"Fichier (.txt) out manquant");
852     app.recupere_parametre_double(39,largeur,(char*)"Largeur de colonne manquante");
853     if (app.get_erreur()==true) return 0;
854     std::ifstream ifs;
855     OT_HISTOGRAMME histo_in;
856     char message[5000];
857     std::sprintf(message,"Lecture du fichier in : \033[38;5;46m%s\033[1;33m",fichier_in);
858     app.affiche(message);
859     histo_in.ouvrir_txt(fichier_in);
860     std::sprintf(message,"Histogramme in : largeur colonne = %lf, %li colonnes",histo_in.get_largeur_colonne(),histo_in.get_nb_colonne());
861     app.affiche(message);
862     OT_HISTOGRAMME histo_out(largeur,histo_in);
863     std::sprintf(message,"Histogramme out : largeur colonne = %lf, %li colonnes",histo_out.get_largeur_colonne(),histo_out.get_nb_colonne());
864     app.affiche(message);
865     std::sprintf(message,"Ecriture du fichier out : \033[38;5;46m%s\033[1;33m",fichier_out);
866     app.affiche(message);
867     std::ofstream of_histo(fichier_out,std::ios::out|std::ios::trunc);
868     histo_out.exporter(of_histo);
869     }
870    
871    
872 francois 756 app.affiche((char*)"Fin");
873     return 0;
874     }
875    
876    
877    
878     #pragma package(smart_init)