ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/microstructure/src/mstruct_parametres.cpp
Revision: 960
Committed: Wed Aug 15 19:35:25 2018 UTC (6 years, 8 months ago) by couturad
File size: 104690 byte(s)
Log Message:
Ajout de parametres pour le generateur dcr

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