ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/microstructure/src/mstruct_parametres.cpp
Revision: 958
Committed: Tue Aug 14 20:12:44 2018 UTC (6 years, 9 months ago) by couturad
File size: 104071 byte(s)
Log Message:
Correction des bugs detectes par Cppcheck

File Contents

# User Rev Content
1 couturad 919 #include "mstruct_parametres.h"
2     #include "mstruct_generateur_rsa.h"
3 couturad 926 #include "mg_export.h"
4 couturad 919 #include <string.h>
5     #include <fstream>
6     #include <cstdlib>
7    
8    
9 couturad 951 void PARAMETRES::ini_param_generateur_rsa(OT_PARAMETRES* params, int type_inclusion)
10 couturad 919 {
11 couturad 951 params->ajouter("Type_generateur","0",OT_PARAMETRES::DOUBLE,"Type de generateur : RSA [0], DCR [1]");
12 couturad 919 params->ajouter("Nom_mgcg_modele","VES",OT_PARAMETRES::STRING,"Nom du MG_CG_MODELE");
13 couturad 951 params->ajouter("Nom_groupe_inclusion","Particule",OT_PARAMETRES::STRING,"Nom du groupe d'inclusion (Ex: Particule)");
14 couturad 919 params->ajouter("Boite3D_distribution_Xmin","-0.1",OT_PARAMETRES::DOUBLE,"Xmin boite3D de distribution d'inclusion");
15     params->ajouter("Boite3D_distribution_Ymin","-0.1",OT_PARAMETRES::DOUBLE,"Ymin boite3D de distribution d'inclusion");
16     params->ajouter("Boite3D_distribution_Zmin","-0.1",OT_PARAMETRES::DOUBLE,"Zmin boite3D de distribution d'inclusion");
17     params->ajouter("Boite3D_distribution_Xmax","1.1",OT_PARAMETRES::DOUBLE,"Xmax boite3D de distribution d'inclusion");
18     params->ajouter("Boite3D_distribution_Ymax","1.1",OT_PARAMETRES::DOUBLE,"Ymax boite3D de distribution d'inclusion");
19     params->ajouter("Boite3D_distribution_Zmax","1.1",OT_PARAMETRES::DOUBLE,"Zmax boite3D de distribution d'inclusion");
20     params->ajouter("Nb_pas_X","20",OT_PARAMETRES::DOUBLE,"Nombre de pas selon X pout la creation d'un octree");
21     params->ajouter("Nb_pas_Y","20",OT_PARAMETRES::DOUBLE,"Nombre de pas selon Y pout la creation d'un octree");
22     params->ajouter("Nb_pas_Z","20",OT_PARAMETRES::DOUBLE,"Nombre de pas selon Z pout la creation d'un octree");
23 couturad 951 params->ajouter("Fraction_volumique_cible","0.1",OT_PARAMETRES::DOUBLE,"Fraction volumique cible d'inclusion [0.0, 1.0]");
24     params->ajouter("Eps_fraction_volumique","0.001",OT_PARAMETRES::DOUBLE,"Epsilon fraction volumique");
25     params->ajouter("Avec_intersections","1",OT_PARAMETRES::DOUBLE,"Avec ou sans intersections avec le bord du VES : Sans [0] Avec [1]");
26     if(type_inclusion==MSTRUCT_GENERATEUR_RSA::TYPE_INCLUSION::SPHERE)
27 couturad 919 {
28     params->ajouter("Type_inclusion","0",OT_PARAMETRES::DOUBLE,"Type d'inclusion : Sphere [0], Cylindre [1]");
29 couturad 951 params->ajouter("Mu_rayon","0.09",OT_PARAMETRES::DOUBLE,"Moyenne du rayon de la sphere");
30 couturad 919 params->ajouter("Sigma_rayon","0.0",OT_PARAMETRES::DOUBLE,"Ecart type du rayon de la sphere");
31 couturad 951 params->ajouter("Type_distribution_rayon","0",OT_PARAMETRES::DOUBLE,"Type de distribution du rayon : Fixe[0], Uniforme[1], Normale[2]");
32 couturad 919 }
33 couturad 951 if(type_inclusion==MSTRUCT_GENERATEUR_RSA::TYPE_INCLUSION::CYLINDRE)
34 couturad 919 {
35     params->ajouter("Type_inclusion","1",OT_PARAMETRES::DOUBLE,"Type d'inclusion : Sphere [0], Cylindre [1]");
36 couturad 926 params->ajouter("Mu_rayon","0.05",OT_PARAMETRES::DOUBLE,"Moyenne du rayon du cylindre");
37 couturad 919 params->ajouter("Sigma_rayon","0.0",OT_PARAMETRES::DOUBLE,"Ecart type du rayon du cylindre");
38 couturad 951 params->ajouter("Type_distribution_rayon","0",OT_PARAMETRES::DOUBLE,"Type de distribution du rayon : Fixe[0], Uniforme[1], Normale[2]");
39 couturad 926 params->ajouter("Mu_longueur","0.4",OT_PARAMETRES::DOUBLE,"Moyenne de la longueur du cylindre");
40 couturad 919 params->ajouter("Sigma_longueur","0.0",OT_PARAMETRES::DOUBLE,"Ecart type de la longueur du cylindre");
41 couturad 951 params->ajouter("Type_distribution_longueur","0",OT_PARAMETRES::DOUBLE,"Type de distribution de la longueur : Fixe[0], Uniforme[1], Normale[2]");
42 couturad 929 params->ajouter("Mu_theta","0.0",OT_PARAMETRES::DOUBLE,"Moyenne de l'angle theta");
43 couturad 951 params->ajouter("Sigma_theta","1.0",OT_PARAMETRES::DOUBLE,"Ecart type de l'angle theta");
44     params->ajouter("Type_distribution_theta","1",OT_PARAMETRES::DOUBLE,"Type de distribution de l'angle theta : Fixe[0], Uniforme[1], Normale[2]");
45 couturad 929 params->ajouter("Mu_phi","0.0",OT_PARAMETRES::DOUBLE,"Moyenne de l'angle phi");
46 couturad 951 params->ajouter("Sigma_phi","1.0",OT_PARAMETRES::DOUBLE,"Ecart type de l'angle phi");
47     params->ajouter("Type_distribution_phi","1",OT_PARAMETRES::DOUBLE,"Type de distribution de l'angle phi : Fixe[0], Uniforme[1], Normale[2]");
48 couturad 919 }
49     params->ajouter("Porosite","0",OT_PARAMETRES::DOUBLE,"Considerer l'inclusion comme etant une porosite (vide) [1]");
50 couturad 951 params->ajouter("Multicouche","0,(0.01,0.01)",OT_PARAMETRES::DOUBLE,"Generer une inclusion avec une ou plusieurs couches [1,2,3,etc] et d'epaisseurs (0.01,0.02,etc)");
51 couturad 926 params->ajouter("Distance_min_inter_volume","0.04",OT_PARAMETRES::DOUBLE,"Distance minimale qui separe deux inclusions");
52     params->ajouter("Volume_min","0.0008",OT_PARAMETRES::DOUBLE,"Volume minimal admissible de l'inclusion");
53     params->ajouter("Aire_min","0.001963",OT_PARAMETRES::DOUBLE,"Aire minimal admissible d'une face de l'inclusion");
54 couturad 919 params->ajouter("Longueur_min","0.02",OT_PARAMETRES::DOUBLE,"Longueur minimal admissible d'une arete ");
55     params->ajouter("Angle_min","0.7854",OT_PARAMETRES::DOUBLE,"Angle minimal admissible entre deux faces");
56     params->ajouter("Nb_iteration_max","2000",OT_PARAMETRES::DOUBLE,"Nombre maximal d'iteration");
57     }
58    
59 couturad 951 void PARAMETRES::ini_param_generateur_dcr(OT_PARAMETRES* params, int type_inclusion)
60     {
61     params->ajouter("Type_generateur","1",OT_PARAMETRES::DOUBLE,"Type de generateur : RSA [0], DCR [1]");
62     params->ajouter("Nom_mgcg_modele","VES",OT_PARAMETRES::STRING,"Nom du MG_CG_MODELE");
63     params->ajouter("Nom_groupe_inclusion","Particule",OT_PARAMETRES::STRING,"Nom du groupe d'inclusion (Ex: Particule)");
64     params->ajouter("Boite3D_distribution_Xmin","-0.25",OT_PARAMETRES::DOUBLE,"Xmin boite3D de distribution d'inclusion");
65     params->ajouter("Boite3D_distribution_Ymin","-0.25",OT_PARAMETRES::DOUBLE,"Ymin boite3D de distribution d'inclusion");
66     params->ajouter("Boite3D_distribution_Zmin","-0.25",OT_PARAMETRES::DOUBLE,"Zmin boite3D de distribution d'inclusion");
67     params->ajouter("Boite3D_distribution_Xmax","1.25",OT_PARAMETRES::DOUBLE,"Xmax boite3D de distribution d'inclusion");
68     params->ajouter("Boite3D_distribution_Ymax","1.25",OT_PARAMETRES::DOUBLE,"Ymax boite3D de distribution d'inclusion");
69     params->ajouter("Boite3D_distribution_Zmax","1.25",OT_PARAMETRES::DOUBLE,"Zmax boite3D de distribution d'inclusion");
70     params->ajouter("Nb_pas_X","20",OT_PARAMETRES::DOUBLE,"Nombre de pas selon X pout la creation d'un octree");
71     params->ajouter("Nb_pas_Y","20",OT_PARAMETRES::DOUBLE,"Nombre de pas selon Y pout la creation d'un octree");
72     params->ajouter("Nb_pas_Z","20",OT_PARAMETRES::DOUBLE,"Nombre de pas selon Z pout la creation d'un octree");
73     params->ajouter("Fraction_volumique_cible","0.1",OT_PARAMETRES::DOUBLE,"Fraction volumique cible d'inclusion [0.0, 1.0]");
74     params->ajouter("Eps_fraction_volumique","0.001",OT_PARAMETRES::DOUBLE,"Epsilon fraction volumique");
75     params->ajouter("Avec_intersections","1",OT_PARAMETRES::DOUBLE,"Avec ou sans intersections avec le bord du VES : Sans [0] Avec [1]");
76     if(type_inclusion==MSTRUCT_GENERATEUR_RSA::TYPE_INCLUSION::SPHERE)
77     {
78     params->ajouter("Type_inclusion","0",OT_PARAMETRES::DOUBLE,"Type d'inclusion : Sphere [0], Cylindre [1]");
79     params->ajouter("Mu_rayon","0.09",OT_PARAMETRES::DOUBLE,"Moyenne du rayon de la sphere");
80     params->ajouter("Sigma_rayon","0.0",OT_PARAMETRES::DOUBLE,"Ecart type du rayon de la sphere");
81     params->ajouter("Type_distribution_rayon","0",OT_PARAMETRES::DOUBLE,"Type de distribution du rayon : Fixe[0], Uniforme[1], Normale[2]");
82     }
83     if(type_inclusion==MSTRUCT_GENERATEUR_RSA::TYPE_INCLUSION::CYLINDRE)
84     {
85     params->ajouter("Type_inclusion","1",OT_PARAMETRES::DOUBLE,"Type d'inclusion : Sphere [0], Cylindre [1]");
86     params->ajouter("Mu_rayon","0.05",OT_PARAMETRES::DOUBLE,"Moyenne du rayon du cylindre");
87     params->ajouter("Sigma_rayon","0.0",OT_PARAMETRES::DOUBLE,"Ecart type du rayon du cylindre");
88     params->ajouter("Type_distribution_rayon","0",OT_PARAMETRES::DOUBLE,"Type de distribution du rayon : Fixe[0], Uniforme[1], Normale[2]");
89     params->ajouter("Mu_longueur","0.4",OT_PARAMETRES::DOUBLE,"Moyenne de la longueur du cylindre");
90     params->ajouter("Sigma_longueur","0.0",OT_PARAMETRES::DOUBLE,"Ecart type de la longueur du cylindre");
91     params->ajouter("Type_distribution_longueur","0",OT_PARAMETRES::DOUBLE,"Type de distribution de la longueur : Fixe[0], Uniforme[1], Normale[2]");
92     params->ajouter("Mu_theta","0.0",OT_PARAMETRES::DOUBLE,"Moyenne de l'angle theta");
93     params->ajouter("Sigma_theta","1.0",OT_PARAMETRES::DOUBLE,"Ecart type de l'angle theta");
94     params->ajouter("Type_distribution_theta","1",OT_PARAMETRES::DOUBLE,"Type de distribution de l'angle theta : Fixe[0], Uniforme[1], Normale[2]");
95     params->ajouter("Mu_phi","0.0",OT_PARAMETRES::DOUBLE,"Moyenne de l'angle phi");
96     params->ajouter("Sigma_phi","1.0",OT_PARAMETRES::DOUBLE,"Ecart type de l'angle phi");
97     params->ajouter("Type_distribution_phi","1",OT_PARAMETRES::DOUBLE,"Type de distribution de l'angle phi : Fixe[0], Uniforme[1], Normale[2]");
98     }
99     params->ajouter("Porosite","0",OT_PARAMETRES::DOUBLE,"Considerer l'inclusion comme etant une porosite (vide) [1]");
100     params->ajouter("Multicouche","0,(0.01,0.01)",OT_PARAMETRES::DOUBLE,"Generer une inclusion avec une ou plusieurs couches [1,2,3,etc] et d'epaisseurs (0.01,0.02,etc)");
101     params->ajouter("Distance_min_inter_volume","0.04",OT_PARAMETRES::DOUBLE,"Distance minimale qui separe deux inclusions");
102     params->ajouter("Volume_min","0.0008",OT_PARAMETRES::DOUBLE,"Volume minimal admissible de l'inclusion");
103     params->ajouter("Aire_min","0.001963",OT_PARAMETRES::DOUBLE,"Aire minimal admissible d'une face de l'inclusion");
104     params->ajouter("Longueur_min","0.02",OT_PARAMETRES::DOUBLE,"Longueur minimal admissible d'une arete ");
105     params->ajouter("Angle_min","0.7854",OT_PARAMETRES::DOUBLE,"Angle minimal admissible entre deux faces");
106     }
107    
108    
109 couturad 919 void PARAMETRES::ini_param_materiau(OT_PARAMETRES* params,char* nom_groupe_forme)
110     {
111 couturad 951 params->ajouter("Nom_groupe_forme",nom_groupe_forme,OT_PARAMETRES::STRING,"Nom du groupe de forme (Ex: Particule, Matrice)");
112 couturad 919 params->ajouter("Mu_E","69.0e9",OT_PARAMETRES::DOUBLE,"Moyenne du module d'elasticite");
113     params->ajouter("Sigma_E","0.0",OT_PARAMETRES::DOUBLE,"Ecart type du module d'elasticite");
114     params->ajouter("Mu_nu","0.3",OT_PARAMETRES::DOUBLE,"Moyenne du coefficient de Poisson");
115     params->ajouter("Sigma_nu","0.0",OT_PARAMETRES::DOUBLE,"Ecart type du coefficient de Poisson");
116     }
117    
118     void PARAMETRES::ini_param_carte_taille(OT_PARAMETRES* params)
119     {
120     params->ajouter("Nom_carte","carte",OT_PARAMETRES::STRING,"Nom de la carte de taille");
121 couturad 951 params->ajouter("Ecart_nodal","0.08",OT_PARAMETRES::DOUBLE,"Ecart nodal");
122 couturad 937 params->ajouter("Ecart_nodal_face_particule","0.04",OT_PARAMETRES::DOUBLE,"Ecart nodal des faces des particules");
123 couturad 919 params->ajouter("Fechantillonnage","20",OT_PARAMETRES::DOUBLE,"Nombre d'échantillon par entité");
124 couturad 926 params->ajouter("Nb_cellule_direction","50",OT_PARAMETRES::DOUBLE,"Nombre de cellules de la FEM_SOLUTION dans les directions x,y,z");
125 couturad 919 params->ajouter("Nom_fem_solution","solcarte",OT_PARAMETRES::STRING,"Nom de la FEM_SOLUTION");
126     params->ajouter("Nb_couche_min","2",OT_PARAMETRES::DOUBLE,"Nombre de couches entre chaque solide");
127     params->ajouter("Nb_pas","32",OT_PARAMETRES::DOUBLE,"Nombre de pas de balayage");
128     params->ajouter("Facteur_augmentation","25",OT_PARAMETRES::DOUBLE,"Facteur d'augmentation de l'ecart nodal d'une cellule a l'autre");
129     }
130    
131     void PARAMETRES::ini_param_mailleur(OT_PARAMETRES* params)
132     {
133     params->ajouter("Niveau","3",OT_PARAMETRES::DOUBLE,"Niveau du maillage : 1D [1], 2D [2], 3D [3]");
134     params->ajouter("Niveau_opt_2d","5",OT_PARAMETRES::DOUBLE,"Limite supérieure des mailles à optimiser");
135 couturad 951 params->ajouter("Niveau_opt_3d","5",OT_PARAMETRES::DOUBLE,"Limite supérieure des mailles à optimiser");
136 couturad 919 params->ajouter("Priorite_metrique","0.65",OT_PARAMETRES::DOUBLE,"Valeur de la prise en compte de la métrique versus la qualité");
137     }
138    
139     void PARAMETRES::ini_param_mailleur_fem(OT_PARAMETRES* params)
140     {
141     params->ajouter("Degre","2",OT_PARAMETRES::DOUBLE,"Degre du maillage a creer");
142     params->ajouter("Analyse","0",OT_PARAMETRES::DOUBLE,"Analyse de la qualité du maillage après le maillage : Analyse [1]");
143     params->ajouter("Optimisation_num_noeud","0",OT_PARAMETRES::DOUBLE,"Optimisation de la numerotation des noeuds : Optimisation [1]");
144     }
145    
146     void PARAMETRES::ini_param_etude(OT_PARAMETRES* params, int type_etude)
147     {
148     params->ajouter("Nom_etude","etude_1",OT_PARAMETRES::STRING,"Nom de l'etude");
149     params->ajouter("Fichier_param_aster","param_aster.txt",OT_PARAMETRES::STRING,"Nom du fichier de parametres aster");
150     params->ajouter("Type_etude",type_etude,OT_PARAMETRES::DOUBLE,"Type d'etude : Mecanique [0], Thermique [1]");
151     params->ajouter("Type_calcul","0",OT_PARAMETRES::DOUBLE,"Type de calcul : Elastique [0]");
152     params->ajouter("Code_resu","11111111",OT_PARAMETRES::STRING,"Code de resolution");
153 couturad 926 if(type_etude==MSTRUCT_VES::TYPE_ETUDE::MECANIQUE)
154 couturad 919 {
155     params->ajouter("Type_Chargement","0",OT_PARAMETRES::DOUBLE,"Type de chargement : Spherique [0], Deviatorique [1]");
156     params->ajouter("Type_CL","0",OT_PARAMETRES::DOUBLE,"Type de conditions aux limites : CLDH [0], CLCH[1]");
157     params->ajouter("Valeur_CL","0.0001",OT_PARAMETRES::DOUBLE,"Valeur de la condition aux limites");
158     }
159     }
160    
161     void PARAMETRES::ini_param_homogeneisation(OT_PARAMETRES* params)
162     {
163     params->ajouter("Fraction_volumique_CAD",0,OT_PARAMETRES::DOUBLE,"Calculer la fraction volumique CAD d'un groupe de forme [1]");
164     params->ajouter("Fraction_volumique_mg_maillage",0,OT_PARAMETRES::DOUBLE,"Calculer la fraction volumique du mg_maillage d'un groupe de forme [1]");
165     params->ajouter("Fraction_volumique_fem_maillage",0,OT_PARAMETRES::DOUBLE,"Calculer la fraction volumique du fem_maillage d'un groupe de forme [1]");
166     params->ajouter("Tenseur_orientation",0,OT_PARAMETRES::DOUBLE,"Calculer le tenseur d'orientation d'un groupe de forme [1]");
167     params->ajouter("Comparer_champ_theorie",0,OT_PARAMETRES::DOUBLE,"Comparer un champ par rapport a un champ theorique [1]");
168     params->ajouter("Critere_comparaison",0,OT_PARAMETRES::DOUBLE,"Erreur moyenne absolue [0], Erreur moyenne au carre [2]");
169     params->ajouter("Moyenne_volumique_champ",0,OT_PARAMETRES::DOUBLE,"Calculer la moyenne volumique d'un champ [1]");
170     params->ajouter("Num_solution",0,OT_PARAMETRES::DOUBLE,"Numero de la solution");
171     params->ajouter("Nom_champ","Sigma",OT_PARAMETRES::STRING,"Nom du champ");
172 couturad 926 params->ajouter("Nom_groupe_forme","ALL",OT_PARAMETRES::STRING,"Nom du groupe d'inclusion. Si [ALL] prend le ves au complet");
173 couturad 919 params->ajouter("Boite_analyse",0,OT_PARAMETRES::DOUBLE,"Calculer à partir des elements donc le centre de la boite englobante figure dans la boite d'analyse");
174     params->ajouter("Boite3D_analyse_Xmin","0.1",OT_PARAMETRES::DOUBLE,"Xmin boite3D d'analyse");
175     params->ajouter("Boite3D_analyse_Ymin","0.1",OT_PARAMETRES::DOUBLE,"Ymin boite3D d'analyse");
176     params->ajouter("Boite3D_analyse_Zmin","0.1",OT_PARAMETRES::DOUBLE,"Zmin boite3D d'analyse");
177     params->ajouter("Boite3D_analyse_Xmax","0.9",OT_PARAMETRES::DOUBLE,"Xmax boite3D d'analyse");
178     params->ajouter("Boite3D_analyse_Ymax","0.9",OT_PARAMETRES::DOUBLE,"Ymax boite3D d'analyse");
179     params->ajouter("Boite3D_analyse_Zmax","0.9",OT_PARAMETRES::DOUBLE,"Zmax boite3D d'analyse");
180     params->ajouter("Exporter_liste_resultat","0",OT_PARAMETRES::DOUBLE,"Exporter une liste de resultats");
181     params->ajouter("Fichier_liste_resultat","fichier_liste_resultat.txt",OT_PARAMETRES::STRING,"Exporter une liste de resultats");
182     params->ajouter("Val_champ_theorique_XX","0.0",OT_PARAMETRES::DOUBLE,"Valeur d'un champ theorique XX");
183     params->ajouter("Val_champ_theorique_YY","0.0",OT_PARAMETRES::DOUBLE,"Valeur d'un champ theorique YY");
184     params->ajouter("Val_champ_theorique_ZZ","0.0",OT_PARAMETRES::DOUBLE,"Valeur d'un champ theorique ZZ");
185     params->ajouter("Val_champ_theorique_XY","0.0",OT_PARAMETRES::DOUBLE,"Valeur d'un champ theorique XY");
186     params->ajouter("Val_champ_theorique_XZ","0.0",OT_PARAMETRES::DOUBLE,"Valeur d'un champ theorique XZ");
187     params->ajouter("Val_champ_theorique_YZ","0.0",OT_PARAMETRES::DOUBLE,"Valeur d'un champ theorique YZ");
188     }
189 couturad 930 void PARAMETRES::ini_param_analyse(OT_PARAMETRES* params,int type_analyse,bool erosion)
190 couturad 926 {
191     if(type_analyse==MSTRUCT_ANALYSE::TYPE_ANALYSE::CHAMP)
192     {
193     params->ajouter("Identifiant","Champ_SIGMA",OT_PARAMETRES::STRING,"Identifiant de l'analyse");
194 couturad 951 params->ajouter("Type_analyse",0,OT_PARAMETRES::DOUBLE,"Type d'analyse : Champ [0], Orientation [1], CAO [2], MAILLAGE_MG [3], MAILLAGE_FEM [4], ORIENTATION_PONDEREE [5]");
195 couturad 926 params->ajouter("Num_solution",2,OT_PARAMETRES::DOUBLE,"Numero de la FEM_SOLUTION solution (0,1,2,...)");
196     params->ajouter("Nom_groupe_forme","ALL",OT_PARAMETRES::STRING,"Nom du groupe d'inclusion. Si [ALL] prend le ves au complet");
197     params->ajouter("Largeur_colonne_distribution","0.1",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
198     }
199     else if(type_analyse==MSTRUCT_ANALYSE::TYPE_ANALYSE::ORIENTATION)
200     {
201 couturad 951 params->ajouter("Identifiant","Orientation_Particule",OT_PARAMETRES::STRING,"Identifiant de l'analyse");
202     params->ajouter("Type_analyse",1,OT_PARAMETRES::DOUBLE,"Type d'analyse : Champ [0], Orientation [1], CAO [2], MAILLAGE_MG [3], MAILLAGE_FEM [4], ORIENTATION_PONDEREE [5]");
203     params->ajouter("Nom_groupe_forme","Particule",OT_PARAMETRES::STRING,"Nom du groupe d'inclusion.");
204 couturad 926 }
205 couturad 938 else if(type_analyse==MSTRUCT_ANALYSE::TYPE_ANALYSE::ORIENTATION_PONDEREE)
206     {
207 couturad 951 params->ajouter("Identifiant","Orientation_Particule_ponderee",OT_PARAMETRES::STRING,"Identifiant de l'analyse");
208     params->ajouter("Type_analyse",5,OT_PARAMETRES::DOUBLE,"Type d'analyse : Champ [0], Orientation [1], CAO [2], MAILLAGE_MG [3], MAILLAGE_FEM [4], ORIENTATION_PONDEREE [5]");
209     params->ajouter("Nom_groupe_forme","Particule",OT_PARAMETRES::STRING,"Nom du groupe d'inclusion.");
210     params->ajouter("Avec_fem_maillage","1",OT_PARAMETRES::DOUBLE,"Analyser le volume des particules avec le FEM_MAILLAGE");
211 couturad 938 }
212 couturad 926 else if(type_analyse==MSTRUCT_ANALYSE::TYPE_ANALYSE::CAO)
213     {
214     params->ajouter("Identifiant","Cao",OT_PARAMETRES::STRING,"Identifiant de l'analyse");
215 couturad 951 params->ajouter("Type_analyse",2,OT_PARAMETRES::DOUBLE,"Type d'analyse : Champ [0], Orientation [1], CAO [2], MAILLAGE_MG [3], MAILLAGE_FEM [4], ORIENTATION_PONDEREE [5]");
216 couturad 926 params->ajouter("Nom_groupe_forme","ALL",OT_PARAMETRES::STRING,"Nom du groupe d'inclusion. Si [NULL] prend le ves au complet");
217     params->ajouter("Largeur_colonne_distribution_nb_volume","1.0",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
218     params->ajouter("Largeur_colonne_distribution_nb_forme","1.0",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
219     params->ajouter("Largeur_colonne_distribution_volume","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
220     params->ajouter("Largeur_colonne_distribution_fraction_volumique","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
221     params->ajouter("Largeur_colonne_distribution_volume_forme","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
222     }
223     else if(type_analyse==MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_MG)
224     {
225     params->ajouter("Identifiant","Maillage_MG",OT_PARAMETRES::STRING,"Identifiant de l'analyse");
226 couturad 951 params->ajouter("Type_analyse",3,OT_PARAMETRES::DOUBLE,"Type d'analyse : Champ [0], Orientation [1], CAO [2], MAILLAGE_MG [3], MAILLAGE_FEM [4], ORIENTATION_PONDEREE [5]");
227 couturad 926 params->ajouter("Nom_groupe_forme","ALL",OT_PARAMETRES::STRING,"Nom du groupe d'inclusion. Si [ALL] prend le ves au complet");
228     params->ajouter("Largeur_colonne_distribution_nb_element_2D","100",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
229     params->ajouter("Largeur_colonne_distribution_nb_element_3D","100",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
230     params->ajouter("Largeur_colonne_distribution_qualite_2D","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
231     params->ajouter("Largeur_colonne_distribution_qualite_3D","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
232     params->ajouter("Largeur_colonne_distribution_taille_2D","0.0001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
233     params->ajouter("Largeur_colonne_distribution_taille_3D","0.0001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
234     }
235     else if(type_analyse==MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM)
236     {
237     params->ajouter("Identifiant","Maillage_FEM",OT_PARAMETRES::STRING,"Identifiant de l'analyse");
238 couturad 951 params->ajouter("Type_analyse",4,OT_PARAMETRES::DOUBLE,"Type d'analyse : Champ [0], Orientation [1], CAO [2], MAILLAGE_MG [3], MAILLAGE_FEM [4], ORIENTATION_PONDEREE [5]");
239 couturad 926 params->ajouter("Nom_groupe_forme","ALL",OT_PARAMETRES::STRING,"Nom du groupe d'inclusion. Si [ALL] prend le ves au complet");
240     params->ajouter("Largeur_colonne_distribution_nb_element_2D","100",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
241     params->ajouter("Largeur_colonne_distribution_nb_element_3D","100",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
242     params->ajouter("Largeur_colonne_distribution_jacobien_2D_min","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
243     params->ajouter("Largeur_colonne_distribution_jacobien_2D_max","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
244     params->ajouter("Largeur_colonne_distribution_jacobien_3D_min","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
245     params->ajouter("Largeur_colonne_distribution_jacobien_3D_max","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
246     params->ajouter("Largeur_colonne_distribution_distortion_2D","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
247     params->ajouter("Largeur_colonne_distribution_distortion_3D","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
248 couturad 930 }
249     if(erosion)
250     {
251     params->ajouter("Analyse_erosion","1",OT_PARAMETRES::DOUBLE,"Analyse d'erosion [1], sans erosion [0]");
252 couturad 951 params->ajouter("Nb_couche","21",OT_PARAMETRES::DOUBLE,"Nombre de couche d'erosion");
253     params->ajouter("Epaisseur_couche","0.02",OT_PARAMETRES::DOUBLE,"Epaisseur d'une couche d'erosion");
254 couturad 926 }
255 couturad 930 if(!erosion)
256     {
257     params->ajouter("Analyse_erosion","0",OT_PARAMETRES::DOUBLE,"Analyse d'erosion [1], sans erosion [0]");
258     }
259 couturad 951 if(type_analyse!=MSTRUCT_ANALYSE::TYPE_ANALYSE::CAO)
260     {
261     params->ajouter("Boite_analyse",0,OT_PARAMETRES::DOUBLE,"Calculer à partir des elements donc le centre de la boite englobante figure dans la boite d'analyse [1]");
262     params->ajouter("Boite3D_analyse_Xmin","0.1",OT_PARAMETRES::DOUBLE,"Xmin boite3D d'analyse");
263     params->ajouter("Boite3D_analyse_Ymin","0.1",OT_PARAMETRES::DOUBLE,"Ymin boite3D d'analyse");
264     params->ajouter("Boite3D_analyse_Zmin","0.1",OT_PARAMETRES::DOUBLE,"Zmin boite3D d'analyse");
265     params->ajouter("Boite3D_analyse_Xmax","0.9",OT_PARAMETRES::DOUBLE,"Xmax boite3D d'analyse");
266     params->ajouter("Boite3D_analyse_Ymax","0.9",OT_PARAMETRES::DOUBLE,"Ymax boite3D d'analyse");
267     params->ajouter("Boite3D_analyse_Zmax","0.9",OT_PARAMETRES::DOUBLE,"Zmax boite3D d'analyse");
268     }
269 couturad 926 }
270    
271     void PARAMETRES::ini_param_ver(OT_PARAMETRES* params)
272     {
273     params->ajouter("Identifiant_epsilon","Champ_EPSILON",OT_PARAMETRES::STRING,"Identifiant de l'analyse du champ epsilon");
274     params->ajouter("Identifiant_sigma","Champ_SIGMA",OT_PARAMETRES::STRING,"Identifiant de l'analyse du champ sigma");
275 couturad 927 params->ajouter("Largeur_colonne_distribution_module_Kapp","100000",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
276     params->ajouter("Largeur_colonne_distribution_module_Gapp","100000",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
277     params->ajouter("Largeur_colonne_distribution_module_Eapp","100000",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
278     params->ajouter("Largeur_colonne_distribution_module_Nuapp","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
279 couturad 930 params->ajouter("Analyse_erosion","0",OT_PARAMETRES::DOUBLE,"Analyse d'erosion [1], sans erosion [0]");
280 couturad 926 }
281    
282    
283 couturad 951 int PARAMETRES::generer_fichier_parametres(int type_etude,int type_generateur,int type_inclusion,bool fem_maill_lin,bool fem_maill_quad)
284 couturad 919 {
285     int mkdir_err=0;
286 couturad 933 std::string sys_command = "mkdir parametre";
287 couturad 919 mkdir_err = system(sys_command.c_str());
288     if(mkdir_err !=0)
289     {
290     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametres! ***" << std::endl;
291     return FAIL;
292     }
293 couturad 933 sys_command.clear(); sys_command.append("mkdir -p "); sys_command.append("parametre/geometrie");
294 couturad 919 mkdir_err = system(sys_command.c_str());
295     if(mkdir_err !=0)
296     {
297     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametres/geometrie ! ***" << std::endl;
298     return FAIL;
299     }
300 couturad 933 sys_command.clear(); sys_command.append("mkdir -p "); sys_command.append("parametre/materiau");
301 couturad 919 mkdir_err = system(sys_command.c_str());
302     if(mkdir_err !=0)
303     {
304     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametre/materiau ! ***" << std::endl;
305     return FAIL;
306     }
307 couturad 933 sys_command.clear(); sys_command.append("mkdir -p "); sys_command.append("parametre/carte");
308 couturad 919 mkdir_err = system(sys_command.c_str());
309     if(mkdir_err !=0)
310     {
311     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametres/carte ! ***" << std::endl;
312     return FAIL;
313     }
314 couturad 933 sys_command.clear(); sys_command.append("mkdir -p "); sys_command.append("parametre/maillage");
315 couturad 919 mkdir_err = system(sys_command.c_str());
316     if(mkdir_err !=0)
317     {
318     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametre/maillage ! ***" << std::endl;
319     return FAIL;
320     }
321 couturad 933 sys_command.clear(); sys_command.append("mkdir -p "); sys_command.append("parametre/fem_maillage");
322 couturad 919 mkdir_err = system(sys_command.c_str());
323     if(mkdir_err !=0)
324     {
325     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametre/fem_maillage ! ***" << std::endl;
326     return FAIL;
327     }
328 couturad 933 sys_command.clear(); sys_command.append("mkdir -p "); sys_command.append("parametre/etude");
329 couturad 919 mkdir_err = system(sys_command.c_str());
330     if(mkdir_err !=0)
331     {
332     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametre/etude ! ***" << std::endl;
333     return FAIL;
334     }
335 couturad 933 sys_command.clear(); sys_command.append("mkdir -p "); sys_command.append("parametre/analyse");
336 couturad 919 mkdir_err = system(sys_command.c_str());
337     if(mkdir_err !=0)
338     {
339 couturad 926 std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametre/analyse ! ***" << std::endl;
340 couturad 919 return FAIL;
341     }
342     std::ofstream f;
343 couturad 951
344     if(type_generateur==MSTRUCT_GENERATEUR::TYPE_GENERATEUR::RSA)
345     {
346     OT_PARAMETRES params_geo_1;
347     ini_param_generateur_rsa(&params_geo_1,type_inclusion);
348     sys_command.clear(); sys_command.append("parametre/geometrie/param_geo_particule.txt");
349     params_geo_1.enregistrer((char*)sys_command.c_str());
350     }
351     else if(type_generateur==MSTRUCT_GENERATEUR::TYPE_GENERATEUR::DCR)
352     {
353     OT_PARAMETRES params_geo_1;
354     ini_param_generateur_dcr(&params_geo_1,type_inclusion);
355     sys_command.clear(); sys_command.append("parametre/geometrie/param_geo_particule.txt");
356     params_geo_1.enregistrer((char*)sys_command.c_str());
357     }
358 couturad 933 sys_command.clear(); sys_command.append("parametre/geometrie/lstparam_geo.txt");
359 couturad 951 f.open(sys_command.c_str(),std::ios::out);
360 couturad 919 f << "// Fichier de parametres GEOMETRIE" << std::endl;
361     f << "// [Nombre de fichier de parametres]" << std::endl;
362 couturad 926 f << "NB_FICHIER_PARAM 1" << std::endl;
363 couturad 951 f << "param_geo_particule.txt" << std::endl;
364 couturad 919 f.close();
365 couturad 951
366     OT_PARAMETRES params_mat_particule;
367     ini_param_materiau(&params_mat_particule,(char*)"Particule");
368     params_mat_particule.change_valeur("Mu_E",75.0e9);
369     params_mat_particule.change_valeur("Mu_nu",0.22);
370     sys_command.clear(); sys_command.append("parametre/materiau/param_mat_particule.txt");
371     params_mat_particule.enregistrer((char*)sys_command.c_str());
372 couturad 919 OT_PARAMETRES params_mat_matrice;
373     ini_param_materiau(&params_mat_matrice,(char*)"Matrice");
374 couturad 926 params_mat_matrice.change_valeur("Mu_E",3.5e9);
375     params_mat_matrice.change_valeur("Mu_nu",0.33);
376 couturad 933 sys_command.clear(); sys_command.append("parametre/materiau/param_mat_matrice.txt");
377 couturad 919 params_mat_matrice.enregistrer((char*)sys_command.c_str());
378    
379 couturad 951 sys_command.clear(); sys_command.append("parametre/materiau/lstparam_mat.txt");
380     f.open(sys_command.c_str(),std::ios::out);
381     f << "// Fichier de parametres MATERIAU" << std::endl;
382     f << "// [Nombre de fichier de parametres]" << std::endl;
383     f << "NB_FICHIER_PARAM 2" << std::endl;
384     f << "param_mat_particule.txt" << std::endl;
385     f << "param_mat_matrice.txt" << std::endl;
386     f.close();
387    
388    
389 couturad 919 OT_PARAMETRES params_carte;
390     ini_param_carte_taille(&params_carte);
391 couturad 933 sys_command.clear(); sys_command.append("parametre/carte/param_carte.txt");
392 couturad 919 params_carte.enregistrer((char*)sys_command.c_str());
393    
394     OT_PARAMETRES params_maill;
395     ini_param_mailleur(&params_maill);
396 couturad 933 sys_command.clear(); sys_command.append("parametre/maillage/param_maill.txt");
397 couturad 919 params_maill.enregistrer((char*)sys_command.c_str());
398 couturad 951
399     if(fem_maill_lin)
400     {
401     OT_PARAMETRES params_fem_maillage_lin;
402     ini_param_mailleur_fem(&params_fem_maillage_lin);
403     params_fem_maillage_lin.change_valeur("Degre",1);
404     sys_command.clear(); sys_command.append("parametre/fem_maillage/param_fem_maill_lin.txt");
405     params_fem_maillage_lin.enregistrer((char*)sys_command.c_str());
406    
407     OT_PARAMETRES params_etude_CLDH_sph_lin;
408     ini_param_etude(&params_etude_CLDH_sph_lin,type_etude);
409     params_etude_CLDH_sph_lin.change_valeur("Nom_etude","etude_CLDH_sph_lin");
410     params_etude_CLDH_sph_lin.change_valeur("Type_Chargement",0);
411     params_etude_CLDH_sph_lin.change_valeur("Type_CL",0);
412     params_etude_CLDH_sph_lin.change_valeur("Valeur_CL",0.0001);
413     sys_command.clear(); sys_command.append("parametre/etude/param_etude_CLDH_sph_lin.txt");
414     params_etude_CLDH_sph_lin.enregistrer((char*)sys_command.c_str());
415    
416     OT_PARAMETRES params_etude_CLCH_sph_lin;
417     ini_param_etude(&params_etude_CLCH_sph_lin,type_etude);
418     params_etude_CLCH_sph_lin.change_valeur("Nom_etude","etude_CLCH_sph_lin");
419     params_etude_CLCH_sph_lin.change_valeur("Type_Chargement",0);
420     params_etude_CLCH_sph_lin.change_valeur("Type_CL",1);
421     params_etude_CLCH_sph_lin.change_valeur("Valeur_CL",1000);
422     sys_command.clear(); sys_command.append("parametre/etude/param_etude_CLCH_sph_lin.txt");
423     params_etude_CLCH_sph_lin.enregistrer((char*)sys_command.c_str());
424    
425     OT_PARAMETRES params_etude_CLDH_dev_lin;
426     ini_param_etude(&params_etude_CLDH_dev_lin,type_etude);
427     params_etude_CLDH_dev_lin.change_valeur("Nom_etude","etude_CLDH_dev_lin");
428     params_etude_CLDH_dev_lin.change_valeur("Type_Chargement",1);
429     params_etude_CLDH_dev_lin.change_valeur("Type_CL",0);
430     params_etude_CLDH_dev_lin.change_valeur("Valeur_CL",0.0001);
431     sys_command.clear(); sys_command.append("parametre/etude/param_etude_CLDH_dev_lin.txt");
432     params_etude_CLDH_dev_lin.enregistrer((char*)sys_command.c_str());
433    
434     OT_PARAMETRES params_etude_CLCH_dev_lin;
435     ini_param_etude(&params_etude_CLCH_dev_lin,type_etude);
436     params_etude_CLCH_dev_lin.change_valeur("Nom_etude","etude_CLCH_dev_lin");
437     params_etude_CLCH_dev_lin.change_valeur("Type_Chargement",1);
438     params_etude_CLCH_dev_lin.change_valeur("Type_CL",1);
439     params_etude_CLCH_dev_lin.change_valeur("Valeur_CL",1000);
440     sys_command.clear(); sys_command.append("parametre/etude/param_etude_CLCH_dev_lin.txt");
441     params_etude_CLCH_dev_lin.enregistrer((char*)sys_command.c_str());
442     }
443 couturad 919
444 couturad 951 if(fem_maill_quad)
445     {
446     OT_PARAMETRES params_fem_maillage_quad;
447     ini_param_mailleur_fem(&params_fem_maillage_quad);
448     params_fem_maillage_quad.change_valeur("Degre",2);
449     sys_command.clear(); sys_command.append("parametre/fem_maillage/param_fem_maill_quad.txt");
450     params_fem_maillage_quad.enregistrer((char*)sys_command.c_str());
451    
452     OT_PARAMETRES params_etude_CLDH_sph_quad;
453     ini_param_etude(&params_etude_CLDH_sph_quad,MSTRUCT_VES::TYPE_ETUDE::MECANIQUE);
454     params_etude_CLDH_sph_quad.change_valeur("Nom_etude","etude_CLDH_sph_quad");
455     params_etude_CLDH_sph_quad.change_valeur("Type_Chargement",0);
456     params_etude_CLDH_sph_quad.change_valeur("Type_CL",0);
457     params_etude_CLDH_sph_quad.change_valeur("Valeur_CL",0.0001);
458     sys_command.clear(); sys_command.append("parametre/etude/param_etude_CLDH_sph_quad.txt");
459     params_etude_CLDH_sph_quad.enregistrer((char*)sys_command.c_str());
460    
461     OT_PARAMETRES params_etude_CLCH_sph_quad;
462     ini_param_etude(&params_etude_CLCH_sph_quad,MSTRUCT_VES::TYPE_ETUDE::MECANIQUE);
463     params_etude_CLCH_sph_quad.change_valeur("Nom_etude","etude_CLCH_sph_quad");
464     params_etude_CLCH_sph_quad.change_valeur("Type_Chargement",0);
465     params_etude_CLCH_sph_quad.change_valeur("Type_CL",1);
466     params_etude_CLCH_sph_quad.change_valeur("Valeur_CL",1000);
467     sys_command.clear(); sys_command.append("parametre/etude/param_etude_CLCH_sph_quad.txt");
468     params_etude_CLCH_sph_quad.enregistrer((char*)sys_command.c_str());
469    
470     OT_PARAMETRES params_etude_CLDH_dev_quad;
471     ini_param_etude(&params_etude_CLDH_dev_quad,MSTRUCT_VES::TYPE_ETUDE::MECANIQUE);
472     params_etude_CLDH_dev_quad.change_valeur("Nom_etude","etude_CLDH_dev_quad");
473     params_etude_CLDH_dev_quad.change_valeur("Type_Chargement",1);
474     params_etude_CLDH_dev_quad.change_valeur("Type_CL",0);
475     params_etude_CLDH_dev_quad.change_valeur("Valeur_CL",0.0001);
476     sys_command.clear(); sys_command.append("parametre/etude/param_etude_CLDH_dev_quad.txt");
477     params_etude_CLDH_dev_quad.enregistrer((char*)sys_command.c_str());
478    
479     OT_PARAMETRES params_etude_CLCH_dev_quad;
480     ini_param_etude(&params_etude_CLCH_dev_quad,MSTRUCT_VES::TYPE_ETUDE::MECANIQUE);
481     params_etude_CLCH_dev_quad.change_valeur("Nom_etude","etude_CLCH_dev_quad");
482     params_etude_CLCH_dev_quad.change_valeur("Type_Chargement",1);
483     params_etude_CLCH_dev_quad.change_valeur("Type_CL",1);
484     params_etude_CLCH_dev_quad.change_valeur("Valeur_CL",1000);
485     sys_command.clear(); sys_command.append("parametre/etude/param_etude_CLCH_dev_quad.txt");
486     params_etude_CLCH_dev_quad.enregistrer((char*)sys_command.c_str());
487     }
488 couturad 919
489 couturad 926 MG_EXPORT exp;
490     OT_PARAMETRES *params_aster=exp.get_param_aster();
491     params_aster->change_valeur("Memoire",3072);
492     params_aster->change_valeur("Temps_max",250000);
493     params_aster->change_valeur("Nb_CPU",8);
494     params_aster->change_valeur("Noeud_ele",2);
495 couturad 929 params_aster->change_valeur("Base_num_mail",36);
496 couturad 933 sys_command.clear(); sys_command.append("parametre/etude/param_aster.txt");
497 couturad 951 params_aster->enregistrer((char*)sys_command.c_str());
498 couturad 926
499     OT_PARAMETRES params_analyse_cao_all;
500     ini_param_analyse(&params_analyse_cao_all,MSTRUCT_ANALYSE::TYPE_ANALYSE::CAO);
501     params_analyse_cao_all.change_valeur("Identifiant","Cao_ALL");
502 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_cao_all.txt");
503 couturad 926 params_analyse_cao_all.enregistrer((char*)sys_command.c_str());
504 couturad 951 OT_PARAMETRES params_analyse_cao_particule;
505     ini_param_analyse(&params_analyse_cao_particule,MSTRUCT_ANALYSE::TYPE_ANALYSE::CAO);
506     params_analyse_cao_particule.change_valeur("Identifiant","Cao_Particule");
507     params_analyse_cao_particule.change_valeur("Nom_groupe_forme","Particule");
508     sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_cao_particule.txt");
509     params_analyse_cao_particule.enregistrer((char*)sys_command.c_str());
510 couturad 926 OT_PARAMETRES params_analyse_cao_matrice;
511     ini_param_analyse(&params_analyse_cao_matrice,MSTRUCT_ANALYSE::TYPE_ANALYSE::CAO);
512     params_analyse_cao_matrice.change_valeur("Identifiant","Cao_Matrice");
513     params_analyse_cao_matrice.change_valeur("Nom_groupe_forme","Matrice");
514 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_cao_matrice.txt");
515 couturad 926 params_analyse_cao_matrice.enregistrer((char*)sys_command.c_str());
516    
517 couturad 951 if(type_inclusion==MSTRUCT_GENERATEUR_RSA::TYPE_INCLUSION::CYLINDRE)
518     {
519     OT_PARAMETRES params_analyse_orientation;
520     ini_param_analyse(&params_analyse_orientation,MSTRUCT_ANALYSE::TYPE_ANALYSE::ORIENTATION);
521     params_analyse_orientation.change_valeur("Identifiant","Orientation_Particule");
522     sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_orientation.txt");
523     params_analyse_orientation.enregistrer((char*)sys_command.c_str());
524     }
525    
526     sys_command.clear(); sys_command.append("parametre/analyse/lstparam_analyse_geometrie.txt");
527     f.open(sys_command.c_str(),std::ios::out);
528     if(type_inclusion==MSTRUCT_GENERATEUR_RSA::TYPE_INCLUSION::CYLINDRE)
529     {
530     f << "// Fichier de parametres ANALYSE" << std::endl;
531     f << "// Nombre de fichier de parametres" << std::endl;
532     f << "NB_FICHIER_PARAM 4" << std::endl;
533     f << "params_analyse_cao_all.txt" << std::endl;
534     f << "params_analyse_cao_particule.txt" << std::endl;
535     f << "params_analyse_cao_matrice.txt" << std::endl;
536     f << "params_analyse_orientation.txt" << std::endl;
537     }
538     else
539     {
540     f << "// Fichier de parametres ANALYSE" << std::endl;
541     f << "// Nombre de fichier de parametres" << std::endl;
542     f << "NB_FICHIER_PARAM 3" << std::endl;
543     f << "params_analyse_cao_all.txt" << std::endl;
544     f << "params_analyse_cao_particule.txt" << std::endl;
545     f << "params_analyse_cao_matrice.txt" << std::endl;
546     }
547     f.close();
548    
549 couturad 926 OT_PARAMETRES params_analyse_mg_maillage_all;
550     ini_param_analyse(&params_analyse_mg_maillage_all,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_MG);
551     params_analyse_mg_maillage_all.change_valeur("Identifiant","MG_maillage_ALL");
552 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_mg_maillage_all.txt");
553 couturad 926 params_analyse_mg_maillage_all.enregistrer((char*)sys_command.c_str());
554 couturad 951 OT_PARAMETRES params_analyse_mg_maillage_particule;
555     ini_param_analyse(&params_analyse_mg_maillage_particule,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_MG);
556     params_analyse_mg_maillage_particule.change_valeur("Identifiant","MG_maillage_Particule");
557     params_analyse_mg_maillage_particule.change_valeur("Nom_groupe_forme","Particule");
558     sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_mg_maillage_particule.txt");
559     params_analyse_mg_maillage_particule.enregistrer((char*)sys_command.c_str());
560 couturad 926 OT_PARAMETRES params_analyse_mg_maillage_matrice;
561     ini_param_analyse(&params_analyse_mg_maillage_matrice,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_MG);
562     params_analyse_mg_maillage_matrice.change_valeur("Identifiant","MG_maillage_Matrice");
563     params_analyse_mg_maillage_matrice.change_valeur("Nom_groupe_forme","Matrice");
564 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_mg_maillage_matrice.txt");
565 couturad 926 params_analyse_mg_maillage_matrice.enregistrer((char*)sys_command.c_str());
566    
567 couturad 951 sys_command.clear(); sys_command.append("parametre/analyse/lstparam_analyse_mg_maillage.txt");
568     f.open(sys_command.c_str(),std::ios::out);
569     f << "// Fichier de parametres ANALYSE" << std::endl;
570 couturad 926 f << "// Nombre de fichier de parametres" << std::endl;
571 couturad 930 f << "NB_FICHIER_PARAM 3" << std::endl;
572 couturad 951 f << "params_analyse_mg_maillage_all.txt" << std::endl;
573     f << "params_analyse_mg_maillage_particule.txt" << std::endl;
574     f << "params_analyse_mg_maillage_matrice.txt" << std::endl;
575     f.close();
576 couturad 926
577 couturad 951 if(fem_maill_lin)
578     {
579     OT_PARAMETRES params_analyse_fem_maillage_all_erosion_lin;
580     ini_param_analyse(&params_analyse_fem_maillage_all_erosion_lin,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM,true);
581     params_analyse_fem_maillage_all_erosion_lin.change_valeur("Identifiant","FEM_maillage_ALL_erosion_lin");
582     sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_fem_maillage_all_erosion_lin.txt");
583     params_analyse_fem_maillage_all_erosion_lin.enregistrer((char*)sys_command.c_str());
584     OT_PARAMETRES params_analyse_fem_maillage_particule_erosion_lin;
585     ini_param_analyse(&params_analyse_fem_maillage_particule_erosion_lin,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM,true);
586     params_analyse_fem_maillage_particule_erosion_lin.change_valeur("Identifiant","FEM_maillage_Particule_erosion_lin");
587     params_analyse_fem_maillage_particule_erosion_lin.change_valeur("Nom_groupe_forme","Particule");
588     sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_fem_maillage_particule_erosion_lin.txt");
589     params_analyse_fem_maillage_particule_erosion_lin.enregistrer((char*)sys_command.c_str());
590     OT_PARAMETRES params_analyse_fem_maillage_matrice_erosion_lin;
591     ini_param_analyse(&params_analyse_fem_maillage_matrice_erosion_lin,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM,true);
592     params_analyse_fem_maillage_matrice_erosion_lin.change_valeur("Identifiant","FEM_maillage_Matrice_erosion_lin");
593     params_analyse_fem_maillage_matrice_erosion_lin.change_valeur("Nom_groupe_forme","Matrice");
594     sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_fem_maillage_matrice_erosion_lin.txt");
595     params_analyse_fem_maillage_matrice_erosion_lin.enregistrer((char*)sys_command.c_str());
596    
597     sys_command.clear(); sys_command.append("parametre/analyse/lstparam_analyse_fem_maillage_lin.txt");
598     f.open(sys_command.c_str(),std::ios::out);
599     if(type_inclusion==MSTRUCT_GENERATEUR_RSA::TYPE_INCLUSION::CYLINDRE)
600     {
601     OT_PARAMETRES params_analyse_orientation_ponderee_erosion_lin;
602     ini_param_analyse(&params_analyse_orientation_ponderee_erosion_lin,MSTRUCT_ANALYSE::TYPE_ANALYSE::ORIENTATION_PONDEREE,true);
603     params_analyse_orientation_ponderee_erosion_lin.change_valeur("Identifiant","Orientation_Particule_ponderee_erosion_lin");
604     sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_orientation_ponderee_erosion_lin.txt");
605     params_analyse_orientation_ponderee_erosion_lin.enregistrer((char*)sys_command.c_str());
606    
607     f << "// Fichier de parametres ANALYSE" << std::endl;
608     f << "// Nombre de fichier de parametres" << std::endl;
609     f << "NB_FICHIER_PARAM 4" << std::endl;
610     f << "params_analyse_fem_maillage_all_erosion_lin.txt" << std::endl;
611     f << "params_analyse_fem_maillage_particule_erosion_lin.txt" << std::endl;
612     f << "params_analyse_fem_maillage_matrice_erosion_lin.txt" << std::endl;
613     f << "params_analyse_orientation_ponderee_erosion_lin.txt" << std::endl;
614     }
615     else
616     {
617     f << "// Fichier de parametres ANALYSE" << std::endl;
618     f << "// Nombre de fichier de parametres" << std::endl;
619     f << "NB_FICHIER_PARAM 3" << std::endl;
620     f << "params_analyse_fem_maillage_all_erosion_lin.txt" << std::endl;
621     f << "params_analyse_fem_maillage_particule_erosion_lin.txt" << std::endl;
622     f << "params_analyse_fem_maillage_matrice_erosion_lin.txt" << std::endl;
623     }
624    
625     f.close();
626     }
627 couturad 926
628 couturad 951 if(fem_maill_quad)
629     {
630     OT_PARAMETRES params_analyse_fem_maillage_all_erosion_quad;
631     ini_param_analyse(&params_analyse_fem_maillage_all_erosion_quad,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM,true);
632     params_analyse_fem_maillage_all_erosion_quad.change_valeur("Identifiant","FEM_maillage_ALL_erosion_quad");
633     sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_fem_maillage_all_erosion_quad.txt");
634     params_analyse_fem_maillage_all_erosion_quad.enregistrer((char*)sys_command.c_str());
635     OT_PARAMETRES params_analyse_fem_maillage_particule_erosion_quad;
636     ini_param_analyse(&params_analyse_fem_maillage_particule_erosion_quad,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM,true);
637     params_analyse_fem_maillage_particule_erosion_quad.change_valeur("Identifiant","FEM_maillage_Particule_erosion_quad");
638     params_analyse_fem_maillage_particule_erosion_quad.change_valeur("Nom_groupe_forme","Particule");
639     sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_fem_maillage_particule_erosion_quad.txt");
640     params_analyse_fem_maillage_particule_erosion_quad.enregistrer((char*)sys_command.c_str());
641     OT_PARAMETRES params_analyse_fem_maillage_matrice_erosion_quad;
642     ini_param_analyse(&params_analyse_fem_maillage_matrice_erosion_quad,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM,true);
643     params_analyse_fem_maillage_matrice_erosion_quad.change_valeur("Identifiant","FEM_maillage_Matrice_erosion_quad");
644     params_analyse_fem_maillage_matrice_erosion_quad.change_valeur("Nom_groupe_forme","Matrice");
645     sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_fem_maillage_matrice_erosion_quad.txt");
646     params_analyse_fem_maillage_matrice_erosion_quad.enregistrer((char*)sys_command.c_str());
647    
648     sys_command.clear(); sys_command.append("parametre/analyse/lstparam_analyse_fem_maillage_quad.txt");
649     f.open(sys_command.c_str(),std::ios::out);
650     if(type_inclusion==MSTRUCT_GENERATEUR_RSA::TYPE_INCLUSION::CYLINDRE)
651     {
652     OT_PARAMETRES params_analyse_orientation_ponderee_erosion_quad;
653     ini_param_analyse(&params_analyse_orientation_ponderee_erosion_quad,MSTRUCT_ANALYSE::TYPE_ANALYSE::ORIENTATION_PONDEREE,true);
654     params_analyse_orientation_ponderee_erosion_quad.change_valeur("Identifiant","Orientation_Particule_ponderee_erosion_quad");
655     sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_orientation_ponderee_erosion_quad.txt");
656     params_analyse_orientation_ponderee_erosion_quad.enregistrer((char*)sys_command.c_str());
657     f << "// Fichier de parametres ANALYSE" << std::endl;
658     f << "// Nombre de fichier de parametres" << std::endl;
659     f << "NB_FICHIER_PARAM 4" << std::endl;
660     f << "params_analyse_fem_maillage_all_erosion_quad.txt" << std::endl;
661     f << "params_analyse_fem_maillage_particule_erosion_quad.txt" << std::endl;
662     f << "params_analyse_fem_maillage_matrice_erosion_quad.txt" << std::endl;
663     f << "params_analyse_orientation_ponderee_erosion_quad.txt" << std::endl;
664     }
665     else
666     {
667     f << "// Fichier de parametres ANALYSE" << std::endl;
668     f << "// Nombre de fichier de parametres" << std::endl;
669     f << "NB_FICHIER_PARAM 3" << std::endl;
670     f << "params_analyse_fem_maillage_all_erosion_quad.txt" << std::endl;
671     f << "params_analyse_fem_maillage_particule_erosion_quad.txt" << std::endl;
672     f << "params_analyse_fem_maillage_matrice_erosion_quad.txt" << std::endl;
673     }
674    
675     f.close();
676     }
677 couturad 930
678 couturad 951 if(fem_maill_lin)
679     {
680     OT_PARAMETRES params_analyse_champ_sigma_erosion_lin;
681     ini_param_analyse(&params_analyse_champ_sigma_erosion_lin,MSTRUCT_ANALYSE::TYPE_ANALYSE::CHAMP,true);
682     params_analyse_champ_sigma_erosion_lin.change_valeur("Identifiant","Champ_SIGMA_erosion_lin");
683     sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_champ_sigma_erosion_lin.txt");
684     params_analyse_champ_sigma_erosion_lin.enregistrer((char*)sys_command.c_str());
685    
686     OT_PARAMETRES params_analyse_champ_epsilon_erosion_lin;
687     ini_param_analyse(&params_analyse_champ_epsilon_erosion_lin,MSTRUCT_ANALYSE::TYPE_ANALYSE::CHAMP,true);
688     params_analyse_champ_epsilon_erosion_lin.change_valeur("Identifiant","Champ_EPSILON_erosion_lin");
689     params_analyse_champ_epsilon_erosion_lin.change_valeur("Num_solution",1);
690     params_analyse_champ_epsilon_erosion_lin.change_valeur("Largeur_colonne_distribution",0.00000000001);
691     sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_champ_epsilon_erosion_lin.txt");
692     params_analyse_champ_epsilon_erosion_lin.enregistrer((char*)sys_command.c_str());
693    
694     sys_command.clear(); sys_command.append("parametre/analyse/lstparam_analyse_champ_lin.txt");
695     f.open(sys_command.c_str(),std::ios::out);
696     f << "// Fichier de parametres ANALYSE" << std::endl;
697     f << "// Nombre de fichier de parametres" << std::endl;
698     f << "NB_FICHIER_PARAM 2" << std::endl;
699     f << "params_analyse_champ_sigma_erosion_lin.txt" << std::endl;
700     f << "params_analyse_champ_epsilon_erosion_lin.txt" << std::endl;
701     f.close();
702     }
703 couturad 933
704 couturad 951 if(fem_maill_quad)
705     {
706     OT_PARAMETRES params_analyse_champ_sigma_erosion_quad;
707     ini_param_analyse(&params_analyse_champ_sigma_erosion_quad,MSTRUCT_ANALYSE::TYPE_ANALYSE::CHAMP,true);
708     params_analyse_champ_sigma_erosion_quad.change_valeur("Identifiant","Champ_SIGMA_erosion_quad");
709     sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_champ_sigma_erosion_quad.txt");
710     params_analyse_champ_sigma_erosion_quad.enregistrer((char*)sys_command.c_str());
711    
712     OT_PARAMETRES params_analyse_champ_epsilon_erosion_quad;
713     ini_param_analyse(&params_analyse_champ_epsilon_erosion_quad,MSTRUCT_ANALYSE::TYPE_ANALYSE::CHAMP,true);
714     params_analyse_champ_epsilon_erosion_quad.change_valeur("Identifiant","Champ_EPSILON_erosion_quad");
715     params_analyse_champ_epsilon_erosion_quad.change_valeur("Num_solution",1);
716     params_analyse_champ_epsilon_erosion_quad.change_valeur("Largeur_colonne_distribution",0.00000000001);
717     sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_champ_epsilon_erosion_quad.txt");
718     params_analyse_champ_epsilon_erosion_quad.enregistrer((char*)sys_command.c_str());
719    
720     sys_command.clear(); sys_command.append("parametre/analyse/lstparam_analyse_champ_quad.txt");
721     f.open(sys_command.c_str(),std::ios::out);
722     f << "// Fichier de parametres ANALYSE" << std::endl;
723     f << "// Nombre de fichier de parametres" << std::endl;
724     f << "NB_FICHIER_PARAM 2" << std::endl;
725     f << "params_analyse_champ_sigma_erosion_quad.txt" << std::endl;
726     f << "params_analyse_champ_epsilon_erosion_quad.txt" << std::endl;
727     f.close();
728     }
729    
730     if(fem_maill_lin)
731     {
732     OT_PARAMETRES params_ver_erosion_lin;
733     ini_param_ver(&params_ver_erosion_lin);
734     params_ver_erosion_lin.change_valeur("Identifiant_epsilon","Champ_EPSILON_erosion_lin");
735     params_ver_erosion_lin.change_valeur("Identifiant_sigma","Champ_SIGMA_erosion_lin");
736     params_ver_erosion_lin.change_valeur("Analyse_erosion","1");
737     sys_command.clear(); sys_command.append("parametre/analyse/params_ver_erosion_lin.txt");
738     params_ver_erosion_lin.enregistrer((char*)sys_command.c_str());
739    
740     sys_command.clear(); sys_command.append("parametre/analyse/lstparam_ver_lin.txt");
741     f.open(sys_command.c_str(),std::ios::out);
742     f << "// Fichier de parametres ANALYSE" << std::endl;
743     f << "// Nombre de fichier de parametres" << std::endl;
744     f << "NB_FICHIER_PARAM 1" << std::endl;
745     f << "params_ver_erosion_lin.txt" << std::endl;
746     f.close();
747     }
748    
749     if(fem_maill_quad)
750     {
751     OT_PARAMETRES params_ver_erosion_quad;
752     ini_param_ver(&params_ver_erosion_quad);
753     params_ver_erosion_quad.change_valeur("Identifiant_epsilon","Champ_EPSILON_erosion_quad");
754     params_ver_erosion_quad.change_valeur("Identifiant_sigma","Champ_SIGMA_erosion_quad");
755     params_ver_erosion_quad.change_valeur("Analyse_erosion","1");
756     sys_command.clear(); sys_command.append("parametre/analyse/params_ver_erosion_quad.txt");
757     params_ver_erosion_quad.enregistrer((char*)sys_command.c_str());
758    
759     sys_command.clear(); sys_command.append("parametre/analyse/lstparam_ver_quad.txt");
760     f.open(sys_command.c_str(),std::ios::out);
761     f << "// Fichier de parametres ANALYSE" << std::endl;
762     f << "// Nombre de fichier de parametres" << std::endl;
763     f << "NB_FICHIER_PARAM 1" << std::endl;
764     f << "params_ver_erosion_quad.txt" << std::endl;
765     f.close();
766     }
767 couturad 919 return OK;
768     }
769    
770 couturad 951 int PARAMETRES::generer_script_ves(int type_etude,int type_inclusion,bool fem_maill_lin,bool fem_maill_quad)
771 couturad 929 {
772     if(type_etude==MSTRUCT_VES::TYPE_ETUDE::MECANIQUE)
773     {
774 couturad 951 std::ofstream ofstrm((char*)"generer_nb_ves",std::ios::out|std::ios::trunc);
775 couturad 929 ofstrm.precision(16);
776     ofstrm.setf(std::ios::showpoint);
777     ofstrm << "#!/bin/bash" << std::endl;
778     ofstrm << "INDEX_DEPART=$1" << std::endl;
779     ofstrm << "INDEX_FIN=$2" << std::endl;
780     ofstrm << "DOSSIER_PARAM=$3" << std::endl;
781     ofstrm << "CHEMINCOMPILE=$4" << std::endl;
782     ofstrm << "if [ -z ${INDEX_DEPART// } ]" << std::endl;
783     ofstrm << "then" << std::endl;
784     ofstrm << " echo \"Erreur : Numero du ves de depart manquant\"" << std::endl;
785     ofstrm << " exit" << std::endl;
786     ofstrm << "fi" << std::endl;
787     ofstrm << "if [ -z ${INDEX_FIN// } ]" << std::endl;
788     ofstrm << "then" << std::endl;
789     ofstrm << " echo \"Erreur : Numero du ves de fin manquant\"" << std::endl;
790     ofstrm << " exit" << std::endl;
791     ofstrm << "fi" << std::endl;
792     ofstrm << "if [ -z ${DOSSIER_PARAM// } ]" << std::endl;
793     ofstrm << "then" << std::endl;
794     ofstrm << " echo \"Erreur : Dossier de parametres manquant\"" << std::endl;
795     ofstrm << " exit" << std::endl;
796     ofstrm << "fi" << std::endl;
797     ofstrm << "if [ -z ${CHEMINCOMPILE// } ]" << std::endl;
798     ofstrm << "then" << std::endl;
799 couturad 958 ofstrm << " if [ -z $PATHMAGICEXEAPP ]" << std::endl;
800     ofstrm << " then" << std::endl;
801     ofstrm << " echo \"Erreur : Chemin vers exe/app manquant\"" << std::endl;
802     ofstrm << " exit" << std::endl;
803     ofstrm << " else" << std::endl;
804     ofstrm << " CHEMINCOMPILE=$PATHMAGICEXEAPP" << std::endl;
805     ofstrm << " fi" << std::endl;
806 couturad 929 ofstrm << "fi" << std::endl;
807     ofstrm << "function executer" << std::endl;
808     ofstrm << "{" << std::endl;
809     ofstrm << "OPERATION_REUSSIE=1;" << std::endl;
810     ofstrm << "$*" << std::endl;
811     ofstrm << "VAR=$?" << std::endl;
812     ofstrm << "if (( $VAR )) ; then " << std::endl;
813     ofstrm << " OPERATION_REUSSIE=0; " << std::endl;
814     ofstrm << " STAT=$VAR;" << std::endl;
815     ofstrm << "fi" << std::endl;
816     ofstrm << "}" << std::endl;
817     ofstrm << "" << std::endl;
818     ofstrm << "echo \"*********************************************************\"" << std::endl;
819     ofstrm << "echo \"Generation des microstructures $INDEX_DEPART - $INDEX_FIN\"" << std::endl;
820     ofstrm << "echo \"*********************************************************\"" << std::endl;
821     ofstrm << "STAT=$?" << std::endl;
822     ofstrm << "" << std::endl;
823     ofstrm << "if [ $INDEX_DEPART -eq 1 ]" << std::endl;
824     ofstrm << "then" << std::endl;
825     ofstrm << "mkdir etude" << std::endl;
826     ofstrm << "fi" << std::endl;
827     ofstrm << "cd etude" << std::endl;
828     ofstrm << "for (( k=$INDEX_DEPART; k<=$INDEX_FIN; k++ ))" << std::endl;
829     ofstrm << "do" << std::endl;
830     ofstrm << " echo \"Microstructure #$k\"" << std::endl;
831     ofstrm << " mkdir e$k" << std::endl;
832     ofstrm << " cd e$k" << std::endl;
833     ofstrm << " OPERATION_REUSSIE=0" << std::endl;
834     ofstrm << " until [ $OPERATION_REUSSIE -eq 1 ]; do" << std::endl;
835 couturad 958 ofstrm << " executer ../../ves ../../$DOSSIER_PARAM $CHEMINCOMPILE" << std::endl;
836 couturad 929 ofstrm << " done" << std::endl;
837 couturad 951 ofstrm << " DOSSIER_ACTUEL=$(pwd)" << std::endl;
838     ofstrm << " echo \"$DOSSIER_ACTUEL/ves_geo_analyse.ves\" >> ../../lst_ves_geo_analyse.txt" << std::endl;
839     ofstrm << " echo \"$DOSSIER_ACTUEL/ves_mg_maill_analyse.ves\" >> ../../lst_ves_mg_maill_analyse.txt" << std::endl;
840     if(fem_maill_lin)
841     {
842     ofstrm << " echo \"$DOSSIER_ACTUEL/ves_fem_maill_analyse_lin.ves\" >> ../../lst_ves_fem_maill_analyse_lin.txt" << std::endl;
843     ofstrm << " echo \"$DOSSIER_ACTUEL/ves_calcul_CLDH_sph_analyse_lin.ves\" >> ../../lst_ves_calcul_CLDH_sph_analyse_lin.txt" << std::endl;
844     ofstrm << " echo \"$DOSSIER_ACTUEL/ves_calcul_CLCH_sph_analyse_lin.ves\" >> ../../lst_ves_calcul_CLCH_sph_analyse_lin.txt" << std::endl;
845     ofstrm << " echo \"$DOSSIER_ACTUEL/ves_calcul_CLDH_dev_analyse_lin.ves\" >> ../../lst_ves_calcul_CLDH_dev_analyse_lin.txt" << std::endl;
846     ofstrm << " echo \"$DOSSIER_ACTUEL/ves_calcul_CLCH_dev_analyse_lin.ves\" >> ../../lst_ves_calcul_CLCH_dev_analyse_lin.txt" << std::endl;
847     }
848     if(fem_maill_quad)
849     {
850     ofstrm << " echo \"$DOSSIER_ACTUEL/ves_fem_maill_analyse_quad.ves\" >> ../../lst_ves_fem_maill_analyse_quad.txt" << std::endl;
851     ofstrm << " echo \"$DOSSIER_ACTUEL/ves_calcul_CLDH_sph_analyse_quad.ves\" >> ../../lst_ves_calcul_CLDH_sph_analyse_quad.txt" << std::endl;
852     ofstrm << " echo \"$DOSSIER_ACTUEL/ves_calcul_CLCH_sph_analyse_quad.ves\" >> ../../lst_ves_calcul_CLCH_sph_analyse_quad.txt" << std::endl;
853     ofstrm << " echo \"$DOSSIER_ACTUEL/ves_calcul_CLDH_dev_analyse_quad.ves\" >> ../../lst_ves_calcul_CLDH_dev_analyse_quad.txt" << std::endl;
854     ofstrm << " echo \"$DOSSIER_ACTUEL/ves_calcul_CLCH_dev_analyse_quad.ves\" >> ../../lst_ves_calcul_CLCH_dev_analyse_quad.txt" << std::endl;
855     }
856 couturad 929 ofstrm << " cd .." << std::endl;
857     ofstrm << "done" << std::endl;
858     ofstrm << "cd .." << std::endl;
859     ofstrm << "echo \"**********************\"" << std::endl;
860     ofstrm << "echo \" FIN \"" << std::endl;
861     ofstrm << "echo \"**********************\"" << std::endl;
862     ofstrm << "exit $STAT" << std::endl;
863     ofstrm.close();
864     system((char*)"chmod 744 generer_nb_ves");
865    
866     ofstrm.open((char*)"ves",std::ios::out|std::ios::trunc);
867     ofstrm.precision(16);
868     ofstrm.setf(std::ios::showpoint);
869     ofstrm << "#!/bin/bash" << std::endl;
870     ofstrm << "DOSSIER_PARAM=$1" << std::endl;
871     ofstrm << "CHEMINCOMPILE=$2" << std::endl;
872     ofstrm << "function executer" << std::endl;
873     ofstrm << "{" << std::endl;
874     ofstrm << "$*" << std::endl;
875     ofstrm << "VAR=$?" << std::endl;
876     ofstrm << "if (( $VAR )) ; then " << std::endl;
877     ofstrm << " STATUSTXT=\"ERREUR dans les tests\"; " << std::endl;
878     ofstrm << " STAT=$VAR;" << std::endl;
879     ofstrm << " exit $STAT" << std::endl;
880     ofstrm << "fi" << std::endl;
881     ofstrm << "}" << std::endl;
882     ofstrm << "STATUSTXT=\"Test sans ERREUR\"" << std::endl;
883     ofstrm << "echo \"*******************************\"" << std::endl;
884     ofstrm << "echo \"Generation d'une microstructure\"" << std::endl;
885     ofstrm << "echo \"*******************************\"" << std::endl;
886     ofstrm << "STAT=$?" << std::endl;
887 couturad 951 ofstrm << "" << std::endl;
888     ofstrm << "#Geometrie" << std::endl;
889 couturad 929 ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_geo -ves_out ves_geo.ves -lstparam $DOSSIER_PARAM/geometrie/lstparam_geo.txt" << std::endl;
890 couturad 951 ofstrm << "executer $CHEMINCOMPILE/mgoperation/mgoperation.exe -brep_out -in ves_geo.magic -out ves_brep.brep" << std::endl;
891     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_analyse -ves_in ves_geo.ves -ves_out ves_geo_analyse.ves -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_geometrie.txt" << std::endl;
892     ofstrm << "" << std::endl;
893     ofstrm << "#Materiau" << std::endl;
894 couturad 929 ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_mat -ves_in ves_geo.ves -ves_out ves_mat.ves -lstparam $DOSSIER_PARAM/materiau/lstparam_mat.txt" << std::endl;
895 couturad 951 ofstrm << "" << std::endl;
896     ofstrm << "#Carte" << std::endl;
897 couturad 929 ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_carte -ves_in ves_mat.ves -ves_out ves_carte.ves -param $DOSSIER_PARAM/carte/param_carte.txt" << std::endl;
898     ofstrm << "" << std::endl;
899 couturad 951 ofstrm << "#MG Maillage" << std::endl;
900     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_mg_maill -ves_in ves_carte.ves -ves_out ves_mg_maill.ves -param $DOSSIER_PARAM/maillage/param_maill.txt -carte carte.ctt" << std::endl;
901     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_analyse -ves_in ves_mg_maill.ves -ves_out ves_mg_maill_analyse.ves -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_mg_maillage.txt" << std::endl;
902     ofstrm << "executer $CHEMINCOMPILE/mgoperation/mgoperation.exe -gmsh -in ves_mg_maill.magic" << std::endl;
903 couturad 929 ofstrm << "" << std::endl;
904 couturad 951 ofstrm << "#Fem Maillage" << std::endl;
905     if(fem_maill_lin)
906     {
907     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_fem_maill -ves_in ves_mg_maill.ves -ves_out ves_fem_maill_lin.ves -param $DOSSIER_PARAM/fem_maillage/param_fem_maill_lin.txt" << std::endl;
908     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_analyse -ves_in ves_fem_maill_lin.ves -ves_out ves_fem_maill_analyse_lin.ves -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_fem_maillage_lin.txt" << std::endl;
909     }
910     if(fem_maill_quad)
911     {
912     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_fem_maill -ves_in ves_mg_maill.ves -ves_out ves_fem_maill_quad.ves -param $DOSSIER_PARAM/fem_maillage/param_fem_maill_quad.txt" << std::endl;
913     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_analyse -ves_in ves_fem_maill_quad.ves -ves_out ves_fem_maill_analyse_quad.ves -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_fem_maillage_quad.txt" << std::endl;
914     }
915 couturad 929 ofstrm << "" << std::endl;
916 couturad 951 ofstrm << "#Etude" << std::endl;
917     if(fem_maill_lin)
918     {
919     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_etude -ves_in ves_fem_maill_lin.ves -ves_out ves_etude_CLDH_sph_lin.ves -param $DOSSIER_PARAM/etude/param_etude_CLDH_sph_lin.txt" << std::endl;
920     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_etude -ves_in ves_fem_maill_lin.ves -ves_out ves_etude_CLCH_sph_lin.ves -param $DOSSIER_PARAM/etude/param_etude_CLCH_sph_lin.txt" << std::endl;
921     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_etude -ves_in ves_fem_maill_lin.ves -ves_out ves_etude_CLDH_dev_lin.ves -param $DOSSIER_PARAM/etude/param_etude_CLDH_dev_lin.txt" << std::endl;
922     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_etude -ves_in ves_fem_maill_lin.ves -ves_out ves_etude_CLCH_dev_lin.ves -param $DOSSIER_PARAM/etude/param_etude_CLCH_dev_lin.txt" << std::endl;
923     }
924     if(fem_maill_quad)
925     {
926     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_etude -ves_in ves_fem_maill_quad.ves -ves_out ves_etude_CLDH_sph_quad.ves -param $DOSSIER_PARAM/etude/param_etude_CLDH_sph_quad.txt" << std::endl;
927     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_etude -ves_in ves_fem_maill_quad.ves -ves_out ves_etude_CLCH_sph_quad.ves -param $DOSSIER_PARAM/etude/param_etude_CLCH_sph_quad.txt" << std::endl;
928     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_etude -ves_in ves_fem_maill_quad.ves -ves_out ves_etude_CLDH_dev_quad.ves -param $DOSSIER_PARAM/etude/param_etude_CLDH_dev_quad.txt" << std::endl;
929     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_etude -ves_in ves_fem_maill_quad.ves -ves_out ves_etude_CLCH_dev_quad.ves -param $DOSSIER_PARAM/etude/param_etude_CLCH_dev_quad.txt" << std::endl;
930     }
931 couturad 929 ofstrm << "" << std::endl;
932 couturad 951 ofstrm << "#Calcul" << std::endl;
933     if(fem_maill_lin)
934     {
935     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -calcul -ves_in ves_etude_CLDH_sph_lin.ves -ves_out ves_calcul_CLDH_sph_lin.ves -param $DOSSIER_PARAM/etude/param_etude_CLDH_sph_lin.txt -paramaster $DOSSIER_PARAM/etude/param_aster.txt" << std::endl;
936     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_analyse -ves_in ves_calcul_CLDH_sph_lin.ves -ves_out ves_calcul_CLDH_sph_analyse_lin.ves -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_lin.txt" << std::endl;
937     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -calcul -ves_in ves_etude_CLCH_sph_lin.ves -ves_out ves_calcul_CLCH_sph_lin.ves -param $DOSSIER_PARAM/etude/param_etude_CLCH_sph_lin.txt -paramaster $DOSSIER_PARAM/etude/param_aster.txt" << std::endl;
938     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_analyse -ves_in ves_calcul_CLCH_sph_lin.ves -ves_out ves_calcul_CLCH_sph_analyse_lin.ves -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_lin.txt" << std::endl;
939     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -calcul -ves_in ves_etude_CLDH_dev_lin.ves -ves_out ves_calcul_CLDH_dev_lin.ves -param $DOSSIER_PARAM/etude/param_etude_CLDH_dev_lin.txt -paramaster $DOSSIER_PARAM/etude/param_aster.txt" << std::endl;
940     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_analyse -ves_in ves_calcul_CLDH_dev_lin.ves -ves_out ves_calcul_CLDH_dev_analyse_lin.ves -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_lin.txt" << std::endl;
941     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -calcul -ves_in ves_etude_CLCH_dev_lin.ves -ves_out ves_calcul_CLCH_dev_lin.ves -param $DOSSIER_PARAM/etude/param_etude_CLCH_dev_lin.txt -paramaster $DOSSIER_PARAM/etude/param_aster.txt" << std::endl;
942     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_analyse -ves_in ves_calcul_CLCH_dev_lin.ves -ves_out ves_calcul_CLCH_dev_analyse_lin.ves -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_lin.txt" << std::endl;
943     }
944     if(fem_maill_quad)
945     {
946     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -calcul -ves_in ves_etude_CLDH_sph_quad.ves -ves_out ves_calcul_CLDH_sph_quad.ves -param $DOSSIER_PARAM/etude/param_etude_CLDH_sph_quad.txt -paramaster $DOSSIER_PARAM/etude/param_aster.txt" << std::endl;
947     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_analyse -ves_in ves_calcul_CLDH_sph_quad.ves -ves_out ves_calcul_CLDH_sph_analyse_quad.ves -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_quad.txt" << std::endl;
948     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -calcul -ves_in ves_etude_CLCH_sph_quad.ves -ves_out ves_calcul_CLCH_sph_quad.ves -param $DOSSIER_PARAM/etude/param_etude_CLCH_sph_quad.txt -paramaster $DOSSIER_PARAM/etude/param_aster.txt" << std::endl;
949     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_analyse -ves_in ves_calcul_CLCH_sph_quad.ves -ves_out ves_calcul_CLCH_sph_analyse_quad.ves -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_quad.txt" << std::endl;
950     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -calcul -ves_in ves_etude_CLDH_dev_quad.ves -ves_out ves_calcul_CLDH_dev_quad.ves -param $DOSSIER_PARAM/etude/param_etude_CLDH_dev_quad.txt -paramaster $DOSSIER_PARAM/etude/param_aster.txt" << std::endl;
951     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_analyse -ves_in ves_calcul_CLDH_dev_quad.ves -ves_out ves_calcul_CLDH_dev_analyse_quad.ves -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_quad.txt" << std::endl;
952     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -calcul -ves_in ves_etude_CLCH_dev_quad.ves -ves_out ves_calcul_CLCH_dev_quad.ves -param $DOSSIER_PARAM/etude/param_etude_CLCH_dev_quad.txt -paramaster $DOSSIER_PARAM/etude/param_aster.txt" << std::endl;
953     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_analyse -ves_in ves_calcul_CLCH_dev_quad.ves -ves_out ves_calcul_CLCH_dev_analyse_quad.ves -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_quad.txt" << std::endl;
954     }
955     ofstrm << "" << std::endl;
956     ofstrm << "rm *.msh" << std::endl;
957     ofstrm << "rm *.sol" << std::endl;
958     ofstrm << "rm *.resu" << std::endl;
959     ofstrm << "rm *.comm" << std::endl;
960     ofstrm << "rm *.mail" << std::endl;
961     ofstrm << "rm *.retour" << std::endl;
962     ofstrm << "rm *.export" << std::endl;
963     ofstrm << "rm *.log" << std::endl;
964     ofstrm << "rm *.mess" << std::endl;
965 couturad 929 ofstrm << "cd .." << std::endl;
966     ofstrm << "echo \"**********************\"" << std::endl;
967     ofstrm << "echo $STATUSTXT" << std::endl;
968     ofstrm << "echo \"**********************\"" << std::endl;
969     ofstrm << "exit $STAT" << std::endl;
970     ofstrm.close();
971     system((char*)"chmod 744 ves");
972     }
973     }
974    
975 couturad 951 int PARAMETRES::generer_script_post_process(int type_etude,int type_inclusion,bool fem_maill_lin,bool fem_maill_quad)
976     {
977     std::ofstream ofstrm((char*)"post_process",std::ios::out|std::ios::trunc);
978     ofstrm.precision(16);
979     ofstrm.setf(std::ios::showpoint);
980     ofstrm << "#!/bin/bash" << std::endl;
981     ofstrm << "DOSSIER_PARAM=$1" << std::endl;
982     ofstrm << "CHEMINCOMPILE=$2" << std::endl;
983 couturad 958 ofstrm << "if [ -z ${CHEMINCOMPILE// } ]" << std::endl;
984     ofstrm << "then" << std::endl;
985     ofstrm << " if [ -z $PATHMAGICEXEAPP ]" << std::endl;
986     ofstrm << " then" << std::endl;
987     ofstrm << " echo \"Erreur : Chemin vers exe/app manquant\"" << std::endl;
988     ofstrm << " exit" << std::endl;
989     ofstrm << " else" << std::endl;
990     ofstrm << " CHEMINCOMPILE=$PATHMAGICEXEAPP" << std::endl;
991     ofstrm << " fi" << std::endl;
992     ofstrm << "fi" << std::endl;
993 couturad 951 ofstrm << "function executer" << std::endl;
994     ofstrm << "{" << std::endl;
995     ofstrm << "$*" << std::endl;
996     ofstrm << "VAR=$?" << std::endl;
997     ofstrm << "if (( $VAR )) ; then " << std::endl;
998     ofstrm << " STATUSTXT=\"ERREUR dans les tests\"; " << std::endl;
999     ofstrm << " STAT=$VAR;" << std::endl;
1000     ofstrm << " exit $STAT" << std::endl;
1001     ofstrm << "fi" << std::endl;
1002     ofstrm << "}" << std::endl;
1003     ofstrm << "STATUSTXT=\"Test sans ERREUR\"" << std::endl;
1004     ofstrm << "echo \"*******************************\"" << std::endl;
1005     ofstrm << "echo \"Generation d'une microstructure\"" << std::endl;
1006     ofstrm << "echo \"*******************************\"" << std::endl;
1007     ofstrm << "STAT=$?" << std::endl;
1008     ofstrm << "" << std::endl;
1009     ofstrm << "mkdir resultats" << std::endl;
1010     ofstrm << "" << std::endl;
1011     ofstrm << "#Geometrie" << std::endl;
1012     ofstrm << "mkdir -p resultats/cao" << std::endl;
1013     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -exporter_analyses -lstves lst_ves_geo_analyse.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_geometrie.txt -dossier resultats/cao" << std::endl;
1014     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -cumuler_analyses -lstves lst_ves_geo_analyse.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_geometrie.txt -dossier resultats/cao -avec_histogramme" << std::endl;
1015     ofstrm << "" << std::endl;
1016     ofstrm << "#MG Maillage" << std::endl;
1017     ofstrm << "mkdir -p resultats/maillage_mg" << std::endl;
1018     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -exporter_analyses -lstves lst_ves_mg_maill_analyse.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_mg_maillage.txt -dossier resultats/maillage_mg" << std::endl;
1019     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -cumuler_analyses -lstves lst_ves_mg_maill_analyse.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_mg_maillage.txt -dossier resultats/maillage_mg -avec_histogramme" << std::endl;
1020     ofstrm << "" << std::endl;
1021     ofstrm << "#Fem Maillage" << std::endl;
1022     ofstrm << "mkdir -p resultats/maillage_fem" << std::endl;
1023     if(fem_maill_lin)
1024     {
1025     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -exporter_analyses -lstves lst_ves_fem_maill_analyse_lin.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_fem_maillage_lin.txt -dossier resultats/maillage_fem" << std::endl;
1026     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -cumuler_analyses -lstves lst_ves_fem_maill_analyse_lin.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_fem_maillage_lin.txt -dossier resultats/maillage_fem -avec_histogramme" << std::endl;
1027     }
1028     if(fem_maill_quad)
1029     {
1030     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -exporter_analyses -lstves lst_ves_fem_maill_analyse_quad.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_fem_maillage_quad.txt -dossier resultats/maillage_fem" << std::endl;
1031     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -cumuler_analyses -lstves lst_ves_fem_maill_analyse_quad.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_fem_maillage_quad.txt -dossier resultats/maillage_fem -avec_histogramme" << std::endl;
1032     }
1033     ofstrm << "" << std::endl;
1034     ofstrm << "#Calculs" << std::endl;
1035     ofstrm << "mkdir -p resultats/champ/DH" << std::endl;
1036     ofstrm << "mkdir -p resultats/champ/CH" << std::endl;
1037     if(fem_maill_lin)
1038     {
1039     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -exporter_analyses -lstves lst_ves_calcul_CLDH_sph_analyse_lin.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_lin.txt -dossier resultats/champ/DH" << std::endl;
1040     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -cumuler_analyses -lstves lst_ves_calcul_CLDH_sph_analyse_lin.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_lin.txt -dossier resultats/champ/DH -avec_histogramme" << std::endl;
1041     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -exporter_analyses -lstves lst_ves_calcul_CLCH_sph_analyse_lin.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_lin.txt -dossier resultats/champ/CH" << std::endl;
1042     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -cumuler_analyses -lstves lst_ves_calcul_CLCH_sph_analyse_lin.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_lin.txt -dossier resultats/champ/CH -avec_histogramme" << std::endl;
1043     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -exporter_analyses -lstves lst_ves_calcul_CLDH_dev_analyse_lin.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_lin.txt -dossier resultats/champ/DH" << std::endl;
1044     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -cumuler_analyses -lstves lst_ves_calcul_CLDH_dev_analyse_lin.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_lin.txt -dossier resultats/champ/DH -avec_histogramme" << std::endl;
1045     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -exporter_analyses -lstves lst_ves_calcul_CLCH_dev_analyse_lin.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_lin.txt -dossier resultats/champ/CH" << std::endl;
1046     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -cumuler_analyses -lstves lst_ves_calcul_CLCH_dev_analyse_lin.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_lin.txt -dossier resultats/champ/CH -avec_histogramme" << std::endl;
1047     }
1048     if(fem_maill_quad)
1049     {
1050     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -exporter_analyses -lstves lst_ves_calcul_CLDH_sph_analyse_quad.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_quad.txt -dossier resultats/champ/DH" << std::endl;
1051     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -cumuler_analyses -lstves lst_ves_calcul_CLDH_sph_analyse_quad.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_quad.txt -dossier resultats/champ/DH -avec_histogramme" << std::endl;
1052     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -exporter_analyses -lstves lst_ves_calcul_CLCH_sph_analyse_quad.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_quad.txt -dossier resultats/champ/CH" << std::endl;
1053     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -cumuler_analyses -lstves lst_ves_calcul_CLCH_sph_analyse_quad.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_quad.txt -dossier resultats/champ/CH -avec_histogramme" << std::endl;
1054     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -exporter_analyses -lstves lst_ves_calcul_CLDH_dev_analyse_quad.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_quad.txt -dossier resultats/champ/DH" << std::endl;
1055     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -cumuler_analyses -lstves lst_ves_calcul_CLDH_dev_analyse_quad.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_quad.txt -dossier resultats/champ/DH -avec_histogramme" << std::endl;
1056     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -exporter_analyses -lstves lst_ves_calcul_CLCH_dev_analyse_quad.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_quad.txt -dossier resultats/champ/CH" << std::endl;
1057     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -cumuler_analyses -lstves lst_ves_calcul_CLCH_dev_analyse_quad.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse_champ_quad.txt -dossier resultats/champ/CH -avec_histogramme" << std::endl;
1058     }
1059     ofstrm << "" << std::endl;
1060     ofstrm << "#Homogeneisation" << std::endl;
1061     ofstrm << "mkdir -p resultats/modules_mecaniques/DH" << std::endl;
1062     ofstrm << "mkdir -p resultats/modules_mecaniques/CH" << std::endl;
1063     if(fem_maill_lin)
1064     {
1065     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -exporter_modules_meca -lstves_spherique lst_ves_calcul_CLDH_sph_analyse_lin.txt -lstves_deviatorique lst_ves_calcul_CLDH_dev_analyse_lin.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_ver_lin.txt -dossier resultats/modules_mecaniques/DH" << std::endl;
1066     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -cumuler_modules_meca -lstves_spherique lst_ves_calcul_CLDH_sph_analyse_lin.txt -lstves_deviatorique lst_ves_calcul_CLDH_dev_analyse_lin.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_ver_lin.txt -dossier resultats/modules_mecaniques/DH -avec_histogramme" << std::endl;
1067     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -exporter_modules_meca -lstves_spherique lst_ves_calcul_CLCH_sph_analyse_lin.txt -lstves_deviatorique lst_ves_calcul_CLCH_dev_analyse_lin.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_ver_lin.txt -dossier resultats/modules_mecaniques/CH" << std::endl;
1068     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -cumuler_modules_meca -lstves_spherique lst_ves_calcul_CLCH_sph_analyse_lin.txt -lstves_deviatorique lst_ves_calcul_CLCH_dev_analyse_lin.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_ver_lin.txt -dossier resultats/modules_mecaniques/CH -avec_histogramme" << std::endl;
1069     }
1070     if(fem_maill_quad)
1071     {
1072     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -exporter_modules_meca -lstves_spherique lst_ves_calcul_CLDH_sph_analyse_quad.txt -lstves_deviatorique lst_ves_calcul_CLDH_dev_analyse_quad.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_ver_quad.txt -dossier resultats/modules_mecaniques/DH" << std::endl;
1073     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -cumuler_modules_meca -lstves_spherique lst_ves_calcul_CLDH_sph_analyse_quad.txt -lstves_deviatorique lst_ves_calcul_CLDH_dev_analyse_quad.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_ver_quad.txt -dossier resultats/modules_mecaniques/DH -avec_histogramme" << std::endl;
1074     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -exporter_modules_meca -lstves_spherique lst_ves_calcul_CLCH_sph_analyse_quad.txt -lstves_deviatorique lst_ves_calcul_CLCH_dev_analyse_quad.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_ver_quad.txt -dossier resultats/modules_mecaniques/CH" << std::endl;
1075     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -cumuler_modules_meca -lstves_spherique lst_ves_calcul_CLCH_sph_analyse_quad.txt -lstves_deviatorique lst_ves_calcul_CLCH_dev_analyse_quad.txt -lstparam $DOSSIER_PARAM/analyse/lstparam_ver_quad.txt -dossier resultats/modules_mecaniques/CH -avec_histogramme" << std::endl;
1076     }
1077    
1078     ofstrm << "" << std::endl;
1079     ofstrm << "#Data pour graph" << std::endl;
1080     ofstrm << "PWD=pwd" << std::endl;
1081     ofstrm << "cd resultats" << std::endl;
1082     ofstrm << "mkdir data_graph" << std::endl;
1083     if(type_inclusion==MSTRUCT_GENERATEUR_RSA::TYPE_INCLUSION::CYLINDRE)
1084     {
1085     ofstrm << "#Orientation" << std::endl;
1086     ofstrm << "awk 'NR>=2 {print sqrt(((1.0/3.0)-sqrt($2*$2))*((1.0/3.0)-sqrt($2*$2)))+sqrt(((1.0/3.0)-sqrt($3*$3))*((1.0/3.0)-sqrt($3*$3)))+sqrt(((1.0/3.0)-sqrt($4*$4))*((1.0/3.0)-sqrt($4*$4)))}' cao/cumul_Orientation_Particule.txt > data_graph/cumul_Err_abs_ori" << std::endl;
1087     }
1088     ofstrm << "for i in {0..20}" << std::endl;
1089     ofstrm << "do" << std::endl;
1090     if(type_inclusion==MSTRUCT_GENERATEUR_RSA::TYPE_INCLUSION::CYLINDRE)
1091     {
1092     ofstrm << " awk 'NR>=2 {print sqrt(((1.0/3.0)-sqrt($2*$2))*((1.0/3.0)-sqrt($2*$2)))+sqrt(((1.0/3.0)-sqrt($3*$3))*((1.0/3.0)-sqrt($3*$3)))+sqrt(((1.0/3.0)-sqrt($4*$4))*((1.0/3.0)-sqrt($4*$4)))}' cao/liste_Orientation_Particule.txt > data_graph/Err_abs_ori" << std::endl;
1093     if(fem_maill_lin) ofstrm << " awk 'NR>=2 {print sqrt(((1.0/3.0)-sqrt($2*$2))*((1.0/3.0)-sqrt($2*$2)))+sqrt(((1.0/3.0)-sqrt($3*$3))*((1.0/3.0)-sqrt($3*$3)))+sqrt(((1.0/3.0)-sqrt($4*$4))*((1.0/3.0)-sqrt($4*$4)))}' maillage_fem/c_$i/cumul_Orientation_Particule_ponderee_erosion_lin.txt >> data_graph/Err_abs_ori_ponderee_lin" << std::endl;
1094     if(fem_maill_quad) ofstrm << " awk 'NR>=2 {print sqrt(((1.0/3.0)-sqrt($2*$2))*((1.0/3.0)-sqrt($2*$2)))+sqrt(((1.0/3.0)-sqrt($3*$3))*((1.0/3.0)-sqrt($3*$3)))+sqrt(((1.0/3.0)-sqrt($4*$4))*((1.0/3.0)-sqrt($4*$4)))}' maillage_fem/c_$i/cumul_Orientation_Particule_ponderee_erosion_quad.txt >> data_graph/Err_abs_ori_ponderee_quad" << std::endl;
1095     }
1096     ofstrm << " #Module de Young" << std::endl;
1097     ofstrm << " #Points" << std::endl;
1098     if(fem_maill_lin)
1099     {
1100     ofstrm << " awk 'NR>=2 {print $1,$6}' maillage_fem/c_${i}/liste_FEM_maillage_Particule_erosion_lin.txt > data_graph/tmp_fem_maill_lin_${i}" << std::endl;
1101     if(type_inclusion==MSTRUCT_GENERATEUR_RSA::TYPE_INCLUSION::CYLINDRE)
1102     {
1103     ofstrm << " awk 'NR>=2 {print sqrt(((1.0/3.0)-sqrt($2*$2))*((1.0/3.0)-sqrt($2*$2)))+sqrt(((1.0/3.0)-sqrt($3*$3))*((1.0/3.0)-sqrt($3*$3)))+sqrt(((1.0/3.0)-sqrt($4*$4))*((1.0/3.0)-sqrt($4*$4)))}' maillage_fem/c_$i/liste_Orientation_Particule_ponderee_erosion_lin.txt > data_graph/tmp_Err_abs_ori_ponderee_lin_${i}" << std::endl;
1104     }
1105     ofstrm << " awk 'NR>=2 {print $2}' modules_mecaniques/DH/c_${i}/liste_modules_meca_Champ_EPSILON_erosion_lin_Champ_SIGMA_erosion_lin.txt > data_graph/tmp_eapp_DH_lin_${i}" << std::endl;
1106     ofstrm << " awk 'NR>=2 {print $2}' modules_mecaniques/CH/c_${i}/liste_modules_meca_Champ_EPSILON_erosion_lin_Champ_SIGMA_erosion_lin.txt > data_graph/tmp_eapp_CH_lin_${i}" << std::endl;
1107     if(type_inclusion==MSTRUCT_GENERATEUR_RSA::TYPE_INCLUSION::CYLINDRE)
1108     {
1109     ofstrm << " paste -d \" \" data_graph/tmp_fem_maill_lin_${i} data_graph/Err_abs_ori data_graph/tmp_Err_abs_ori_ponderee_lin_${i} data_graph/tmp_eapp_DH_lin_${i} > data_graph/Eapp_DH_lin_${i}.txt" << std::endl;
1110     ofstrm << " sed -i '1s/^/# f_vol Err_abs_ori Err_abs_ori_ponderee Eapp\\n/' data_graph/Eapp_DH_lin_${i}.txt" << std::endl;
1111     ofstrm << " paste -d \" \" data_graph/tmp_fem_maill_lin_${i} data_graph/Err_abs_ori data_graph/tmp_Err_abs_ori_ponderee_lin_${i} data_graph/tmp_eapp_CH_lin_${i} > data_graph/Eapp_CH_lin_${i}.txt" << std::endl;
1112     ofstrm << " sed -i '1s/^/# f_vol Err_abs_ori Err_abs_ori_ponderee Eapp\\n/' data_graph/Eapp_CH_lin_${i}.txt" << std::endl;
1113     ofstrm << " rm data_graph/tmp_fem_maill_lin_${i} data_graph/tmp_Err_abs_ori_ponderee_lin_${i} data_graph/tmp_eapp_DH_lin_${i} data_graph/tmp_eapp_CH_lin_${i}" << std::endl;
1114     }
1115     else
1116     {
1117     ofstrm << " paste -d \" \" data_graph/tmp_fem_maill_lin_${i} data_graph/tmp_eapp_DH_lin_${i} > data_graph/Eapp_DH_lin_${i}.txt" << std::endl;
1118     ofstrm << " sed -i '1s/^/# f_vol Eapp\\n/' data_graph/Eapp_DH_lin_${i}.txt" << std::endl;
1119     ofstrm << " paste -d \" \" data_graph/tmp_fem_maill_lin_${i} data_graph/tmp_eapp_CH_lin_${i} > data_graph/Eapp_CH_lin_${i}.txt" << std::endl;
1120     ofstrm << " sed -i '1s/^/# f_vol Eapp\\n/' data_graph/Eapp_CH_lin_${i}.txt" << std::endl;
1121     ofstrm << " rm data_graph/tmp_fem_maill_lin_${i} data_graph/tmp_eapp_DH_lin_${i} data_graph/tmp_eapp_CH_lin_${i}" << std::endl;
1122     }
1123     }
1124     ofstrm << "" << std::endl;
1125     if(fem_maill_quad)
1126     {
1127     ofstrm << " awk 'NR>=2 {print $1,$6}' maillage_fem/c_${i}/liste_FEM_maillage_Particule_erosion_quad.txt > data_graph/tmp_fem_maill_quad_${i}" << std::endl;
1128     if(type_inclusion==MSTRUCT_GENERATEUR_RSA::TYPE_INCLUSION::CYLINDRE)
1129     {
1130     ofstrm << " awk 'NR>=2 {print sqrt(((1.0/3.0)-sqrt($2*$2))*((1.0/3.0)-sqrt($2*$2)))+sqrt(((1.0/3.0)-sqrt($3*$3))*((1.0/3.0)-sqrt($3*$3)))+sqrt(((1.0/3.0)-sqrt($4*$4))*((1.0/3.0)-sqrt($4*$4)))}' maillage_fem/c_$i/liste_Orientation_Particule_ponderee_erosion_quad.txt > data_graph/tmp_Err_abs_ori_ponderee_quad_${i}" << std::endl;
1131     }
1132     ofstrm << " awk 'NR>=2 {print $2}' modules_mecaniques/DH/c_${i}/liste_modules_meca_Champ_EPSILON_erosion_quad_Champ_SIGMA_erosion_quad.txt > data_graph/tmp_eapp_DH_quad_${i}" << std::endl;
1133     ofstrm << " awk 'NR>=2 {print $2}' modules_mecaniques/CH/c_${i}/liste_modules_meca_Champ_EPSILON_erosion_quad_Champ_SIGMA_erosion_quad.txt > data_graph/tmp_eapp_CH_quad_${i}" << std::endl;
1134     if(type_inclusion==MSTRUCT_GENERATEUR_RSA::TYPE_INCLUSION::CYLINDRE)
1135     {
1136     ofstrm << " paste -d \" \" data_graph/tmp_fem_maill_quad_${i} data_graph/Err_abs_ori data_graph/tmp_Err_abs_ori_ponderee_quad_${i} data_graph/tmp_eapp_DH_quad_${i} > data_graph/Eapp_DH_quad_${i}.txt" << std::endl;
1137     ofstrm << " sed -i '1s/^/# f_vol Err_abs_ori Err_abs_ori_ponderee Eapp\\n/' data_graph/Eapp_DH_quad_${i}.txt" << std::endl;
1138     ofstrm << " paste -d \" \" data_graph/tmp_fem_maill_quad_${i} data_graph/Err_abs_ori data_graph/tmp_Err_abs_ori_ponderee_quad_${i} data_graph/tmp_eapp_CH_quad_${i} > data_graph/Eapp_CH_quad_${i}.txt" << std::endl;
1139     ofstrm << " sed -i '1s/^/# f_vol Err_abs_ori Err_abs_ori_ponderee Eapp\\n/' data_graph/Eapp_CH_quad_${i}.txt" << std::endl;
1140     ofstrm << " rm data_graph/tmp_fem_maill_quad_${i} data_graph/tmp_Err_abs_ori_ponderee_quad_${i} data_graph/tmp_eapp_DH_quad_${i} data_graph/tmp_eapp_CH_quad_${i}" << std::endl;
1141     }
1142     else
1143     {
1144     ofstrm << " paste -d \" \" data_graph/tmp_fem_maill_quad_${i} data_graph/tmp_eapp_DH_quad_${i} > data_graph/Eapp_DH_quad_${i}.txt" << std::endl;
1145     ofstrm << " sed -i '1s/^/# f_vol Eapp\\n/' data_graph/Eapp_DH_quad_${i}.txt" << std::endl;
1146     ofstrm << " paste -d \" \" data_graph/tmp_fem_maill_quad_${i} data_graph/tmp_eapp_CH_quad_${i} > data_graph/Eapp_CH_quad_${i}.txt" << std::endl;
1147     ofstrm << " sed -i '1s/^/# f_vol Eapp\\n/' data_graph/Eapp_CH_quad_${i}.txt" << std::endl;
1148     ofstrm << " rm data_graph/tmp_fem_maill_quad_${i} data_graph/tmp_eapp_DH_quad_${i} data_graph/tmp_eapp_CH_quad_${i}" << std::endl;
1149     }
1150     }
1151     ofstrm << "" << std::endl;
1152     ofstrm << " #Moyenne" << std::endl;
1153     ofstrm << " echo \"${i}\" >> tmp_couche_nb" << std::endl;
1154     if(fem_maill_lin)
1155     {
1156     ofstrm << " awk 'NR>=2 {print $1,$6,$7}' maillage_fem/c_${i}/cumul_FEM_maillage_Particule_erosion_lin.txt >> data_graph/tmp_fem_maill_lin" << std::endl;
1157     ofstrm << " awk 'NR>=2 {print $2,$3}' modules_mecaniques/DH/c_${i}/cumul_modules_meca_Champ_EPSILON_erosion_lin_Champ_SIGMA_erosion_lin.txt >> data_graph/tmp_eapp_DH_lin" << std::endl;
1158     ofstrm << " awk 'NR>=2 {print $2,$3}' modules_mecaniques/CH/c_${i}/cumul_modules_meca_Champ_EPSILON_erosion_lin_Champ_SIGMA_erosion_lin.txt >> data_graph/tmp_eapp_CH_lin" << std::endl;
1159     }
1160     if(fem_maill_quad)
1161     {
1162     ofstrm << " awk 'NR>=2 {print $1,$6,$7}' maillage_fem/c_${i}/cumul_FEM_maillage_Particule_erosion_quad.txt >> data_graph/tmp_fem_maill_quad" << std::endl;
1163     ofstrm << " awk 'NR>=2 {print $2,$3}' modules_mecaniques/DH/c_${i}/cumul_modules_meca_Champ_EPSILON_erosion_quad_Champ_SIGMA_erosion_quad.txt >> data_graph/tmp_eapp_DH_quad" << std::endl;
1164     ofstrm << " awk 'NR>=2 {print $2,$3}' modules_mecaniques/CH/c_${i}/cumul_modules_meca_Champ_EPSILON_erosion_quad_Champ_SIGMA_erosion_quad.txt >> data_graph/tmp_eapp_CH_quad" << std::endl;
1165     }
1166     ofstrm << "done" << std::endl;
1167     if(fem_maill_lin)
1168     {
1169     ofstrm << "paste -d \" \" tmp_couche_nb data_graph/tmp_fem_maill_lin data_graph/tmp_eapp_DH_lin > data_graph/cumul_erosion_Eapp_DH_lin.txt" << std::endl;
1170     ofstrm << "sed -i '1s/^/couche nb_ves f_vol(moy ±) Eapp(moy ±)\\n/' data_graph/cumul_erosion_Eapp_DH_lin.txt" << std::endl;
1171     ofstrm << "paste -d \" \" tmp_couche_nb data_graph/tmp_fem_maill_lin data_graph/tmp_eapp_CH_lin > data_graph/cumul_erosion_Eapp_CH_lin.txt" << std::endl;
1172     ofstrm << "sed -i '1s/^/couche nb_ves f_vol(moy ±) Eapp(moy ±)\\n/' data_graph/cumul_erosion_Eapp_CH_lin.txt" << std::endl;
1173     ofstrm << "rm data_graph/tmp_fem_maill_lin data_graph/tmp_eapp_DH_lin data_graph/tmp_eapp_CH_lin" << std::endl;
1174     }
1175     if(fem_maill_quad)
1176     {
1177     ofstrm << "paste -d \" \" tmp_couche_nb data_graph/tmp_fem_maill_quad data_graph/tmp_eapp_DH_quad > data_graph/cumul_erosion_Eapp_DH_quad.txt" << std::endl;
1178     ofstrm << "sed -i '1s/^/couche nb_ves f_vol(moy ±) Eapp(moy ±)\\n/' data_graph/cumul_erosion_Eapp_DH_quad.txt" << std::endl;
1179     ofstrm << "paste -d \" \" tmp_couche_nb data_graph/tmp_fem_maill_quad data_graph/tmp_eapp_CH_quad > data_graph/cumul_erosion_Eapp_CH_quad.txt" << std::endl;
1180     ofstrm << "sed -i '1s/^/couche nb_ves f_vol(moy ±) Eapp(moy ±)\\n/' data_graph/cumul_erosion_Eapp_CH_quad.txt" << std::endl;
1181     ofstrm << "rm data_graph/tmp_fem_maill_quad data_graph/tmp_eapp_DH_quad data_graph/tmp_eapp_CH_quad" << std::endl;
1182     }
1183     ofstrm << "rm tmp_couche_nb" << std::endl;
1184     ofstrm << "mkdir graph" << std::endl;
1185     ofstrm << "cd .." << std::endl;
1186     ofstrm << "gnuplot fig_Eapp.gnu" << std::endl;
1187     ofstrm << "" << std::endl;
1188     ofstrm << "echo \"**********************\"" << std::endl;
1189     ofstrm << "echo \" FIN \"" << std::endl;
1190     ofstrm << "echo \"**********************\"" << std::endl;
1191     ofstrm << "exit $STAT" << std::endl;
1192     ofstrm.close();
1193    
1194     ofstrm.open((char*)"fig_Eapp.gnu",std::ios::out|std::ios::trunc);
1195     ofstrm.precision(16);
1196     ofstrm.setf(std::ios::showpoint);
1197    
1198     ofstrm << "#set ytics 10" << std::endl;
1199     ofstrm << "#set xtics 4" << std::endl;
1200     ofstrm << "#set grid" << std::endl;
1201     ofstrm << "#set bmargin 4" << std::endl;
1202     ofstrm << "" << std::endl;
1203     ofstrm << "set terminal postscript eps size 3.5,2.62 enhanced color font 'Helvetica,14'" << std::endl;
1204     ofstrm << "" << std::endl;
1205     ofstrm << "set output \"resultats/graph/nuage_Eapp.eps\"" << std::endl;
1206     ofstrm << "set xrange [2:12]" << std::endl;
1207     ofstrm << "set yrange [2:10]" << std::endl;
1208     ofstrm << "set title \"Module de Young (GPa)\"" << std::endl;
1209     ofstrm << "set xlabel \"Fraction volumique (%)\"" << std::endl;
1210     ofstrm << "set ylabel \"Module de Young (GPa)\"" << std::endl;
1211     if(fem_maill_lin && fem_maill_quad)
1212     {
1213     if(type_inclusion==MSTRUCT_GENERATEUR_RSA::TYPE_INCLUSION::CYLINDRE)
1214     {
1215     ofstrm << "plot \"resultats/data_graph/Eapp_DH_lin_0.txt\" u ($2*100):($5/(1000000000)) pt 4 ps 2 lc rgb 'blue' lw 1 title \"DH lin\",\\" << std::endl;
1216     ofstrm << " \"resultats/data_graph/Eapp_CH_lin_0.txt\" u ($2*100):($5/(1000000000)) pt 4 ps 2 lc rgb 'red' lw 1 title \"CH lin\",\\" << std::endl;
1217     ofstrm << " \"resultats/data_graph/Eapp_DH_quad_0.txt\" u ($2*100):($5/(1000000000)) pt 5 ps 2 lc rgb 'blue' lw 1 title \"DH quad\",\\" << std::endl;
1218     ofstrm << " \"resultats/data_graph/Eapp_CH_quad_0.txt\" u ($2*100):($5/(1000000000)) pt 5 ps 2 lc rgb 'red' lw 1 title \"CH quad\",\\" << std::endl;
1219     }
1220     else
1221     {
1222     ofstrm << "plot \"resultats/data_graph/Eapp_DH_lin_0.txt\" u ($2*100):($3/(1000000000)) pt 4 ps 2 lc rgb 'blue' lw 1 title \"DH lin\",\\" << std::endl;
1223     ofstrm << " \"resultats/data_graph/Eapp_CH_lin_0.txt\" u ($2*100):($3/(1000000000)) pt 4 ps 2 lc rgb 'red' lw 1 title \"CH lin\",\\" << std::endl;
1224     ofstrm << " \"resultats/data_graph/Eapp_DH_quad_0.txt\" u ($2*100):($3/(1000000000)) pt 5 ps 2 lc rgb 'blue' lw 1 title \"DH quad\",\\" << std::endl;
1225     ofstrm << " \"resultats/data_graph/Eapp_CH_quad_0.txt\" u ($2*100):($3/(1000000000)) pt 5 ps 2 lc rgb 'red' lw 1 title \"CH quad\",\\" << std::endl;
1226     }
1227     }
1228     else if(fem_maill_lin && !fem_maill_quad)
1229     {
1230     if(type_inclusion==MSTRUCT_GENERATEUR_RSA::TYPE_INCLUSION::CYLINDRE)
1231     {
1232     ofstrm << "plot \"resultats/data_graph/Eapp_DH_lin_0.txt\" u ($2*100):($5/(1000000000)) pt 4 ps 2 lc rgb 'blue' lw 1 title \"DH lin\",\\" << std::endl;
1233     ofstrm << " \"resultats/data_graph/Eapp_CH_lin_0.txt\" u ($2*100):($5/(1000000000)) pt 4 ps 2 lc rgb 'red' lw 1 title \"CH lin\",\\" << std::endl;
1234     }
1235     else
1236     {
1237     ofstrm << "plot \"resultats/data_graph/Eapp_DH_lin_0.txt\" u ($2*100):($3/(1000000000)) pt 4 ps 2 lc rgb 'blue' lw 1 title \"DH lin\",\\" << std::endl;
1238     ofstrm << " \"resultats/data_graph/Eapp_CH_lin_0.txt\" u ($2*100):($3/(1000000000)) pt 4 ps 2 lc rgb 'red' lw 1 title \"CH lin\",\\" << std::endl;
1239     }
1240     }
1241     else if(!fem_maill_lin && fem_maill_quad)
1242     {
1243     if(type_inclusion==MSTRUCT_GENERATEUR_RSA::TYPE_INCLUSION::CYLINDRE)
1244     {
1245     ofstrm << "plot \"resultats/data_graph/Eapp_DH_quad_0.txt\" u ($2*100):($5/(1000000000)) pt 5 ps 2 lc rgb 'blue' lw 1 title \"DH quad\",\\" << std::endl;
1246     ofstrm << " \"resultats/data_graph/Eapp_CH_quad_0.txt\" u ($2*100):($5/(1000000000)) pt 5 ps 2 lc rgb 'red' lw 1 title \"CH quad\",\\" << std::endl;
1247     }
1248     else
1249     {
1250     ofstrm << "plot \"resultats/data_graph/Eapp_DH_quad_0.txt\" u ($2*100):($3/(1000000000)) pt 5 ps 2 lc rgb 'blue' lw 1 title \"DH quad\",\\" << std::endl;
1251     ofstrm << " \"resultats/data_graph/Eapp_CH_quad_0.txt\" u ($2*100):($3/(1000000000)) pt 5 ps 2 lc rgb 'red' lw 1 title \"CH quad\",\\" << std::endl;
1252     }
1253     }
1254     ofstrm << "\"resE.dat\" u($1*100):($2) with line lw 2 lc rgb 'black' lt 2 title \"E_{Reuss}\" ,\\" << std::endl;
1255     ofstrm << "\"resE.dat\" u($1*100):($3) with line lw 2 lc rgb 'grey' lt 2 title \"E_{HS-}\" ,\\" << std::endl;
1256     ofstrm << "\"resE.dat\" u($1*100):($7) with line lw 2 lc rgb 'grey' lt 2 dashtype 2 title \"E_{HS+}\" ,\\" << std::endl;
1257     ofstrm << "\"resE.dat\" u($1*100):($8) with line lw 2 lc rgb 'black' lt 2 dashtype 2 title \"E_{Voigt}\"" << std::endl;
1258     ofstrm << "#pause -1" << std::endl;
1259     ofstrm << "" << std::endl;
1260     ofstrm << "set output \"resultats/graph/cumul_Eapp.eps\"" << std::endl;
1261     ofstrm << "set title \"Module de Young (GPa)\"" << std::endl;
1262     ofstrm << "set xlabel \"Fraction volumique (%)\"" << std::endl;
1263     ofstrm << "set ylabel \"Module de Young (GPa)\"" << std::endl;
1264     if(fem_maill_lin && fem_maill_quad)
1265     {
1266     ofstrm << "plot \"<(sed -n 2p resultats/data_graph/cumul_erosion_Eapp_DH_lin.txt)\" u ($3*100):($5/(1000000000)):($4*100):($6/(1000000000)) with xyerrorbars pt 4 ps 2 lc rgb 'blue' lw 1 title \"DH lin\",\\" << std::endl;
1267     ofstrm << " \"<(sed -n 2p resultats/data_graph/cumul_erosion_Eapp_CH_lin.txt)\" u ($3*100):($5/(1000000000)):($4*100):($6/(1000000000)) with xyerrorbars pt 4 ps 2 lc rgb 'red' lw 1 title \"CH lin\",\\" << std::endl;
1268     ofstrm << " \"<(sed -n 2p resultats/data_graph/cumul_erosion_Eapp_DH_quad.txt)\" u ($3*100):($5/(1000000000)):($4*100):($6/(1000000000)) with xyerrorbars pt 5 ps 2 lc rgb 'blue' lw 1 title \"DH quad\",\\" << std::endl;
1269     ofstrm << " \"<(sed -n 2p resultats/data_graph/cumul_erosion_Eapp_CH_quad.txt)\" u ($3*100):($5/(1000000000)):($4*100):($6/(1000000000)) with xyerrorbars pt 5 ps 2 lc rgb 'red' lw 1 title \"CH quad\",\\" << std::endl;
1270     }
1271     else if(fem_maill_lin && !fem_maill_quad)
1272     {
1273     ofstrm << "plot \"<(sed -n 2p resultats/data_graph/cumul_erosion_Eapp_DH_lin.txt)\" u ($3*100):($5/(1000000000)):($4*100):($6/(1000000000)) with xyerrorbars pt 4 ps 2 lc rgb 'blue' lw 1 title \"DH lin\",\\" << std::endl;
1274     ofstrm << " \"<(sed -n 2p resultats/data_graph/cumul_erosion_Eapp_CH_lin.txt)\" u ($3*100):($5/(1000000000)):($4*100):($6/(1000000000)) with xyerrorbars pt 4 ps 2 lc rgb 'red' lw 1 title \"CH lin\",\\" << std::endl;
1275     }
1276     else if(!fem_maill_lin && fem_maill_quad)
1277     {
1278     ofstrm << "plot \"<(sed -n 2p resultats/data_graph/cumul_erosion_Eapp_DH_quad.txt)\" u ($3*100):($5/(1000000000)):($4*100):($6/(1000000000)) with xyerrorbars pt 5 ps 2 lc rgb 'blue' lw 1 title \"DH quad\",\\" << std::endl;
1279     ofstrm << " \"<(sed -n 2p resultats/data_graph/cumul_erosion_Eapp_CH_quad.txt)\" u ($3*100):($5/(1000000000)):($4*100):($6/(1000000000)) with xyerrorbars pt 5 ps 2 lc rgb 'red' lw 1 title \"CH quad\",\\" << std::endl;
1280     }
1281     ofstrm << "\"resE.dat\" u($1*100):($2) with line lw 2 lc rgb 'black' lt 2 title \"E_{Reuss}\" ,\\" << std::endl;
1282     ofstrm << "\"resE.dat\" u($1*100):($3) with line lw 2 lc rgb 'grey' lt 2 title \"E_{HS-}\" ,\\" << std::endl;
1283     ofstrm << "\"resE.dat\" u($1*100):($7) with line lw 2 lc rgb 'grey' lt 2 dashtype 2 title \"E_{HS+}\" ,\\" << std::endl;
1284     ofstrm << "\"resE.dat\" u($1*100):($8) with line lw 2 lc rgb 'black' lt 2 dashtype 2 title \"E_{Voigt}\"" << std::endl;
1285     ofstrm << "#pause -1" << std::endl;
1286     ofstrm << "" << std::endl;
1287     ofstrm << "set output \"resultats/graph/cumul_erosion_Eapp.eps\"" << std::endl;
1288     ofstrm << "set xrange [0:0.5]" << std::endl;
1289     ofstrm << "set yrange [0:14]" << std::endl;
1290     ofstrm << "set y2range[0:100]" << std::endl;
1291     ofstrm << "set title \"Module de Young (GPa)\"" << std::endl;
1292     ofstrm << "set xlabel \"Distance d'erosion\"" << std::endl;
1293     ofstrm << "set ylabel \"Module de Young (GPa)\"" << std::endl;
1294     ofstrm << "set y2label \"Fraction volumique (%)\"" << std::endl;
1295     ofstrm << "set ytics nomirror" << std::endl;
1296     ofstrm << "set y2tics" << std::endl;
1297     if(fem_maill_lin && fem_maill_quad)
1298     {
1299     ofstrm << "plot \"resultats/data_graph/cumul_erosion_Eapp_DH_lin.txt\" u ($1*0.02):($5/(1000000000)) with lines lc rgb 'blue' lw 1 title \"DH lin\" axes x1y1 ,\\" << std::endl;
1300     ofstrm << " \"resultats/data_graph/cumul_erosion_Eapp_DH_lin.txt\" u ($1*0.02):($5/(1000000000)):($6/(1000000000)) with yerrorbars pt 4 ps 2 lc rgb 'blue' lw 1 title \"erreur DH lin\" axes x1y1 ,\\" << std::endl;
1301     ofstrm << " \"resultats/data_graph/cumul_erosion_Eapp_CH_lin.txt\" u ($1*0.02):($5/(1000000000)) with lines lc rgb 'red' lw 1 title \"CH lin\" axes x1y1 ,\\" << std::endl;
1302     ofstrm << " \"resultats/data_graph/cumul_erosion_Eapp_CH_lin.txt\" u ($1*0.02):($5/(1000000000)):($6/(1000000000)) with yerrorbars pt 4 ps 2 lc rgb 'red' lw 1 title \"erreur CH lin\" axes x1y1 ,\\" << std::endl;
1303     ofstrm << " \"resultats/data_graph/cumul_erosion_Eapp_CH_lin.txt\" u ($1*0.02):($3*100) with linespoint lc rgb 'grey' lt 0 lw 1 pt 15 ps 1 title \"Frac. Vol.\" axes x1y2 ,\\" << std::endl;
1304     ofstrm << " \"resultats/data_graph/cumul_erosion_Eapp_CH_lin.txt\" u ($1*0.02):($3*100):($4*100) with yerrorbars lc rgb 'grey' pt 15 ps 1 title \"erreur Frac. Vol.\" axes x1y2 ,\\" << std::endl;
1305     ofstrm << " \"resultats/data_graph/cumul_erosion_Eapp_DH_quad.txt\" u ($1*0.02):($5/(1000000000)) with lines lc rgb 'blue' lw 1 title \"DH quad\" axes x1y1 ,\\" << std::endl;
1306     ofstrm << " \"resultats/data_graph/cumul_erosion_Eapp_DH_quad.txt\" u ($1*0.02):($5/(1000000000)):($6/(1000000000)) with yerrorbars pt 5 ps 2 lc rgb 'blue' lw 1 title \"erreur DH quad\" axes x1y1 ,\\" << std::endl;
1307     ofstrm << " \"resultats/data_graph/cumul_erosion_Eapp_CH_quad.txt\" u ($1*0.02):($5/(1000000000)) with lines lc rgb 'red' lw 1 title \"CH quad\" axes x1y1 ,\\" << std::endl;
1308     ofstrm << " \"resultats/data_graph/cumul_erosion_Eapp_CH_quad.txt\" u ($1*0.02):($5/(1000000000)):($6/(1000000000)) with yerrorbars pt 5 ps 2 lc rgb 'red' lw 1 title \"erreur CH quad\" axes x1y1 ,\\" << std::endl;
1309     ofstrm << " \"resultats/data_graph/cumul_erosion_Eapp_CH_quad.txt\" u ($1*0.02):($3*100) with linespoint lc rgb 'black' lt 0 lw 1 pt 15 ps 1 title \"Frac. Vol.\" axes x1y2 ,\\" << std::endl;
1310     ofstrm << " \"resultats/data_graph/cumul_erosion_Eapp_CH_quad.txt\" u ($1*0.02):($3*100):($4*100) with yerrorbars lc rgb 'black' pt 15 ps 1 title \"erreur Frac. Vol.\" axes x1y2" << std::endl;
1311     }
1312     else if(fem_maill_lin && !fem_maill_quad)
1313     {
1314     ofstrm << "plot \"resultats/data_graph/cumul_erosion_Eapp_DH_lin.txt\" u ($1*0.02):($5/(1000000000)) with lines lc rgb 'blue' lw 1 title \"DH lin\" axes x1y1 ,\\" << std::endl;
1315     ofstrm << " \"resultats/data_graph/cumul_erosion_Eapp_DH_lin.txt\" u ($1*0.02):($5/(1000000000)):($6/(1000000000)) with yerrorbars pt 4 ps 2 lc rgb 'blue' lw 1 title \"erreur DH lin\" axes x1y1 ,\\" << std::endl;
1316     ofstrm << " \"resultats/data_graph/cumul_erosion_Eapp_CH_lin.txt\" u ($1*0.02):($5/(1000000000)) with lines lc rgb 'red' lw 1 title \"CH lin\" axes x1y1 ,\\" << std::endl;
1317     ofstrm << " \"resultats/data_graph/cumul_erosion_Eapp_CH_lin.txt\" u ($1*0.02):($5/(1000000000)):($6/(1000000000)) with yerrorbars pt 4 ps 2 lc rgb 'red' lw 1 title \"erreur CH lin\" axes x1y1 ,\\" << std::endl;
1318     ofstrm << " \"resultats/data_graph/cumul_erosion_Eapp_CH_lin.txt\" u ($1*0.02):($3*100) with linespoint lc rgb 'grey' lt 0 lw 1 pt 15 ps 1 title \"Frac. Vol.\" axes x1y2 ,\\" << std::endl;
1319     ofstrm << " \"resultats/data_graph/cumul_erosion_Eapp_CH_lin.txt\" u ($1*0.02):($3*100):($4*100) with yerrorbars lc rgb 'grey' pt 15 ps 1 title \"erreur Frac. Vol.\" axes x1y2" << std::endl;
1320     }
1321     if(!fem_maill_lin && fem_maill_quad)
1322     {
1323     ofstrm << "plot \"resultats/data_graph/cumul_erosion_Eapp_DH_quad.txt\" u ($1*0.02):($5/(1000000000)) with lines lc rgb 'blue' lw 1 title \"DH quad\" axes x1y1 ,\\" << std::endl;
1324     ofstrm << " \"resultats/data_graph/cumul_erosion_Eapp_DH_quad.txt\" u ($1*0.02):($5/(1000000000)):($6/(1000000000)) with yerrorbars pt 5 ps 2 lc rgb 'blue' lw 1 title \"erreur DH quad\" axes x1y1 ,\\" << std::endl;
1325     ofstrm << " \"resultats/data_graph/cumul_erosion_Eapp_CH_quad.txt\" u ($1*0.02):($5/(1000000000)) with lines lc rgb 'red' lw 1 title \"CH quad\" axes x1y1 ,\\" << std::endl;
1326     ofstrm << " \"resultats/data_graph/cumul_erosion_Eapp_CH_quad.txt\" u ($1*0.02):($5/(1000000000)):($6/(1000000000)) with yerrorbars pt 5 ps 2 lc rgb 'red' lw 1 title \"erreur CH quad\" axes x1y1 ,\\" << std::endl;
1327     ofstrm << " \"resultats/data_graph/cumul_erosion_Eapp_CH_quad.txt\" u ($1*0.02):($3*100) with linespoint lc rgb 'black' lt 0 lw 1 pt 15 ps 1 title \"Frac. Vol.\" axes x1y2 ,\\" << std::endl;
1328     ofstrm << " \"resultats/data_graph/cumul_erosion_Eapp_CH_quad.txt\" u ($1*0.02):($3*100):($4*100) with yerrorbars lc rgb 'black' pt 15 ps 1 title \"erreur Frac. Vol.\" axes x1y2" << std::endl;
1329     }
1330     ofstrm << "#pause -1" << std::endl;
1331     ofstrm.close();
1332     system((char*)"chmod 744 post_process");
1333     }
1334 couturad 929
1335    
1336 couturad 951
1337 couturad 919 int PARAMETRES::importer_fichier_parametres(char* fichier, OT_PARAMETRES* params)
1338     {
1339     params->lire(fichier);
1340     }
1341    
1342     int PARAMETRES::importer_fichier_liste_parametres(char* fichier, std::vector< OT_PARAMETRES* >& vector_params)
1343     {
1344     std::string str_fichier = fichier;
1345     std::size_t found = str_fichier.rfind((char*)"/");
1346     std::string chemin;
1347     if(found!=-1)
1348     {
1349     chemin = str_fichier.substr(0,found+1);
1350     }
1351     else chemin = "";
1352     FILE* in=fopen(fichier,"rt");
1353     char ligne[4000];
1354     while(!feof(in))
1355     {
1356     fgets(ligne,4000,in);
1357     char *aide = strstr(ligne,"//");
1358     if(aide==NULL)
1359     {
1360     char message[500];
1361     int nb_fichier_param=0;
1362     sscanf(ligne,"%s %i ",message,&nb_fichier_param);
1363     if(strcmp(message,"NB_FICHIER_PARAM")==0)
1364     {
1365     for(int i=0;i<nb_fichier_param;i++)
1366     {
1367     fgets(ligne,4000,in);
1368     if(feof(in)) std::cerr << "*** PARAMETRES::PARAMETRES::importer_fichier_liste_parametres : Erreur de lecture ! ***" << std::endl;
1369     char sous_fichier[500];
1370     sscanf(ligne,"%s",sous_fichier);
1371     OT_PARAMETRES *param = new OT_PARAMETRES;
1372     std::string str_sous_fichier = chemin;
1373     str_sous_fichier.append(sous_fichier);
1374     param->lire((char*)str_sous_fichier.c_str());
1375     vector_params.push_back(param);
1376     }
1377     }
1378     }
1379     }
1380     }