ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/microstructure/src/main.cpp
Revision: 1107
Committed: Thu Nov 10 23:31:05 2022 UTC (2 years, 7 months ago) by francois
File size: 42961 byte(s)
Log Message:
correction bug importation des resultats aster (partie non integré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 francois 1094 MAGIC_PARAMETRE_APPLICATION p11(11,(char*)"-type_inclusion",MAGIC_PARAMETRE_APPLICATION::INTEGER,(char*)"Type d'inclusion : Sphere [0], Cylindre [1], Ellipsoid [2], Torus [3]");
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 ghazal 1092 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 ghazal 1092
178    
179 couturad 971 PARAMETRES::generer_fichier_parametres(etude_mecanique,etude_thermique,type_generateur,type_inclusion,maillage_lin,maillage_quad,nb_couche,epaisseur_couche,app.affiche);
180     PARAMETRES::generer_script_ves(etude_mecanique,etude_thermique,type_inclusion,maillage_lin,maillage_quad,app.affiche);
181     PARAMETRES::generer_script_post_traitement(etude_mecanique,etude_thermique,type_inclusion,maillage_lin,maillage_quad,epaisseur_couche,app.affiche);
182 couturad 968 }
183    
184    
185     if(app.get_action()==21)
186     {
187 couturad 919 app.affiche((char*)"**************************************");
188     app.affiche((char*)"*** Generation de la geometrie ***");
189     app.affiche((char*)"**************************************");
190     char fichier_ves_out[500];
191     char fichier_param[500];
192     char fichier_lstparam[500];
193     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
194 couturad 968 app.recupere_parametre_string_avec_defaut(7,fichier_param,(char*)"");
195     app.recupere_parametre_string_avec_defaut(8,fichier_lstparam,(char*)"");
196 couturad 919 if (app.get_erreur()==true) return 0;
197     std::string str_fichier_ves_out = fichier_ves_out;
198     size_t found = str_fichier_ves_out.rfind((char*)".");
199     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
200     str_fichier_magic_out.append((char*)".magic");
201     if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
202     {
203     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
204     return 0;
205     }
206     if(strlen(fichier_param)>0)
207     {
208     std::vector<OT_PARAMETRES*> vector_param_geometrie;
209 couturad 964 OT_PARAMETRES* param_geometrie = new OT_PARAMETRES;
210     char message[5000];
211     if(PARAMETRES::importer_fichier_parametres(fichier_param,param_geometrie)==FAIL)
212     {
213     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
214     app.affiche(message);
215     return 1;
216     }
217     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
218     app.affiche(message);
219 couturad 919 vector_param_geometrie.push_back(param_geometrie);
220 couturad 926 MSTRUCT_VES ves;
221 couturad 919 ves.active_affichage(app.affiche);
222 couturad 961 if(ves.generer_geometrie(vector_param_geometrie)==FAIL)
223     {
224     delete param_geometrie;
225     return 1;
226     }
227 couturad 919 ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
228     delete param_geometrie;
229     }
230     else if(strlen(fichier_lstparam)>0)
231     {
232     std::vector<OT_PARAMETRES*> vector_param_geometrie;
233 couturad 964 char message[5000];
234     if(PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param_geometrie)==FAIL)
235     {
236     std::sprintf(message,"ERREUR lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
237     app.affiche(message);
238     return 1;
239     }
240     std::sprintf(message,"Lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
241     app.affiche(message);
242 couturad 926 MSTRUCT_VES ves;
243 couturad 919 ves.active_affichage(app.affiche);
244 couturad 961 if(ves.generer_geometrie(vector_param_geometrie)==FAIL)
245     {
246     std::vector<OT_PARAMETRES*>::iterator it_vector;
247     for(it_vector=vector_param_geometrie.begin();it_vector!=vector_param_geometrie.end();it_vector++)
248     {
249     delete *it_vector;
250     }
251     return 1;
252     }
253 couturad 919 ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
254     std::vector<OT_PARAMETRES*>::iterator it_vector;
255     for(it_vector=vector_param_geometrie.begin();it_vector!=vector_param_geometrie.end();it_vector++)
256     {
257     delete *it_vector;
258     }
259     }
260 couturad 964 char message[5000];
261     std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
262     app.affiche(message);
263     std::sprintf(message,"Fichier MAGIC de sortie : \033[38;5;46m%s\033[1;33m",str_fichier_magic_out.c_str());
264     app.affiche(message);
265 couturad 772 }
266 francois 756
267 couturad 968 if(app.get_action()==22)
268 couturad 772 {
269 couturad 919 app.affiche((char*)"************************************");
270     app.affiche((char*)"*** Generation des materiaux ***");
271     app.affiche((char*)"************************************");
272     char fichier_ves_in[500];
273     char fichier_ves_out[500];
274     char fichier_param[500];
275     char fichier_lstparam[500];
276 francois 1051 app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
277 couturad 919 app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
278 couturad 968 app.recupere_parametre_string_avec_defaut(7,fichier_param,(char*)"");
279     app.recupere_parametre_string_avec_defaut(8,fichier_lstparam,(char*)"");
280 couturad 919 if (app.get_erreur()==true) return 0;
281 couturad 964 char message[5000];
282     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
283     app.affiche(message);
284 couturad 919 std::string str_fichier_ves_out = fichier_ves_out;
285     size_t found = str_fichier_ves_out.rfind((char*)".");
286     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
287     str_fichier_magic_out.append((char*)".magic");
288     if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
289     {
290     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
291     return 0;
292     }
293     if(strlen(fichier_param)>0)
294     {
295     std::vector<OT_PARAMETRES*> vector_param_materiau;
296     OT_PARAMETRES* param_materiau = new OT_PARAMETRES;
297 couturad 964 char message[5000];
298     if(PARAMETRES::importer_fichier_parametres(fichier_param,param_materiau)==FAIL)
299     {
300     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
301     app.affiche(message);
302     return 1;
303     }
304     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
305     app.affiche(message);
306 couturad 919 vector_param_materiau.push_back(param_materiau);
307 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
308 couturad 919 ves.active_affichage(app.affiche);
309     ves.generer_materiau(vector_param_materiau);
310     ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
311     delete param_materiau;
312     }
313     else if(strlen(fichier_lstparam)>0)
314     {
315     std::vector<OT_PARAMETRES*> vector_param_materiau;
316 couturad 964 char message[5000];
317     if(PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param_materiau)==FAIL)
318     {
319     std::sprintf(message,"ERREUR lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
320     app.affiche(message);
321     return 1;
322     }
323     std::sprintf(message,"Lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
324     app.affiche(message);
325 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
326 couturad 919 ves.active_affichage(app.affiche);
327     ves.generer_materiau(vector_param_materiau);
328     ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
329     std::vector<OT_PARAMETRES*>::iterator it_vector;
330     for(it_vector=vector_param_materiau.begin();it_vector!=vector_param_materiau.end();it_vector++)
331     {
332     delete *it_vector;
333     }
334     }
335 couturad 964 std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
336     app.affiche(message);
337     std::sprintf(message,"Fichier MAGIC de sortie : \033[38;5;46m%s\033[1;33m",str_fichier_magic_out.c_str());
338     app.affiche(message);
339 couturad 772 }
340 couturad 919
341 couturad 968 if(app.get_action()==23)
342 couturad 919 {
343     app.affiche((char*)"********************************************");
344     app.affiche((char*)"*** Generation de la carte de taille ***");
345     app.affiche((char*)"********************************************");
346     char fichier_ves_in[500];
347     char fichier_param[500];
348 couturad 926 char fichier_ves_out[500];
349 francois 1051 app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
350 couturad 926 app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
351 francois 1051 app.recupere_parametre_string(7,fichier_param,(char*)"Fichier de parametre manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
352 couturad 919 if (app.get_erreur()==true) return 0;
353 couturad 964 char message[5000];
354     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
355     app.affiche(message);
356 couturad 919 OT_PARAMETRES* param_carte = new OT_PARAMETRES;
357 couturad 964 if(PARAMETRES::importer_fichier_parametres(fichier_param,param_carte)==FAIL)
358     {
359     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
360     app.affiche(message);
361     return 1;
362     }
363     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
364     app.affiche(message);
365 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
366 couturad 919 ves.active_affichage(app.affiche);
367     ves.generer_carte(param_carte);
368 couturad 926 ves.enregistrer(fichier_ves_out);
369 couturad 919 delete param_carte;
370 couturad 964 std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
371     app.affiche(message);
372 couturad 919 }
373    
374 couturad 968 if(app.get_action()==24)
375 couturad 919 {
376     app.affiche((char*)"**********************************");
377     app.affiche((char*)"*** Generation du maillage ***");
378     app.affiche((char*)"**********************************");
379     char fichier_ves_in[500];
380     char fichier_ves_out[500];
381     char fichier_param[500];
382     char fichier_carte[500];
383 francois 1051 app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
384 couturad 919 app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
385 francois 1051 app.recupere_parametre_string(5,fichier_carte,(char*)"Fichier de carte de taille manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
386     app.recupere_parametre_string(7,fichier_param,(char*)"Fichier de parametre manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
387 couturad 919 if (app.get_erreur()==true) return 0;
388 couturad 964 char message[5000];
389     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
390     app.affiche(message);
391     std::sprintf(message,"Fichier CARTE d'entree : \033[38;5;46m%s\033[1;33m",fichier_carte);
392     app.affiche(message);
393 couturad 919 std::string str_fichier_ves_out = fichier_ves_out;
394     size_t found = str_fichier_ves_out.rfind((char*)".");
395     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
396     str_fichier_magic_out.append((char*)".magic");
397     OT_PARAMETRES* param_maillage = new OT_PARAMETRES;
398 couturad 964 if(PARAMETRES::importer_fichier_parametres(fichier_param,param_maillage)==FAIL)
399     {
400     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
401     app.affiche(message);
402 couturad 966 delete param_maillage;
403 couturad 964 return 1;
404     }
405     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
406     app.affiche(message);
407 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
408 couturad 919 ves.active_affichage(app.affiche);
409     FCT_TAILLE_FEM_SOLUTION *carte=new FCT_TAILLE_FEM_SOLUTION(fichier_carte);
410 couturad 966 if(ves.generer_maillage(param_maillage,carte)==FAIL)
411     {
412     std::sprintf(message,"ERREUR generation du maillage : \033[38;5;46m%s\033[1;33m",fichier_param);
413     app.affiche(message);
414     delete param_maillage;
415     return 1;
416     }
417 couturad 919 ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
418     delete param_maillage;
419     delete carte;
420 couturad 964 std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
421     app.affiche(message);
422     std::sprintf(message,"Fichier MAGIC de sortie : \033[38;5;46m%s\033[1;33m",str_fichier_magic_out.c_str());
423     app.affiche(message);
424 couturad 919 }
425    
426 couturad 968 if(app.get_action()==25)
427 couturad 919 {
428     app.affiche((char*)"**************************************");
429     app.affiche((char*)"*** Generation du FEM maillage ***");
430     app.affiche((char*)"**************************************");
431     char fichier_ves_in[500];
432     char fichier_ves_out[500];
433     char fichier_param[500];
434 francois 1051 app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
435 couturad 919 app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
436 francois 1051 app.recupere_parametre_string(7,fichier_param,(char*)"Fichier de parametre manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
437 couturad 919 if (app.get_erreur()==true) return 0;
438 couturad 964 char message[5000];
439     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
440     app.affiche(message);
441 couturad 919 std::string str_fichier_ves_out = fichier_ves_out;
442     size_t found = str_fichier_ves_out.rfind((char*)".");
443     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
444     str_fichier_magic_out.append((char*)".magic");
445     OT_PARAMETRES* param_maillage = new OT_PARAMETRES;
446 couturad 964 if(PARAMETRES::importer_fichier_parametres(fichier_param,param_maillage)==FAIL)
447     {
448     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
449     app.affiche(message);
450 couturad 966 delete param_maillage;
451 couturad 964 return 1;
452     }
453     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
454     app.affiche(message);
455 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
456 couturad 919 ves.active_affichage(app.affiche);
457 couturad 966 if(ves.generer_fem_maillage(param_maillage)==FAIL)
458     {
459     std::sprintf(message,"ERREUR generation fem maillage : \033[38;5;46m%s\033[1;33m",fichier_param);
460     app.affiche(message);
461     delete param_maillage;
462     return 1;
463     }
464 couturad 919 ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
465 couturad 964 delete param_maillage;
466     std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
467     app.affiche(message);
468     std::sprintf(message,"Fichier MAGIC de sortie : \033[38;5;46m%s\033[1;33m",str_fichier_magic_out.c_str());
469     app.affiche(message);
470 couturad 919 }
471    
472 couturad 968 if(app.get_action()==26)
473 couturad 919 {
474     app.affiche((char*)"*********************************");
475     app.affiche((char*)"*** Generation de l'etude ***");
476     app.affiche((char*)"*********************************");
477     char fichier_ves_in[500];
478     char fichier_ves_out[500];
479     char fichier_param[500];
480 francois 1051 app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
481 couturad 919 app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
482 francois 1051 app.recupere_parametre_string(7,fichier_param,(char*)"Fichier de parametre manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
483 couturad 919 if (app.get_erreur()==true) return 0;
484 couturad 964 char message[5000];
485     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
486     app.affiche(message);
487 couturad 919 std::string str_fichier_ves_out = fichier_ves_out;
488     size_t found = str_fichier_ves_out.rfind((char*)".");
489     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
490     str_fichier_magic_out.append((char*)".magic");
491     OT_PARAMETRES* param_etude = new OT_PARAMETRES;
492 couturad 964 if(PARAMETRES::importer_fichier_parametres(fichier_param,param_etude)==FAIL)
493     {
494     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
495     app.affiche(message);
496     return 1;
497     }
498     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
499     app.affiche(message);
500 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
501 couturad 919 ves.active_affichage(app.affiche);
502     ves.generer_etude(param_etude);
503     ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
504     delete param_etude;
505 couturad 964 std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
506     app.affiche(message);
507     std::sprintf(message,"Fichier MAGIC de sortie : \033[38;5;46m%s\033[1;33m",str_fichier_magic_out.c_str());
508     app.affiche(message);
509 couturad 919 }
510    
511 couturad 968 if(app.get_action()==27)
512 couturad 919 {
513 couturad 968 app.affiche((char*)"********************************");
514     app.affiche((char*)"*** Generation du Calcul ***");
515     app.affiche((char*)"********************************");
516 couturad 919 char fichier_ves_in[500];
517 couturad 926 char fichier_ves_out[500];
518 couturad 919 char fichier_param[500];
519     char fichier_param_aster[500];
520 francois 1051 app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
521 couturad 919 app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
522 francois 1051 app.recupere_parametre_string(7,fichier_param,(char*)"Fichier de parametre manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
523     app.recupere_parametre_string(9,fichier_param_aster,(char*)"Fichier de parametre aster manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
524 couturad 919 if (app.get_erreur()==true) return 0;
525 couturad 964 char message[5000];
526     std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
527     app.affiche(message);
528 couturad 919 std::string str_fichier_ves_out = fichier_ves_out;
529     size_t found = str_fichier_ves_out.rfind((char*)".");
530     std::string str_fichier_magic_out = str_fichier_ves_out.substr(0,found);
531 couturad 968 std::string nom_etude = "aster_" + str_fichier_magic_out;
532 couturad 919 str_fichier_magic_out.append((char*)".magic");
533     OT_PARAMETRES* param_etude = new OT_PARAMETRES;
534 couturad 964 if(PARAMETRES::importer_fichier_parametres(fichier_param,param_etude)==FAIL)
535     {
536     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
537     app.affiche(message);
538     return 1;
539     }
540     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
541     app.affiche(message);
542 couturad 926 MSTRUCT_VES ves(fichier_ves_in);
543 couturad 919 ves.active_affichage(app.affiche);
544 couturad 968 ves.generer_calcul(param_etude,fichier_param_aster,nom_etude);
545 couturad 919 ves.enregistrer(fichier_ves_out,(char*)str_fichier_magic_out.c_str());
546     delete param_etude;
547 couturad 964 std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
548     app.affiche(message);
549     std::sprintf(message,"Fichier MAGIC de sortie : \033[38;5;46m%s\033[1;33m",str_fichier_magic_out.c_str());
550     app.affiche(message);
551 couturad 919 }
552    
553 couturad 968 if(app.get_action()==28)
554 couturad 919 {
555 couturad 968 app.affiche((char*)"*******************************************************");
556 francois 1107 app.affiche((char*)"*** Generation du post-traitement des resultats ***");
557 couturad 968 app.affiche((char*)"*******************************************************");
558 couturad 919 char fichier_ves_in[500];
559     char fichier_ves_out[500];
560     char fichier_param[500];
561     char fichier_lstparam[500];
562 couturad 968 char fichier_ves_sph[500];
563     char fichier_ves_dev[500];
564 couturad 971 char fichier_ves_lambda_x[500];
565     char fichier_ves_lambda_y[500];
566     char fichier_ves_lambda_z[500];
567 couturad 968 app.recupere_parametre_string_avec_defaut(3,fichier_ves_in,(char*)"");
568     app.recupere_parametre_string(4,fichier_ves_out,(char*)"Fichier VES de sortie manquant");
569     app.recupere_parametre_string_avec_defaut(7,fichier_param,(char*)"");
570     app.recupere_parametre_string_avec_defaut(8,fichier_lstparam,(char*)"");
571     app.recupere_parametre_string_avec_defaut(16,fichier_ves_sph,(char*)"");
572 couturad 971 app.recupere_parametre_string_avec_defaut(17,fichier_ves_dev,(char*)"");
573     app.recupere_parametre_string_avec_defaut(35,fichier_ves_lambda_x,(char*)"");
574     app.recupere_parametre_string_avec_defaut(36,fichier_ves_lambda_y,(char*)"");
575     app.recupere_parametre_string_avec_defaut(37,fichier_ves_lambda_z,(char*)"");
576 couturad 919 if (app.get_erreur()==true) return 0;
577 couturad 964 char message[5000];
578 couturad 968 std::sprintf(message,"Fichier VES d'entree : \033[38;5;46m%s\033[1;33m",fichier_ves_in);
579 couturad 964 app.affiche(message);
580 couturad 919 if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
581     {
582     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
583     return 0;
584     }
585 couturad 968 if((strlen(fichier_ves_sph)>0 && strlen(fichier_ves_dev)==0) || (strlen(fichier_ves_sph)==0 && strlen(fichier_ves_dev)>0))
586     {
587     app.affiche_erreur((char*)"-ves_sph ET -ves_dev, OU rien");
588     return 0;
589     }
590 couturad 919 if(strlen(fichier_param)>0)
591     {
592 couturad 968 std::vector<OT_PARAMETRES*> vector_param_analyse;
593     OT_PARAMETRES* param_analyse = new OT_PARAMETRES;
594 couturad 964 char message[5000];
595 couturad 968 if(PARAMETRES::importer_fichier_parametres(fichier_param,param_analyse)==FAIL)
596 couturad 964 {
597     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
598     app.affiche(message);
599     return 1;
600     }
601     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
602     app.affiche(message);
603 couturad 971 vector_param_analyse.push_back(param_analyse);
604     if(strlen(fichier_ves_lambda_x)>0 && strlen(fichier_ves_lambda_y)>0 && strlen(fichier_ves_lambda_z)>0)
605 couturad 968 {
606 couturad 971 MSTRUCT_VES_FILE ves_lambda_x;
607     ves_lambda_x.ouvrir(fichier_ves_lambda_x);
608     MSTRUCT_VES_FILE ves_lambda_y;
609     ves_lambda_y.ouvrir(fichier_ves_lambda_y);
610     MSTRUCT_VES_FILE ves_lambda_z;
611     ves_lambda_z.ouvrir(fichier_ves_lambda_z);
612     MSTRUCT_VES ves;
613     ves.active_affichage(app.affiche);
614     ves.generer_post_traitement(vector_param_analyse,&ves_lambda_x,&ves_lambda_y,&ves_lambda_z);
615     ves.enregistrer(fichier_ves_out);
616     }
617     else if(strlen(fichier_ves_sph)>0 && strlen(fichier_ves_dev)>0)
618     {
619 couturad 968 MSTRUCT_VES_FILE ves_sph;
620     ves_sph.ouvrir(fichier_ves_sph);
621     MSTRUCT_VES_FILE ves_dev;
622     ves_dev.ouvrir(fichier_ves_dev);
623     MSTRUCT_VES ves;
624     ves.active_affichage(app.affiche);
625     ves.generer_post_traitement(vector_param_analyse,&ves_sph,&ves_dev);
626     ves.enregistrer(fichier_ves_out);
627     }
628     else
629     {
630     MSTRUCT_VES ves(fichier_ves_in);
631     ves.active_affichage(app.affiche);
632     ves.generer_post_traitement(vector_param_analyse);
633     ves.enregistrer(fichier_ves_out);
634     }
635     delete param_analyse;
636 couturad 919 }
637     else if(strlen(fichier_lstparam)>0)
638     {
639 couturad 968 std::vector<OT_PARAMETRES*> vector_param_analyse;
640 couturad 964 char message[5000];
641 couturad 968 if(PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param_analyse)==FAIL)
642 couturad 964 {
643     std::sprintf(message,"ERREUR lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
644     app.affiche(message);
645     return 1;
646     }
647     std::sprintf(message,"Lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
648     app.affiche(message);
649 couturad 971 if(strlen(fichier_ves_lambda_x)>0 && strlen(fichier_ves_lambda_y)>0 && strlen(fichier_ves_lambda_z)>0)
650 couturad 968 {
651 couturad 971 MSTRUCT_VES_FILE ves_lambda_x;
652     ves_lambda_x.ouvrir(fichier_ves_lambda_x);
653     MSTRUCT_VES_FILE ves_lambda_y;
654     ves_lambda_y.ouvrir(fichier_ves_lambda_y);
655     MSTRUCT_VES_FILE ves_lambda_z;
656     ves_lambda_z.ouvrir(fichier_ves_lambda_z);
657     MSTRUCT_VES ves;
658     ves.active_affichage(app.affiche);
659     ves.generer_post_traitement(vector_param_analyse,&ves_lambda_x,&ves_lambda_y,&ves_lambda_z);
660     ves.enregistrer(fichier_ves_out);
661     }
662     else if(strlen(fichier_ves_sph)>0 && strlen(fichier_ves_dev)>0)
663     {
664 couturad 968 MSTRUCT_VES_FILE ves_sph;
665     ves_sph.ouvrir(fichier_ves_sph);
666     MSTRUCT_VES_FILE ves_dev;
667     ves_dev.ouvrir(fichier_ves_dev);
668     MSTRUCT_VES ves;
669     ves.active_affichage(app.affiche);
670     ves.generer_post_traitement(vector_param_analyse,&ves_sph,&ves_dev);
671     ves.enregistrer(fichier_ves_out);
672     }
673     else
674     {
675     MSTRUCT_VES ves(fichier_ves_in);
676     ves.active_affichage(app.affiche);
677     ves.generer_post_traitement(vector_param_analyse);
678     ves.enregistrer(fichier_ves_out);
679     }
680 couturad 919 std::vector<OT_PARAMETRES*>::iterator it_vector;
681 couturad 968 for(it_vector=vector_param_analyse.begin();it_vector!=vector_param_analyse.end();it_vector++)
682 couturad 919 {
683     delete *it_vector;
684     }
685     }
686 couturad 968 std::sprintf(message,"Fichier VES de sortie : \033[38;5;46m%s\033[1;33m",fichier_ves_out);
687     app.affiche(message);
688 couturad 919 }
689    
690 couturad 968 if(app.get_action()==29)
691 couturad 919 {
692 couturad 968 app.affiche((char*)"**************************************");
693     app.affiche((char*)"*** Cumule des post-traitement ***");
694     app.affiche((char*)"**************************************");
695 couturad 927 char fichier_param[500];
696     char fichier_lstparam[500];
697 couturad 968 char fichier_lst_ves[500];
698 couturad 927 char dossier_resultat[500];
699 couturad 968 app.recupere_parametre_string_avec_defaut(7,fichier_param,(char*)"");
700     app.recupere_parametre_string_avec_defaut(8,fichier_lstparam,(char*)"");
701     app.recupere_parametre_string(18,fichier_lst_ves,(char*)"Liste de VES");
702     app.recupere_parametre_string_avec_defaut(6,dossier_resultat,(char*)"");
703 couturad 927 if (app.get_erreur()==true) return 0;
704 couturad 964 char message[5000];
705 couturad 968 std::sprintf(message,"Liste de fichier VES : \033[38;5;46m%s\033[1;33m",fichier_lst_ves);
706 couturad 964 app.affiche(message);
707     std::sprintf(message,"Dossier de resultat : \033[38;5;46m%s\033[1;33m",dossier_resultat);
708     app.affiche(message);
709 couturad 927 if(strlen(fichier_param)>0 && strlen(fichier_lstparam)>0)
710     {
711     app.affiche_erreur((char*)"Une seule valeur pour -param OU -lstparam doit etre fournie");
712     return 0;
713     }
714     if(strlen(fichier_param)>0)
715     {
716     std::vector<OT_PARAMETRES*> vector_param;
717     OT_PARAMETRES* param = new OT_PARAMETRES;
718 couturad 964 char message[5000];
719     if(PARAMETRES::importer_fichier_parametres(fichier_param,param)==FAIL)
720     {
721     std::sprintf(message,"ERREUR lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
722     app.affiche(message);
723     return 1;
724     }
725     std::sprintf(message,"Lecture du fichier de parametre : \033[38;5;46m%s\033[1;33m",fichier_param);
726     app.affiche(message);
727 couturad 927 vector_param.push_back(param);
728     MSTRUCT_VER ver;
729     ver.active_affichage(app.affiche);
730 couturad 968 ver.cumuler_post_traitement(fichier_lst_ves,vector_param,dossier_resultat,true);
731 couturad 927 delete param;
732     }
733     else if(strlen(fichier_lstparam)>0)
734     {
735     std::vector<OT_PARAMETRES*> vector_param;
736 couturad 964 char message[5000];
737     if(PARAMETRES::importer_fichier_liste_parametres(fichier_lstparam,vector_param)==FAIL)
738     {
739     std::sprintf(message,"ERREUR lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
740     app.affiche(message);
741     return 1;
742     }
743     std::sprintf(message,"Lecture du fichier de liste de parametres : \033[38;5;46m%s\033[1;33m",fichier_lstparam);
744     app.affiche(message);
745 couturad 927 MSTRUCT_VER ver;
746     ver.active_affichage(app.affiche);
747 couturad 968 ver.cumuler_post_traitement(fichier_lst_ves,vector_param,dossier_resultat,true);
748 couturad 927 std::vector<OT_PARAMETRES*>::iterator it_vector;
749     for(it_vector=vector_param.begin();it_vector!=vector_param.end();it_vector++)
750     {
751     delete *it_vector;
752     }
753     }
754     }
755    
756 couturad 933 if(app.get_action()==30)
757     {
758 couturad 968 app.affiche((char*)"***************************");
759     app.affiche((char*)"*** AFFICHE CONTENU ***");
760     app.affiche((char*)"***************************");
761 couturad 933 char fichier_ves_in[500];
762 francois 1051 app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
763 couturad 933 if (app.get_erreur()==true) return 0;
764 couturad 968 MSTRUCT_VES_FILE ves_file;
765     ves_file.ouvrir(fichier_ves_in);
766     ves_file.affiche_contenu(app.affiche);
767 couturad 933 }
768 couturad 934
769     if(app.get_action()==31)
770     {
771 couturad 968 #ifdef ALL_OCC
772     app.affiche((char*)"********************************************************************");
773     app.affiche((char*)"*** Exportation de la triangulation STL de la microstructure ***");
774     app.affiche((char*)"********************************************************************");
775     char fichier_ves_in[500];
776     char fichier_magic_out[500];
777     double eps;
778 francois 1051 app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
779 couturad 968 app.recupere_parametre_string(2,fichier_magic_out,(char*)"Fichier MAGIC de sortie manquant");
780     app.recupere_parametre_double_avec_defaut(19,eps,0.001);
781 couturad 934 if (app.get_erreur()==true) return 0;
782 couturad 968 MSTRUCT_VES ves(fichier_ves_in);
783     MG_GESTIONNAIRE* gest = ves.get_mg_gestionnaire();
784     MG_GEOMETRIE* mggeo = ves.get_mg_geometrie();
785     OCC_IMPORT occ_import;
786     MG_MAILLAGE* tristl = occ_import.importer_triangulation_V2017(*gest,mggeo,eps);
787     gest->enregistrer(fichier_magic_out);
788     #endif
789     }
790 francois 947
791     if(app.get_action()==32)
792     {
793     app.affiche((char*)"***********************************************");
794 couturad 968 app.affiche((char*)"*** EXPORT DU MAILLAGE AU FORMAT ABAQUS ***");
795     app.affiche((char*)"***********************************************");
796     char fichier_ves_in[500];
797     char dossier[500];
798 francois 1051 app.recupere_parametre_string(3,fichier_ves_in,(char*)"Fichier VES de entrant manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
799 couturad 968 app.recupere_parametre_string(6,dossier,(char*)"Dossier de resultats");
800     if (app.get_erreur()==true) return 0;
801     MSTRUCT_VES ves(fichier_ves_in);
802     ves.exporter_maillage_abaqus(dossier);
803     }
804    
805 francois 980 if(app.get_action()==34)
806 couturad 968 {
807     app.affiche((char*)"***********************************************");
808 francois 947 app.affiche((char*)"*** GENERATION D'UN POLYCRISTAL ***");
809     app.affiche((char*)"***********************************************");
810     char fichier_magic[1000];
811     char fichier_param[1000];
812     bool creeparam;
813 francois 980 app.recupere_parametre_bool_avec_defaut(33,creeparam,false);
814 francois 1022 bool exportpoint;
815     app.recupere_parametre_bool_avec_defaut(40,exportpoint,false);
816 francois 1045 bool analyse;
817     app.recupere_parametre_bool_avec_defaut(41,analyse,false);
818 francois 947 if (app.get_erreur()==true) return 0;
819     if (creeparam)
820 couturad 968 {
821 francois 1022 app.recupere_parametre_string(7,fichier_param,(char*)"Fichier de parametre manquant");
822     if (app.get_erreur()==true) return 0;
823 couturad 968 MSTRUCT_GENERATEUR_POLYCRISTAUX gen;
824     gen.active_affichage(app.affiche);
825 francois 1027 gen.cree_param(fichier_param,argv[0]);
826 couturad 968 }
827 francois 1022 else if (exportpoint)
828 couturad 968 {
829 francois 1022 app.affiche((char*)"\nExportation des points de germe des cristaux");
830     char fichier_export[1000];
831 francois 1051 app.recupere_parametre_string(1,fichier_magic,(char*)"Fichier d'entrée manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
832 francois 1022 app.recupere_parametre_string(2,fichier_export,(char*)"Fichier de sortie manquant");
833     if (app.get_erreur()==true) return 0;
834     MSTRUCT_GENERATEUR_POLYCRISTAUX gen(fichier_magic,fichier_export);
835    
836     }
837 francois 1045 else if (analyse)
838     {
839     app.affiche((char*)"\nAnalyse des résultats de calculs des polycristaux ");
840     char fichier_param[1000];
841 francois 1051 app.recupere_parametre_string(7,fichier_param,(char*)"Fichier de parametre manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
842 francois 1045 if (app.get_erreur()==true) return 0;
843     MSTRUCT_POLY_ANALYSE_RESULTAT ana(fichier_param);
844     int nblu=ana.lire();
845     char mess[2000];
846     sprintf(mess," Nombre de résultats lus = %d",nblu);
847     app.affiche(mess);
848     int nbessai=ana.ident();
849     sprintf(mess," Nombre d'essai différents dans le fichier résultat = %d",nbessai);
850     app.affiche(mess);
851     for (int i=0;i<nbessai;i++)
852     {
853 francois 1071 sprintf(mess," Essai %d = %d echantillons avec %d cristaux et avec un calcul de degre %d",i+1,ana.get_nbechantillon(i),ana.get_nbcristauxechantillon(i),ana.get_degreechantillon(i));
854 francois 1045 app.affiche(mess);
855     if (ana.get_nbechantillon(i)>1)
856     {
857     app.affiche((char*)" Génération des graphiques");
858     ana.execute(i);
859     }
860     }
861    
862     }
863 francois 1022 else
864     {
865 francois 1051 app.recupere_parametre_string(7,fichier_param,(char*)"Fichier de parametre manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
866 francois 947 app.recupere_parametre_string(2,fichier_magic,(char*)"Fichier de sortie manquant");
867     if (app.get_erreur()==true) return 0;
868     MSTRUCT_GENERATEUR_POLYCRISTAUX gen(fichier_param);
869     gen.active_affichage(app.affiche);
870     gen.genere(fichier_magic);
871 couturad 968 }
872 francois 947 }
873 couturad 934
874 couturad 997
875     if(app.get_action()==38)
876     {
877     app.affiche((char*)"**********************************");
878     app.affiche((char*)"*** COMPRESSER HISTOGRAMME ***");
879     app.affiche((char*)"**********************************");
880     char fichier_in[1000];
881     char fichier_out[1000];
882     double largeur;
883 francois 1051 app.recupere_parametre_string(1,fichier_in,(char*)"Fichier (.txt) in manquant",MAGIC_APPLICATION::VERIFFICHIEREXISTE);
884 couturad 997 app.recupere_parametre_string(2,fichier_out,(char*)"Fichier (.txt) out manquant");
885     app.recupere_parametre_double(39,largeur,(char*)"Largeur de colonne manquante");
886     if (app.get_erreur()==true) return 0;
887     std::ifstream ifs;
888     OT_HISTOGRAMME histo_in;
889     char message[5000];
890     std::sprintf(message,"Lecture du fichier in : \033[38;5;46m%s\033[1;33m",fichier_in);
891     app.affiche(message);
892     histo_in.ouvrir_txt(fichier_in);
893     std::sprintf(message,"Histogramme in : largeur colonne = %lf, %li colonnes",histo_in.get_largeur_colonne(),histo_in.get_nb_colonne());
894     app.affiche(message);
895     OT_HISTOGRAMME histo_out(largeur,histo_in);
896     std::sprintf(message,"Histogramme out : largeur colonne = %lf, %li colonnes",histo_out.get_largeur_colonne(),histo_out.get_nb_colonne());
897     app.affiche(message);
898     std::sprintf(message,"Ecriture du fichier out : \033[38;5;46m%s\033[1;33m",fichier_out);
899     app.affiche(message);
900     std::ofstream of_histo(fichier_out,std::ios::out|std::ios::trunc);
901     histo_out.exporter(of_histo);
902     }
903    
904    
905 francois 756 app.affiche((char*)"Fin");
906     return 0;
907     }
908    
909    
910    
911     #pragma package(smart_init)