ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/microstructure/src/mstruct_ver.cpp
Revision: 971
Committed: Thu Sep 20 19:04:41 2018 UTC (6 years, 7 months ago) by couturad
File size: 34152 byte(s)
Log Message:
MG_EXPORT: Changement du facteur de correction dans l'application de la conductivite thermique (corr=1)
MICROSTRUCTURE: 
-> Ajout de l'etude thermique (Calcul de la conductivite thermique apparente)
-> Ajout d'une analyse des proprietes massiques (Centre de masse, moment d'inertie)

File Contents

# User Rev Content
1 couturad 919 #include "mstruct_ver.h"
2 couturad 926 #include "mstruct_ves_file.h"
3 couturad 968 #include "mstruct_analyse_champ.h"
4     #include "mstruct_analyse_orientation.h"
5     #include "mstruct_analyse_cao.h"
6 couturad 971 #include "mstruct_analyse_propriete_massique.h"
7 couturad 968 #include "mstruct_analyse_mg_maillage.h"
8     #include "mstruct_analyse_fem_maillage.h"
9     #include "mstruct_analyse_modules_elasticite.h"
10     #include "mstruct_analyse_erosion.h"
11 couturad 919
12 couturad 968 #include "mstruct_analyse_liste_champ.h"
13     #include "mstruct_analyse_liste_orientation.h"
14     #include "mstruct_analyse_liste_cao.h"
15 couturad 971 #include "mstruct_analyse_liste_propriete_massique.h"
16 couturad 968 #include "mstruct_analyse_liste_mg_maillage.h"
17     #include "mstruct_analyse_liste_fem_maillage.h"
18     #include "mstruct_analyse_liste_modules_elasticite.h"
19 couturad 971 #include "mstruct_analyse_liste_conductivite_thermique.h"
20 couturad 968
21     #include "mg_definition.h"
22     #include "mstruct_definition.h"
23     #include <string.h>
24 couturad 926 MSTRUCT_VER::MSTRUCT_VER(void)
25 couturad 919 {
26    
27     }
28    
29 couturad 926 MSTRUCT_VER::~MSTRUCT_VER(void)
30 couturad 919 {
31    
32     }
33    
34 couturad 951 void MSTRUCT_VER::active_affichage(fonction_affiche* fonc)
35 couturad 919 {
36     fonc_affiche = fonc;
37     affichageactif = 1;
38     }
39    
40 couturad 926 void MSTRUCT_VER::affiche(char* message)
41 couturad 919 {
42     if(affichageactif==1) fonc_affiche(message);
43     }
44    
45 couturad 968 int MSTRUCT_VER::cumuler_post_traitement(char* fichier_liste_ves,
46     std::vector<OT_PARAMETRES *>& vector_params_analyse,
47     char* dossier_resultat,
48     bool avec_graph)
49 couturad 927 {
50     char message[5000];
51     std::map<long,MSTRUCT_VES_FILE*> map_ves_file;
52     std::ifstream f;
53 couturad 951 f.open(fichier_liste_ves,std::ios::in);
54 couturad 927 char ligne[1000];
55     f.getline(ligne,1000);
56     long i=0;
57     while(!f.eof())
58     {
59 couturad 968 char nom_fichier_ves[1000];
60     sscanf(ligne,"%s",nom_fichier_ves);
61     if(strlen(nom_fichier_ves)==0) continue;
62 couturad 927 MSTRUCT_VES_FILE *ves_file=new MSTRUCT_VES_FILE;
63 couturad 968 if(ves_file->ouvrir(nom_fichier_ves)==FAIL) return FAIL;
64 couturad 927 map_ves_file.insert(std::pair<long,MSTRUCT_VES_FILE*>(i,ves_file));
65     i++;
66     f.getline(ligne,1000);
67     }
68     f.close();
69     long nb_ves = map_ves_file.size();
70     sprintf(message,"NB_VES : %li",nb_ves); affiche(message);
71     std::vector<OT_PARAMETRES*>::iterator it;
72     for(it=vector_params_analyse.begin();it!=vector_params_analyse.end();it++)
73     {
74     OT_PARAMETRES* param = *it;
75 couturad 968 int Type_post_traitement = (int)param->get_valeur((char*)"Type_post_traitement");
76     std::string Identifiant = param->get_nom((char*)"Identifiant");
77     if(Type_post_traitement==MSTRUCT::TYPE_POST_TRAITEMENT::POST_CHAMP ||
78     Type_post_traitement==MSTRUCT::TYPE_POST_TRAITEMENT::POST_CHAMP_NORMALISE ||
79     Type_post_traitement==MSTRUCT::TYPE_POST_TRAITEMENT::POST_CHAMP_ECART ||
80     Type_post_traitement==MSTRUCT::TYPE_POST_TRAITEMENT::POST_CHAMP_ECART_CHARGEMENT)
81 couturad 927 {
82 couturad 968 sprintf(ligne,"-> %s",Identifiant.c_str());
83     affiche(ligne);
84     int Analyse_erosion = (int)param->get_valeur((char*)"Analyse_erosion");
85     if(Analyse_erosion)
86 couturad 927 {
87 couturad 968 char nom_fichier_resultat_cumul_erosion[1000];
88     sprintf(nom_fichier_resultat_cumul_erosion,"%s/cumul_erosion_%s.txt",dossier_resultat,Identifiant.c_str());
89     std::ofstream ofstrm_cumul_erosion(nom_fichier_resultat_cumul_erosion,std::ios::out);
90     int Nb_couche = (int)param->get_valeur((char*)"Nb_couche");
91     for(int i=0;i<Nb_couche;i++)
92     {
93     char syscmd_mkdir_erosion_couche[1000];
94     sprintf(syscmd_mkdir_erosion_couche,"mkdir -p %s/c_%i",dossier_resultat,i);
95     system(syscmd_mkdir_erosion_couche);
96     std::vector<MSTRUCT_ANALYSE*> vector_analyse;
97     std::map<long,MSTRUCT_VES_FILE*>::iterator it_ves_file;
98     for(it_ves_file=map_ves_file.begin();it_ves_file!=map_ves_file.end();it_ves_file++)
99     {
100     MSTRUCT_VES_FILE *ves_file=it_ves_file->second;
101     MSTRUCT_ANALYSE_EROSION* analyse_erosion = (MSTRUCT_ANALYSE_EROSION*)ves_file->get_analyse(Identifiant);
102     vector_analyse.push_back(analyse_erosion->get_analyse(i));
103     }
104     MSTRUCT_ANALYSE_LISTE_CHAMP analyse_liste_champ(Identifiant,vector_analyse);
105     char nom_fichier_resultat_liste[1000];
106     sprintf(nom_fichier_resultat_liste,"%s/c_%i/liste_%s.txt",dossier_resultat,i,Identifiant.c_str());
107     std::ofstream ofstrm_liste(nom_fichier_resultat_liste,std::ios::out);
108     ofstrm_liste.precision(16);
109     analyse_liste_champ.exporter_liste(ofstrm_liste,true);
110     ofstrm_liste.close();
111     char nom_fichier_resultat_cumul[1000];
112     sprintf(nom_fichier_resultat_cumul,"%s/c_%i/cumul_%s.txt",dossier_resultat,i,Identifiant.c_str());
113     char prefix_graph[1000];
114     sprintf(prefix_graph,"%s/c_%i",dossier_resultat,i);
115     std::ofstream ofstrm_cumul(nom_fichier_resultat_cumul,std::ios::out);
116     ofstrm_cumul.precision(16);
117     analyse_liste_champ.exporter_cumul(ofstrm_cumul,true,avec_graph,prefix_graph);
118     ofstrm_cumul.close();
119     if(i==0) analyse_liste_champ.exporter_cumul_i(ofstrm_cumul_erosion,i,true);
120     else analyse_liste_champ.exporter_cumul_i(ofstrm_cumul_erosion,i,false);
121     }
122     ofstrm_cumul_erosion.close();
123 couturad 927 }
124 couturad 931 else
125     {
126 couturad 968 std::vector<MSTRUCT_ANALYSE*> vector_analyse;
127     std::map<long,MSTRUCT_VES_FILE*>::iterator it_ves_file;
128     for(it_ves_file=map_ves_file.begin();it_ves_file!=map_ves_file.end();it_ves_file++)
129     {
130     MSTRUCT_VES_FILE *ves_file=it_ves_file->second;
131     vector_analyse.push_back(ves_file->get_analyse(Identifiant));
132     }
133     MSTRUCT_ANALYSE_LISTE_CHAMP analyse_liste_champ(Identifiant,vector_analyse);
134     char nom_fichier_resultat_liste[1000];
135     sprintf(nom_fichier_resultat_liste,"%s/liste_%s.txt",dossier_resultat,Identifiant.c_str());
136     std::ofstream ofstrm_liste(nom_fichier_resultat_liste,std::ios::out);
137     ofstrm_liste.precision(16);
138     analyse_liste_champ.exporter_liste(ofstrm_liste,true);
139     ofstrm_liste.close();
140     char nom_fichier_resultat_cumul[1000];
141     sprintf(nom_fichier_resultat_cumul,"%s/cumul_%s.txt",dossier_resultat,Identifiant.c_str());
142     std::ofstream ofstrm_cumul(nom_fichier_resultat_cumul,std::ios::out);
143     ofstrm_cumul.precision(16);
144     analyse_liste_champ.exporter_cumul(ofstrm_cumul,true,avec_graph,dossier_resultat);
145     ofstrm_cumul.close();
146 couturad 926 }
147 couturad 919 }
148 couturad 968 else if(Type_post_traitement==MSTRUCT::TYPE_POST_TRAITEMENT::POST_ORIENTATION ||
149     Type_post_traitement==MSTRUCT::TYPE_POST_TRAITEMENT::POST_ORIENTATION_ECART)
150 couturad 919 {
151 couturad 968 sprintf(ligne,"-> %s",Identifiant.c_str());
152     affiche(ligne);
153     int Analyse_erosion = (int)param->get_valeur((char*)"Analyse_erosion");
154     if(Analyse_erosion)
155 couturad 926 {
156 couturad 968 char nom_fichier_resultat_cumul_erosion[1000];
157     sprintf(nom_fichier_resultat_cumul_erosion,"%s/cumul_erosion_%s.txt",dossier_resultat,Identifiant.c_str());
158     std::ofstream ofstrm_cumul_erosion(nom_fichier_resultat_cumul_erosion,std::ios::out);
159     int Nb_couche = (int)param->get_valeur((char*)"Nb_couche");
160     for(int i=0;i<Nb_couche;i++)
161     {
162     char syscmd_mkdir_erosion_couche[1000];
163     sprintf(syscmd_mkdir_erosion_couche,"mkdir -p %s/c_%i",dossier_resultat,i);
164     system(syscmd_mkdir_erosion_couche);
165     std::vector<MSTRUCT_ANALYSE*> vector_analyse;
166     std::map<long,MSTRUCT_VES_FILE*>::iterator it_ves_file;
167     for(it_ves_file=map_ves_file.begin();it_ves_file!=map_ves_file.end();it_ves_file++)
168     {
169     MSTRUCT_VES_FILE *ves_file=it_ves_file->second;
170     MSTRUCT_ANALYSE_EROSION* analyse_erosion = (MSTRUCT_ANALYSE_EROSION*)ves_file->get_analyse(Identifiant);
171     vector_analyse.push_back(analyse_erosion->get_analyse(i));
172     }
173     MSTRUCT_ANALYSE_LISTE_ORIENTATION analyse_liste_orientation(Identifiant,vector_analyse);
174     char nom_fichier_resultat_liste[1000];
175     sprintf(nom_fichier_resultat_liste,"%s/c_%i/liste_%s.txt",dossier_resultat,i,Identifiant.c_str());
176     std::ofstream ofstrm_liste(nom_fichier_resultat_liste,std::ios::out);
177     ofstrm_liste.precision(16);
178     analyse_liste_orientation.exporter_liste(ofstrm_liste,true);
179     ofstrm_liste.close();
180     char nom_fichier_resultat_cumul[1000];
181     sprintf(nom_fichier_resultat_cumul,"%s/c_%i/cumul_%s.txt",dossier_resultat,i,Identifiant.c_str());
182     char prefix_graph[1000];
183     sprintf(prefix_graph,"%s/c_%i",dossier_resultat,i);
184     std::ofstream ofstrm_cumul(nom_fichier_resultat_cumul,std::ios::out);
185     ofstrm_cumul.precision(16);
186     analyse_liste_orientation.exporter_cumul(ofstrm_cumul,true,avec_graph,prefix_graph);
187     ofstrm_cumul.close();
188     if(i==0) analyse_liste_orientation.exporter_cumul_i(ofstrm_cumul_erosion,i,true);
189     else analyse_liste_orientation.exporter_cumul_i(ofstrm_cumul_erosion,i,false);
190     }
191     ofstrm_cumul_erosion.close();
192 couturad 926 }
193 couturad 931 else
194 couturad 926 {
195 couturad 968 std::vector<MSTRUCT_ANALYSE*> vector_analyse;
196     std::map<long,MSTRUCT_VES_FILE*>::iterator it_ves_file;
197     for(it_ves_file=map_ves_file.begin();it_ves_file!=map_ves_file.end();it_ves_file++)
198     {
199     MSTRUCT_VES_FILE *ves_file=it_ves_file->second;
200     vector_analyse.push_back(ves_file->get_analyse(Identifiant));
201     }
202     MSTRUCT_ANALYSE_LISTE_ORIENTATION analyse_liste_orientation(Identifiant,vector_analyse);
203     char nom_fichier_resultat_liste[1000];
204     sprintf(nom_fichier_resultat_liste,"%s/liste_%s.txt",dossier_resultat,Identifiant.c_str());
205     std::ofstream ofstrm_liste(nom_fichier_resultat_liste,std::ios::out);
206     ofstrm_liste.precision(16);
207     analyse_liste_orientation.exporter_liste(ofstrm_liste,true);
208     ofstrm_liste.close();
209     char nom_fichier_resultat_cumul[1000];
210     sprintf(nom_fichier_resultat_cumul,"%s/cumul_%s.txt",dossier_resultat,Identifiant.c_str());
211     std::ofstream ofstrm_cumul(nom_fichier_resultat_cumul,std::ios::out);
212     ofstrm_cumul.precision(16);
213     analyse_liste_orientation.exporter_cumul(ofstrm_cumul,true,avec_graph,dossier_resultat);
214     ofstrm_cumul.close();
215     }
216 couturad 919 }
217 couturad 968 else if(Type_post_traitement==MSTRUCT::TYPE_POST_TRAITEMENT::POST_CAO)
218 couturad 938 {
219 couturad 968 sprintf(ligne,"-> %s",Identifiant.c_str());
220     affiche(ligne);
221     double Largeur_colonne_distribution_nb_volume = param->get_valeur((char*)"Largeur_colonne_distribution_nb_volume");
222     double Largeur_colonne_distribution_nb_forme = param->get_valeur((char*)"Largeur_colonne_distribution_nb_forme");
223     double Largeur_colonne_distribution_volume = param->get_valeur((char*)"Largeur_colonne_distribution_volume");
224     double Largeur_colonne_distribution_fraction_volumique = param->get_valeur((char*)"Largeur_colonne_distribution_fraction_volumique");
225     std::vector<MSTRUCT_ANALYSE*> vector_analyse;
226     std::map<long,MSTRUCT_VES_FILE*>::iterator it_ves_file;
227     for(it_ves_file=map_ves_file.begin();it_ves_file!=map_ves_file.end();it_ves_file++)
228 couturad 938 {
229 couturad 968 MSTRUCT_VES_FILE *ves_file=it_ves_file->second;
230     vector_analyse.push_back(ves_file->get_analyse(Identifiant));
231 couturad 938 }
232 couturad 968 MSTRUCT_ANALYSE_LISTE_CAO analyse_liste_cao(Identifiant,
233     vector_analyse,
234     Largeur_colonne_distribution_nb_forme,
235     Largeur_colonne_distribution_nb_volume,
236     Largeur_colonne_distribution_volume,
237     Largeur_colonne_distribution_fraction_volumique);
238     char nom_fichier_resultat_liste[1000];
239     sprintf(nom_fichier_resultat_liste,"%s/liste_%s.txt",dossier_resultat,Identifiant.c_str());
240     std::ofstream ofstrm_liste(nom_fichier_resultat_liste,std::ios::out);
241     ofstrm_liste.precision(16);
242     analyse_liste_cao.exporter_liste(ofstrm_liste,true);
243     ofstrm_liste.close();
244     char nom_fichier_resultat_cumul[1000];
245     sprintf(nom_fichier_resultat_cumul,"%s/cumul_%s.txt",dossier_resultat,Identifiant.c_str());
246     std::ofstream ofstrm_cumul(nom_fichier_resultat_cumul,std::ios::out);
247     ofstrm_cumul.precision(16);
248     analyse_liste_cao.exporter_cumul(ofstrm_cumul,true,avec_graph,dossier_resultat);
249     ofstrm_cumul.close();
250 couturad 938 }
251 couturad 971 else if(Type_post_traitement==MSTRUCT::TYPE_POST_TRAITEMENT::POST_PROPRIETE_MASSIQUE)
252     {
253     sprintf(ligne,"-> %s",Identifiant.c_str());
254     affiche(ligne);
255     std::vector<MSTRUCT_ANALYSE*> vector_analyse;
256     std::map<long,MSTRUCT_VES_FILE*>::iterator it_ves_file;
257     for(it_ves_file=map_ves_file.begin();it_ves_file!=map_ves_file.end();it_ves_file++)
258     {
259     MSTRUCT_VES_FILE *ves_file=it_ves_file->second;
260     vector_analyse.push_back(ves_file->get_analyse(Identifiant));
261     }
262     MSTRUCT_ANALYSE_LISTE_PROPRIETE_MASSIQUE analyse_liste_prop_mass(Identifiant,vector_analyse);
263     char nom_fichier_resultat_liste[1000];
264     sprintf(nom_fichier_resultat_liste,"%s/liste_%s.txt",dossier_resultat,Identifiant.c_str());
265     std::ofstream ofstrm_liste(nom_fichier_resultat_liste,std::ios::out);
266     ofstrm_liste.precision(16);
267     analyse_liste_prop_mass.exporter_liste(ofstrm_liste,true);
268     ofstrm_liste.close();
269     char nom_fichier_resultat_cumul[1000];
270     sprintf(nom_fichier_resultat_cumul,"%s/cumul_%s.txt",dossier_resultat,Identifiant.c_str());
271     std::ofstream ofstrm_cumul(nom_fichier_resultat_cumul,std::ios::out);
272     ofstrm_cumul.precision(16);
273     analyse_liste_prop_mass.exporter_cumul(ofstrm_cumul,true,avec_graph,dossier_resultat);
274     ofstrm_cumul.close();
275     }
276 couturad 968 else if(Type_post_traitement==MSTRUCT::TYPE_POST_TRAITEMENT::POST_MAILLAGE_MG)
277 couturad 919 {
278 couturad 968 sprintf(ligne,"-> %s",Identifiant.c_str());
279     affiche(ligne);
280     double Largeur_colonne_distribution_nb_element_2D = param->get_valeur((char*)"Largeur_colonne_distribution_nb_element_2D");
281     double Largeur_colonne_distribution_nb_element_3D = param->get_valeur((char*)"Largeur_colonne_distribution_nb_element_3D");
282     double Largeur_colonne_distribution_volume = param->get_valeur((char*)"Largeur_colonne_distribution_volume");
283     double Largeur_colonne_distribution_fraction_volumique = param->get_valeur((char*)"Largeur_colonne_distribution_fraction_volumique");
284     int Analyse_erosion = (int)param->get_valeur((char*)"Analyse_erosion");
285     if(Analyse_erosion)
286 couturad 926 {
287 couturad 968 char nom_fichier_resultat_cumul_erosion[1000];
288     sprintf(nom_fichier_resultat_cumul_erosion,"%s/cumul_erosion_%s.txt",dossier_resultat,Identifiant.c_str());
289     std::ofstream ofstrm_cumul_erosion(nom_fichier_resultat_cumul_erosion,std::ios::out);
290     int Nb_couche = (int)param->get_valeur((char*)"Nb_couche");
291     for(int i=0;i<Nb_couche;i++)
292     {
293     char syscmd_mkdir_erosion_couche[1000];
294     sprintf(syscmd_mkdir_erosion_couche,"mkdir -p %s/c_%i",dossier_resultat,i);
295     system(syscmd_mkdir_erosion_couche);
296     std::vector<MSTRUCT_ANALYSE*> vector_analyse;
297     std::map<long,MSTRUCT_VES_FILE*>::iterator it_ves_file;
298     for(it_ves_file=map_ves_file.begin();it_ves_file!=map_ves_file.end();it_ves_file++)
299     {
300     MSTRUCT_VES_FILE *ves_file=it_ves_file->second;
301     MSTRUCT_ANALYSE_EROSION* analyse_erosion = (MSTRUCT_ANALYSE_EROSION*)ves_file->get_analyse(Identifiant);
302     vector_analyse.push_back(analyse_erosion->get_analyse(i));
303     }
304     MSTRUCT_ANALYSE_LISTE_MG_MAILLAGE analyse_liste_mg_maillage(Identifiant,
305     vector_analyse,
306     Largeur_colonne_distribution_nb_element_2D,
307     Largeur_colonne_distribution_nb_element_3D,
308     Largeur_colonne_distribution_volume,
309     Largeur_colonne_distribution_fraction_volumique);
310     char nom_fichier_resultat_liste[1000];
311     sprintf(nom_fichier_resultat_liste,"%s/c_%i/liste_%s.txt",dossier_resultat,i,Identifiant.c_str());
312     std::ofstream ofstrm_liste(nom_fichier_resultat_liste,std::ios::out);
313     ofstrm_liste.precision(16);
314     analyse_liste_mg_maillage.exporter_liste(ofstrm_liste,true);
315     ofstrm_liste.close();
316     char nom_fichier_resultat_cumul[1000];
317     sprintf(nom_fichier_resultat_cumul,"%s/c_%i/cumul_%s.txt",dossier_resultat,i,Identifiant.c_str());
318     char prefix_graph[1000];
319     sprintf(prefix_graph,"%s/c_%i",dossier_resultat,i);
320     std::ofstream ofstrm_cumul(nom_fichier_resultat_cumul,std::ios::out);
321     ofstrm_cumul.precision(16);
322     analyse_liste_mg_maillage.exporter_cumul(ofstrm_cumul,true,avec_graph,prefix_graph);
323     ofstrm_cumul.close();
324     if(i==0) analyse_liste_mg_maillage.exporter_cumul_i(ofstrm_cumul_erosion,i,true);
325     else analyse_liste_mg_maillage.exporter_cumul_i(ofstrm_cumul_erosion,i,false);
326     }
327     ofstrm_cumul_erosion.close();
328 couturad 926 }
329 couturad 931 else
330 couturad 926 {
331 couturad 968 std::vector<MSTRUCT_ANALYSE*> vector_analyse;
332     std::map<long,MSTRUCT_VES_FILE*>::iterator it_ves_file;
333     for(it_ves_file=map_ves_file.begin();it_ves_file!=map_ves_file.end();it_ves_file++)
334     {
335     MSTRUCT_VES_FILE *ves_file=it_ves_file->second;
336     vector_analyse.push_back(ves_file->get_analyse(Identifiant));
337     }
338     MSTRUCT_ANALYSE_LISTE_MG_MAILLAGE analyse_liste_mg_maillage(Identifiant,
339     vector_analyse,
340     Largeur_colonne_distribution_nb_element_2D,
341     Largeur_colonne_distribution_nb_element_3D,
342     Largeur_colonne_distribution_volume,
343     Largeur_colonne_distribution_fraction_volumique);
344     char nom_fichier_resultat_liste[1000];
345     sprintf(nom_fichier_resultat_liste,"%s/liste_%s.txt",dossier_resultat,Identifiant.c_str());
346     std::ofstream ofstrm_liste(nom_fichier_resultat_liste,std::ios::out);
347     ofstrm_liste.precision(16);
348     analyse_liste_mg_maillage.exporter_liste(ofstrm_liste,true);
349     ofstrm_liste.close();
350     char nom_fichier_resultat_cumul[1000];
351     sprintf(nom_fichier_resultat_cumul,"%s/cumul_%s.txt",dossier_resultat,Identifiant.c_str());
352     std::ofstream ofstrm_cumul(nom_fichier_resultat_cumul,std::ios::out);
353     ofstrm_cumul.precision(16);
354     analyse_liste_mg_maillage.exporter_cumul(ofstrm_cumul,true,avec_graph,dossier_resultat);
355     ofstrm_cumul.close();
356 couturad 926 }
357 couturad 919 }
358 couturad 968 else if(Type_post_traitement==MSTRUCT::TYPE_POST_TRAITEMENT::POST_MAILLAGE_FEM)
359 couturad 919 {
360 couturad 968 sprintf(ligne,"-> %s",Identifiant.c_str());
361     affiche(ligne);
362     double Largeur_colonne_distribution_nb_element_2D = param->get_valeur((char*)"Largeur_colonne_distribution_nb_element_2D");
363     double Largeur_colonne_distribution_nb_element_3D = param->get_valeur((char*)"Largeur_colonne_distribution_nb_element_3D");
364     double Largeur_colonne_distribution_volume = param->get_valeur((char*)"Largeur_colonne_distribution_volume");
365     double Largeur_colonne_distribution_fraction_volumique = param->get_valeur((char*)"Largeur_colonne_distribution_fraction_volumique");
366     int Analyse_erosion = (int)param->get_valeur((char*)"Analyse_erosion");
367     if(Analyse_erosion)
368 couturad 926 {
369 couturad 968 char nom_fichier_resultat_cumul_erosion[1000];
370     sprintf(nom_fichier_resultat_cumul_erosion,"%s/cumul_erosion_%s.txt",dossier_resultat,Identifiant.c_str());
371     std::ofstream ofstrm_cumul_erosion(nom_fichier_resultat_cumul_erosion,std::ios::out);
372     int Nb_couche = (int)param->get_valeur((char*)"Nb_couche");
373     for(int i=0;i<Nb_couche;i++)
374     {
375     char syscmd_mkdir_erosion_couche[1000];
376     sprintf(syscmd_mkdir_erosion_couche,"mkdir -p %s/c_%i",dossier_resultat,i);
377     system(syscmd_mkdir_erosion_couche);
378     std::vector<MSTRUCT_ANALYSE*> vector_analyse;
379     std::map<long,MSTRUCT_VES_FILE*>::iterator it_ves_file;
380     for(it_ves_file=map_ves_file.begin();it_ves_file!=map_ves_file.end();it_ves_file++)
381     {
382     MSTRUCT_VES_FILE *ves_file=it_ves_file->second;
383     MSTRUCT_ANALYSE_EROSION* analyse_erosion = (MSTRUCT_ANALYSE_EROSION*)ves_file->get_analyse(Identifiant);
384     vector_analyse.push_back(analyse_erosion->get_analyse(i));
385     }
386     MSTRUCT_ANALYSE_LISTE_FEM_MAILLAGE analyse_liste_fem_maillage(Identifiant,
387     vector_analyse,
388     Largeur_colonne_distribution_nb_element_2D,
389     Largeur_colonne_distribution_nb_element_3D,
390     Largeur_colonne_distribution_volume,
391     Largeur_colonne_distribution_fraction_volumique);
392     char nom_fichier_resultat_liste[1000];
393     sprintf(nom_fichier_resultat_liste,"%s/c_%i/liste_%s.txt",dossier_resultat,i,Identifiant.c_str());
394     std::ofstream ofstrm_liste(nom_fichier_resultat_liste,std::ios::out);
395     ofstrm_liste.precision(16);
396     analyse_liste_fem_maillage.exporter_liste(ofstrm_liste,true);
397     ofstrm_liste.close();
398     char nom_fichier_resultat_cumul[1000];
399     sprintf(nom_fichier_resultat_cumul,"%s/c_%i/cumul_%s.txt",dossier_resultat,i,Identifiant.c_str());
400     char prefix_graph[1000];
401     sprintf(prefix_graph,"%s/c_%i",dossier_resultat,i);
402     std::ofstream ofstrm_cumul(nom_fichier_resultat_cumul,std::ios::out);
403     ofstrm_cumul.precision(16);
404     analyse_liste_fem_maillage.exporter_cumul(ofstrm_cumul,true,avec_graph,prefix_graph);
405     ofstrm_cumul.close();
406     if(i==0) analyse_liste_fem_maillage.exporter_cumul_i(ofstrm_cumul_erosion,i,true);
407     else analyse_liste_fem_maillage.exporter_cumul_i(ofstrm_cumul_erosion,i,false);
408     }
409     ofstrm_cumul_erosion.close();
410 couturad 926 }
411 couturad 931 else
412 couturad 926 {
413 couturad 968 std::vector<MSTRUCT_ANALYSE*> vector_analyse;
414     std::map<long,MSTRUCT_VES_FILE*>::iterator it_ves_file;
415     for(it_ves_file=map_ves_file.begin();it_ves_file!=map_ves_file.end();it_ves_file++)
416     {
417     MSTRUCT_VES_FILE *ves_file=it_ves_file->second;
418     vector_analyse.push_back(ves_file->get_analyse(Identifiant));
419     }
420     MSTRUCT_ANALYSE_LISTE_FEM_MAILLAGE analyse_liste_fem_maillage(Identifiant,
421     vector_analyse,
422     Largeur_colonne_distribution_nb_element_2D,
423     Largeur_colonne_distribution_nb_element_3D,
424     Largeur_colonne_distribution_volume,
425     Largeur_colonne_distribution_fraction_volumique);
426     char nom_fichier_resultat_liste[1000];
427     sprintf(nom_fichier_resultat_liste,"%s/liste_%s.txt",dossier_resultat,Identifiant.c_str());
428     std::ofstream ofstrm_liste(nom_fichier_resultat_liste,std::ios::out);
429     ofstrm_liste.precision(16);
430     analyse_liste_fem_maillage.exporter_liste(ofstrm_liste,true);
431     ofstrm_liste.close();
432     char nom_fichier_resultat_cumul[1000];
433     sprintf(nom_fichier_resultat_cumul,"%s/cumul_%s.txt",dossier_resultat,Identifiant.c_str());
434     std::ofstream ofstrm_cumul(nom_fichier_resultat_cumul,std::ios::out);
435     ofstrm_cumul.precision(16);
436     analyse_liste_fem_maillage.exporter_cumul(ofstrm_cumul,true,avec_graph,dossier_resultat);
437     ofstrm_cumul.close();
438 couturad 926 }
439 couturad 919 }
440 couturad 968 else if(Type_post_traitement==MSTRUCT::TYPE_POST_TRAITEMENT::POST_MODULES_ELASTICITE)
441 couturad 919 {
442 couturad 968 sprintf(ligne,"-> %s",Identifiant.c_str());
443     affiche(ligne);
444     double Largeur_colonne_distribution_module_Kapp = param->get_valeur((char*)"Largeur_colonne_distribution_module_Kapp");
445     double Largeur_colonne_distribution_module_Gapp = param->get_valeur((char*)"Largeur_colonne_distribution_module_Gapp");
446     double Largeur_colonne_distribution_module_Eapp = param->get_valeur((char*)"Largeur_colonne_distribution_module_Eapp");
447     double Largeur_colonne_distribution_module_Nuapp = param->get_valeur((char*)"Largeur_colonne_distribution_module_Nuapp");
448     int Analyse_erosion = (int)param->get_valeur((char*)"Analyse_erosion");
449     if(Analyse_erosion)
450 couturad 926 {
451 couturad 968 char nom_fichier_resultat_cumul_erosion[1000];
452     sprintf(nom_fichier_resultat_cumul_erosion,"%s/cumul_erosion_%s.txt",dossier_resultat,Identifiant.c_str());
453     std::ofstream ofstrm_cumul_erosion(nom_fichier_resultat_cumul_erosion,std::ios::out);
454     int Nb_couche = (int)param->get_valeur((char*)"Nb_couche");
455     for(int i=0;i<Nb_couche;i++)
456     {
457     char syscmd_mkdir_erosion_couche[1000];
458     sprintf(syscmd_mkdir_erosion_couche,"mkdir -p %s/c_%i",dossier_resultat,i);
459     system(syscmd_mkdir_erosion_couche);
460     std::vector<MSTRUCT_ANALYSE*> vector_analyse;
461     std::map<long,MSTRUCT_VES_FILE*>::iterator it_ves_file;
462     for(it_ves_file=map_ves_file.begin();it_ves_file!=map_ves_file.end();it_ves_file++)
463     {
464     MSTRUCT_VES_FILE *ves_file=it_ves_file->second;
465     MSTRUCT_ANALYSE_EROSION* analyse_erosion = (MSTRUCT_ANALYSE_EROSION*)ves_file->get_analyse(Identifiant);
466     vector_analyse.push_back(analyse_erosion->get_analyse(i));
467     }
468     MSTRUCT_ANALYSE_LISTE_MODULES_ELASTICITE analyse_liste_modules_elasticite(Identifiant,
469     vector_analyse,
470     Largeur_colonne_distribution_module_Kapp,
471     Largeur_colonne_distribution_module_Gapp,
472     Largeur_colonne_distribution_module_Eapp,
473     Largeur_colonne_distribution_module_Nuapp);
474     char nom_fichier_resultat_liste[1000];
475     sprintf(nom_fichier_resultat_liste,"%s/c_%i/liste_%s.txt",dossier_resultat,i,Identifiant.c_str());
476     std::ofstream ofstrm_liste(nom_fichier_resultat_liste,std::ios::out);
477     ofstrm_liste.precision(16);
478     analyse_liste_modules_elasticite.exporter_liste(ofstrm_liste,true);
479     ofstrm_liste.close();
480     char nom_fichier_resultat_cumul[1000];
481     sprintf(nom_fichier_resultat_cumul,"%s/c_%i/cumul_%s.txt",dossier_resultat,i,Identifiant.c_str());
482     char prefix_graph[1000];
483     sprintf(prefix_graph,"%s/c_%i",dossier_resultat,i);
484     std::ofstream ofstrm_cumul(nom_fichier_resultat_cumul,std::ios::out);
485     ofstrm_cumul.precision(16);
486     analyse_liste_modules_elasticite.exporter_cumul(ofstrm_cumul,true,avec_graph,prefix_graph);
487     ofstrm_cumul.close();
488     if(i==0) analyse_liste_modules_elasticite.exporter_cumul_i(ofstrm_cumul_erosion,i,true);
489     else analyse_liste_modules_elasticite.exporter_cumul_i(ofstrm_cumul_erosion,i,false);
490     }
491     ofstrm_cumul_erosion.close();
492 couturad 926 }
493 couturad 931 else
494 couturad 926 {
495 couturad 968 std::vector<MSTRUCT_ANALYSE*> vector_analyse;
496     std::map<long,MSTRUCT_VES_FILE*>::iterator it_ves_file;
497     for(it_ves_file=map_ves_file.begin();it_ves_file!=map_ves_file.end();it_ves_file++)
498     {
499     MSTRUCT_VES_FILE *ves_file=it_ves_file->second;
500     vector_analyse.push_back(ves_file->get_analyse(Identifiant));
501     }
502     MSTRUCT_ANALYSE_LISTE_MODULES_ELASTICITE analyse_liste_modules_elasticite(Identifiant,
503     vector_analyse,
504     Largeur_colonne_distribution_module_Kapp,
505     Largeur_colonne_distribution_module_Gapp,
506     Largeur_colonne_distribution_module_Eapp,
507     Largeur_colonne_distribution_module_Nuapp);
508     char nom_fichier_resultat_liste[1000];
509     sprintf(nom_fichier_resultat_liste,"%s/liste_%s.txt",dossier_resultat,Identifiant.c_str());
510     std::ofstream ofstrm_liste(nom_fichier_resultat_liste,std::ios::out);
511     ofstrm_liste.precision(16);
512     analyse_liste_modules_elasticite.exporter_liste(ofstrm_liste,true);
513     ofstrm_liste.close();
514     char nom_fichier_resultat_cumul[1000];
515     sprintf(nom_fichier_resultat_cumul,"%s/cumul_%s.txt",dossier_resultat,Identifiant.c_str());
516     std::ofstream ofstrm_cumul(nom_fichier_resultat_cumul,std::ios::out);
517     ofstrm_cumul.precision(16);
518     analyse_liste_modules_elasticite.exporter_cumul(ofstrm_cumul,true,avec_graph,dossier_resultat);
519     ofstrm_cumul.close();
520 couturad 926 }
521 couturad 919 }
522 couturad 971 else if(Type_post_traitement==MSTRUCT::TYPE_POST_TRAITEMENT::POST_CONDUCTIVITE_THERMIQUE)
523     {
524     sprintf(ligne,"-> %s",Identifiant.c_str());
525     affiche(ligne);
526     double Largeur_colonne_distribution = param->get_valeur((char*)"Largeur_colonne_distribution");
527     int Analyse_erosion = (int)param->get_valeur((char*)"Analyse_erosion");
528     if(Analyse_erosion)
529     {
530     char nom_fichier_resultat_cumul_erosion[1000];
531     sprintf(nom_fichier_resultat_cumul_erosion,"%s/cumul_erosion_%s.txt",dossier_resultat,Identifiant.c_str());
532     std::ofstream ofstrm_cumul_erosion(nom_fichier_resultat_cumul_erosion,std::ios::out);
533     int Nb_couche = (int)param->get_valeur((char*)"Nb_couche");
534     for(int i=0;i<Nb_couche;i++)
535     {
536     char syscmd_mkdir_erosion_couche[1000];
537     sprintf(syscmd_mkdir_erosion_couche,"mkdir -p %s/c_%i",dossier_resultat,i);
538     system(syscmd_mkdir_erosion_couche);
539     std::vector<MSTRUCT_ANALYSE*> vector_analyse;
540     std::map<long,MSTRUCT_VES_FILE*>::iterator it_ves_file;
541     for(it_ves_file=map_ves_file.begin();it_ves_file!=map_ves_file.end();it_ves_file++)
542     {
543     MSTRUCT_VES_FILE *ves_file=it_ves_file->second;
544     MSTRUCT_ANALYSE_EROSION* analyse_erosion = (MSTRUCT_ANALYSE_EROSION*)ves_file->get_analyse(Identifiant);
545     vector_analyse.push_back(analyse_erosion->get_analyse(i));
546     }
547     MSTRUCT_ANALYSE_LISTE_CONDUCTIVITE_THERMIQUE analyse_liste_conductivite_thermique(Identifiant,vector_analyse,Largeur_colonne_distribution);
548     char nom_fichier_resultat_liste[1000];
549     sprintf(nom_fichier_resultat_liste,"%s/c_%i/liste_%s.txt",dossier_resultat,i,Identifiant.c_str());
550     std::ofstream ofstrm_liste(nom_fichier_resultat_liste,std::ios::out);
551     ofstrm_liste.precision(16);
552     analyse_liste_conductivite_thermique.exporter_liste(ofstrm_liste,true);
553     ofstrm_liste.close();
554     char nom_fichier_resultat_cumul[1000];
555     sprintf(nom_fichier_resultat_cumul,"%s/c_%i/cumul_%s.txt",dossier_resultat,i,Identifiant.c_str());
556     char prefix_graph[1000];
557     sprintf(prefix_graph,"%s/c_%i",dossier_resultat,i);
558     std::ofstream ofstrm_cumul(nom_fichier_resultat_cumul,std::ios::out);
559     ofstrm_cumul.precision(16);
560     analyse_liste_conductivite_thermique.exporter_cumul(ofstrm_cumul,true,avec_graph,prefix_graph);
561     ofstrm_cumul.close();
562     if(i==0) analyse_liste_conductivite_thermique.exporter_cumul_i(ofstrm_cumul_erosion,i,true);
563     else analyse_liste_conductivite_thermique.exporter_cumul_i(ofstrm_cumul_erosion,i,false);
564     }
565     ofstrm_cumul_erosion.close();
566     }
567     else
568     {
569     std::vector<MSTRUCT_ANALYSE*> vector_analyse;
570     std::map<long,MSTRUCT_VES_FILE*>::iterator it_ves_file;
571     for(it_ves_file=map_ves_file.begin();it_ves_file!=map_ves_file.end();it_ves_file++)
572     {
573     MSTRUCT_VES_FILE *ves_file=it_ves_file->second;
574     vector_analyse.push_back(ves_file->get_analyse(Identifiant));
575     }
576     MSTRUCT_ANALYSE_LISTE_CONDUCTIVITE_THERMIQUE analyse_liste_conductivite_thermique(Identifiant,vector_analyse,Largeur_colonne_distribution);
577     char nom_fichier_resultat_liste[1000];
578     sprintf(nom_fichier_resultat_liste,"%s/liste_%s.txt",dossier_resultat,Identifiant.c_str());
579     std::ofstream ofstrm_liste(nom_fichier_resultat_liste,std::ios::out);
580     ofstrm_liste.precision(16);
581     analyse_liste_conductivite_thermique.exporter_liste(ofstrm_liste,true);
582     ofstrm_liste.close();
583     char nom_fichier_resultat_cumul[1000];
584     sprintf(nom_fichier_resultat_cumul,"%s/cumul_%s.txt",dossier_resultat,Identifiant.c_str());
585     std::ofstream ofstrm_cumul(nom_fichier_resultat_cumul,std::ios::out);
586     ofstrm_cumul.precision(16);
587     analyse_liste_conductivite_thermique.exporter_cumul(ofstrm_cumul,true,avec_graph,dossier_resultat);
588     ofstrm_cumul.close();
589     }
590     }
591 couturad 919 }
592     }