ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/app/microstructure/src/main.cpp
Revision: 1131
Committed: Fri Feb 2 16:59:49 2024 UTC (16 months, 1 week ago) by ghazal
File size: 50303 byte(s)
Log Message:
Microstructure par decoupage disponible

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