ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/microstructure/src/main.cpp
Revision: 1051
Committed: Mon Sep 21 21:55:10 2020 UTC (4 years, 8 months ago) by francois
File size: 42820 byte(s)
Log Message:
controle de la prsence des fichiers d'entrée

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