ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/microstructure/src/mstruct_parametres.cpp
Revision: 938
Committed: Wed Jun 6 13:04:19 2018 UTC (6 years, 11 months ago) by couturad
File size: 64739 byte(s)
Log Message:
MICROSTRUCTURE : Ajout du tenseur d'orientation pondere par le volume des particules

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     using namespace MICROSTRUCTURE;
9    
10     void PARAMETRES::ini_param_generateur_rsa(OT_PARAMETRES* params, int type_inclusion,char* nom_groupe_forme)
11     {
12     params->ajouter("Type_generateur","0",OT_PARAMETRES::DOUBLE,"Type de generateur : RSA [1], ");
13     params->ajouter("Nom_mgcg_modele","VES",OT_PARAMETRES::STRING,"Nom du MG_CG_MODELE");
14     params->ajouter("Nom_groupe_inclusion",nom_groupe_forme,OT_PARAMETRES::STRING,"Nom du groupe d'inclusion (Ex: Sphere)");
15     params->ajouter("Boite3D_distribution_Xmin","-0.1",OT_PARAMETRES::DOUBLE,"Xmin boite3D de distribution d'inclusion");
16     params->ajouter("Boite3D_distribution_Ymin","-0.1",OT_PARAMETRES::DOUBLE,"Ymin boite3D de distribution d'inclusion");
17     params->ajouter("Boite3D_distribution_Zmin","-0.1",OT_PARAMETRES::DOUBLE,"Zmin boite3D de distribution d'inclusion");
18     params->ajouter("Boite3D_distribution_Xmax","1.1",OT_PARAMETRES::DOUBLE,"Xmax boite3D de distribution d'inclusion");
19     params->ajouter("Boite3D_distribution_Ymax","1.1",OT_PARAMETRES::DOUBLE,"Ymax boite3D de distribution d'inclusion");
20     params->ajouter("Boite3D_distribution_Zmax","1.1",OT_PARAMETRES::DOUBLE,"Zmax boite3D de distribution d'inclusion");
21     params->ajouter("Nb_pas_X","20",OT_PARAMETRES::DOUBLE,"Nombre de pas selon X pout la creation d'un octree");
22     params->ajouter("Nb_pas_Y","20",OT_PARAMETRES::DOUBLE,"Nombre de pas selon Y pout la creation d'un octree");
23     params->ajouter("Nb_pas_Z","20",OT_PARAMETRES::DOUBLE,"Nombre de pas selon Z pout la creation d'un octree");
24 couturad 929 params->ajouter("Fraction_volumique_cible","0.05",OT_PARAMETRES::DOUBLE,"Fraction volumique cible d'inclusion [0.0, 1.0]");
25     params->ajouter("Eps_fraction_volumique","0.001",OT_PARAMETRES::DOUBLE,"Epsilon fraction volumique");
26 couturad 919 if(type_inclusion==GENERATEUR_RSA::TYPE_INCLUSION::SPHERE)
27     {
28     params->ajouter("Type_inclusion","0",OT_PARAMETRES::DOUBLE,"Type d'inclusion : Sphere [0], Cylindre [1]");
29     params->ajouter("Mu_rayon","0.2",OT_PARAMETRES::DOUBLE,"Moyenne du rayon de la sphere");
30     params->ajouter("Sigma_rayon","0.0",OT_PARAMETRES::DOUBLE,"Ecart type du rayon de la sphere");
31     }
32     if(type_inclusion==GENERATEUR_RSA::TYPE_INCLUSION::CYLINDRE)
33     {
34     params->ajouter("Type_inclusion","1",OT_PARAMETRES::DOUBLE,"Type d'inclusion : Sphere [0], Cylindre [1]");
35 couturad 926 params->ajouter("Mu_rayon","0.05",OT_PARAMETRES::DOUBLE,"Moyenne du rayon du cylindre");
36 couturad 919 params->ajouter("Sigma_rayon","0.0",OT_PARAMETRES::DOUBLE,"Ecart type du rayon du cylindre");
37 couturad 926 params->ajouter("Mu_longueur","0.4",OT_PARAMETRES::DOUBLE,"Moyenne de la longueur du cylindre");
38 couturad 919 params->ajouter("Sigma_longueur","0.0",OT_PARAMETRES::DOUBLE,"Ecart type de la longueur du cylindre");
39 couturad 929 params->ajouter("Mu_theta","0.0",OT_PARAMETRES::DOUBLE,"Moyenne de l'angle theta");
40     params->ajouter("Sigma_theta","0.0",OT_PARAMETRES::DOUBLE,"Ecart type de l'angle theta");
41     params->ajouter("Type_distribution_theta","0",OT_PARAMETRES::DOUBLE,"Type de distribution de l'angle theta : Uniforme[0], Normale[1]");
42     params->ajouter("Mu_phi","0.0",OT_PARAMETRES::DOUBLE,"Moyenne de l'angle phi");
43     params->ajouter("Sigma_phi","0.0",OT_PARAMETRES::DOUBLE,"Ecart type de l'angle phi");
44     params->ajouter("Type_distribution_phi","0",OT_PARAMETRES::DOUBLE,"Type de distribution de l'angle phi : Uniforme[0], Normale[1]");
45 couturad 919 }
46     params->ajouter("Porosite","0",OT_PARAMETRES::DOUBLE,"Considerer l'inclusion comme etant une porosite (vide) [1]");
47 couturad 926 params->ajouter("Distance_min_inter_volume","0.04",OT_PARAMETRES::DOUBLE,"Distance minimale qui separe deux inclusions");
48     params->ajouter("Volume_min","0.0008",OT_PARAMETRES::DOUBLE,"Volume minimal admissible de l'inclusion");
49     params->ajouter("Aire_min","0.001963",OT_PARAMETRES::DOUBLE,"Aire minimal admissible d'une face de l'inclusion");
50 couturad 919 params->ajouter("Longueur_min","0.02",OT_PARAMETRES::DOUBLE,"Longueur minimal admissible d'une arete ");
51     params->ajouter("Angle_min","0.7854",OT_PARAMETRES::DOUBLE,"Angle minimal admissible entre deux faces");
52     params->ajouter("Nb_volume_max","500",OT_PARAMETRES::DOUBLE,"Nombre maximal d'inclusion");
53     params->ajouter("Nb_iteration_max","2000",OT_PARAMETRES::DOUBLE,"Nombre maximal d'iteration");
54     }
55    
56     void PARAMETRES::ini_param_materiau(OT_PARAMETRES* params,char* nom_groupe_forme)
57     {
58     params->ajouter("Nom_groupe_forme",nom_groupe_forme,OT_PARAMETRES::STRING,"Nom du groupe de forme (Ex: Sphere, Matrice)");
59     params->ajouter("Mu_E","69.0e9",OT_PARAMETRES::DOUBLE,"Moyenne du module d'elasticite");
60     params->ajouter("Sigma_E","0.0",OT_PARAMETRES::DOUBLE,"Ecart type du module d'elasticite");
61     params->ajouter("Mu_nu","0.3",OT_PARAMETRES::DOUBLE,"Moyenne du coefficient de Poisson");
62     params->ajouter("Sigma_nu","0.0",OT_PARAMETRES::DOUBLE,"Ecart type du coefficient de Poisson");
63     }
64    
65     void PARAMETRES::ini_param_carte_taille(OT_PARAMETRES* params)
66     {
67     params->ajouter("Nom_carte","carte",OT_PARAMETRES::STRING,"Nom de la carte de taille");
68 couturad 926 params->ajouter("Ecart_nodal","0.04",OT_PARAMETRES::DOUBLE,"Ecart nodal");
69 couturad 937 params->ajouter("Ecart_nodal_face_particule","0.04",OT_PARAMETRES::DOUBLE,"Ecart nodal des faces des particules");
70 couturad 919 params->ajouter("Fechantillonnage","20",OT_PARAMETRES::DOUBLE,"Nombre d'échantillon par entité");
71 couturad 926 params->ajouter("Nb_cellule_direction","50",OT_PARAMETRES::DOUBLE,"Nombre de cellules de la FEM_SOLUTION dans les directions x,y,z");
72 couturad 919 params->ajouter("Nom_fem_solution","solcarte",OT_PARAMETRES::STRING,"Nom de la FEM_SOLUTION");
73     params->ajouter("Nb_couche_min","2",OT_PARAMETRES::DOUBLE,"Nombre de couches entre chaque solide");
74     params->ajouter("Nb_pas","32",OT_PARAMETRES::DOUBLE,"Nombre de pas de balayage");
75     params->ajouter("Facteur_augmentation","25",OT_PARAMETRES::DOUBLE,"Facteur d'augmentation de l'ecart nodal d'une cellule a l'autre");
76     }
77    
78     void PARAMETRES::ini_param_mailleur(OT_PARAMETRES* params)
79     {
80     params->ajouter("Niveau","3",OT_PARAMETRES::DOUBLE,"Niveau du maillage : 1D [1], 2D [2], 3D [3]");
81     params->ajouter("Niveau_opt_2d","5",OT_PARAMETRES::DOUBLE,"Limite supérieure des mailles à optimiser");
82     params->ajouter("Niveau_opt_3d","2",OT_PARAMETRES::DOUBLE,"Limite supérieure des mailles à optimiser");
83     params->ajouter("Priorite_metrique","0.65",OT_PARAMETRES::DOUBLE,"Valeur de la prise en compte de la métrique versus la qualité");
84     params->ajouter("Analyse","0",OT_PARAMETRES::DOUBLE,"Analyse de la qualité du maillage après le maillage : Analyse [1]");
85     }
86    
87     void PARAMETRES::ini_param_mailleur_fem(OT_PARAMETRES* params)
88     {
89     params->ajouter("Degre","2",OT_PARAMETRES::DOUBLE,"Degre du maillage a creer");
90     params->ajouter("Analyse","0",OT_PARAMETRES::DOUBLE,"Analyse de la qualité du maillage après le maillage : Analyse [1]");
91     params->ajouter("Optimisation_num_noeud","0",OT_PARAMETRES::DOUBLE,"Optimisation de la numerotation des noeuds : Optimisation [1]");
92     }
93    
94     void PARAMETRES::ini_param_etude(OT_PARAMETRES* params, int type_etude)
95     {
96     params->ajouter("Nom_etude","etude_1",OT_PARAMETRES::STRING,"Nom de l'etude");
97     params->ajouter("Fichier_param_aster","param_aster.txt",OT_PARAMETRES::STRING,"Nom du fichier de parametres aster");
98     params->ajouter("Type_etude",type_etude,OT_PARAMETRES::DOUBLE,"Type d'etude : Mecanique [0], Thermique [1]");
99     params->ajouter("Type_calcul","0",OT_PARAMETRES::DOUBLE,"Type de calcul : Elastique [0]");
100     params->ajouter("Code_resu","11111111",OT_PARAMETRES::STRING,"Code de resolution");
101 couturad 926 if(type_etude==MSTRUCT_VES::TYPE_ETUDE::MECANIQUE)
102 couturad 919 {
103     params->ajouter("Type_Chargement","0",OT_PARAMETRES::DOUBLE,"Type de chargement : Spherique [0], Deviatorique [1]");
104     params->ajouter("Type_CL","0",OT_PARAMETRES::DOUBLE,"Type de conditions aux limites : CLDH [0], CLCH[1]");
105     params->ajouter("Valeur_CL","0.0001",OT_PARAMETRES::DOUBLE,"Valeur de la condition aux limites");
106     }
107     }
108    
109     void PARAMETRES::ini_param_homogeneisation(OT_PARAMETRES* params)
110     {
111     params->ajouter("Fraction_volumique_CAD",0,OT_PARAMETRES::DOUBLE,"Calculer la fraction volumique CAD d'un groupe de forme [1]");
112     params->ajouter("Fraction_volumique_mg_maillage",0,OT_PARAMETRES::DOUBLE,"Calculer la fraction volumique du mg_maillage d'un groupe de forme [1]");
113     params->ajouter("Fraction_volumique_fem_maillage",0,OT_PARAMETRES::DOUBLE,"Calculer la fraction volumique du fem_maillage d'un groupe de forme [1]");
114     params->ajouter("Tenseur_orientation",0,OT_PARAMETRES::DOUBLE,"Calculer le tenseur d'orientation d'un groupe de forme [1]");
115     params->ajouter("Comparer_champ_theorie",0,OT_PARAMETRES::DOUBLE,"Comparer un champ par rapport a un champ theorique [1]");
116     params->ajouter("Critere_comparaison",0,OT_PARAMETRES::DOUBLE,"Erreur moyenne absolue [0], Erreur moyenne au carre [2]");
117     params->ajouter("Moyenne_volumique_champ",0,OT_PARAMETRES::DOUBLE,"Calculer la moyenne volumique d'un champ [1]");
118     params->ajouter("Num_solution",0,OT_PARAMETRES::DOUBLE,"Numero de la solution");
119     params->ajouter("Nom_champ","Sigma",OT_PARAMETRES::STRING,"Nom du champ");
120 couturad 926 params->ajouter("Nom_groupe_forme","ALL",OT_PARAMETRES::STRING,"Nom du groupe d'inclusion. Si [ALL] prend le ves au complet");
121 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");
122     params->ajouter("Boite3D_analyse_Xmin","0.1",OT_PARAMETRES::DOUBLE,"Xmin boite3D d'analyse");
123     params->ajouter("Boite3D_analyse_Ymin","0.1",OT_PARAMETRES::DOUBLE,"Ymin boite3D d'analyse");
124     params->ajouter("Boite3D_analyse_Zmin","0.1",OT_PARAMETRES::DOUBLE,"Zmin boite3D d'analyse");
125     params->ajouter("Boite3D_analyse_Xmax","0.9",OT_PARAMETRES::DOUBLE,"Xmax boite3D d'analyse");
126     params->ajouter("Boite3D_analyse_Ymax","0.9",OT_PARAMETRES::DOUBLE,"Ymax boite3D d'analyse");
127     params->ajouter("Boite3D_analyse_Zmax","0.9",OT_PARAMETRES::DOUBLE,"Zmax boite3D d'analyse");
128     params->ajouter("Exporter_liste_resultat","0",OT_PARAMETRES::DOUBLE,"Exporter une liste de resultats");
129     params->ajouter("Fichier_liste_resultat","fichier_liste_resultat.txt",OT_PARAMETRES::STRING,"Exporter une liste de resultats");
130     params->ajouter("Val_champ_theorique_XX","0.0",OT_PARAMETRES::DOUBLE,"Valeur d'un champ theorique XX");
131     params->ajouter("Val_champ_theorique_YY","0.0",OT_PARAMETRES::DOUBLE,"Valeur d'un champ theorique YY");
132     params->ajouter("Val_champ_theorique_ZZ","0.0",OT_PARAMETRES::DOUBLE,"Valeur d'un champ theorique ZZ");
133     params->ajouter("Val_champ_theorique_XY","0.0",OT_PARAMETRES::DOUBLE,"Valeur d'un champ theorique XY");
134     params->ajouter("Val_champ_theorique_XZ","0.0",OT_PARAMETRES::DOUBLE,"Valeur d'un champ theorique XZ");
135     params->ajouter("Val_champ_theorique_YZ","0.0",OT_PARAMETRES::DOUBLE,"Valeur d'un champ theorique YZ");
136     }
137    
138 couturad 930 void PARAMETRES::ini_param_analyse(OT_PARAMETRES* params,int type_analyse,bool erosion)
139 couturad 926 {
140     if(type_analyse==MSTRUCT_ANALYSE::TYPE_ANALYSE::CHAMP)
141     {
142     params->ajouter("Identifiant","Champ_SIGMA",OT_PARAMETRES::STRING,"Identifiant de l'analyse");
143     params->ajouter("Type_analyse",0,OT_PARAMETRES::DOUBLE,"Type d'analyse : Champ [0], Orientation [1], CAO [2], MAILLAGE_MG [3], MAILLAGE_FEM [4]");
144     params->ajouter("Num_solution",2,OT_PARAMETRES::DOUBLE,"Numero de la FEM_SOLUTION solution (0,1,2,...)");
145     params->ajouter("Nom_groupe_forme","ALL",OT_PARAMETRES::STRING,"Nom du groupe d'inclusion. Si [ALL] prend le ves au complet");
146     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]");
147     params->ajouter("Boite3D_analyse_Xmin","0.1",OT_PARAMETRES::DOUBLE,"Xmin boite3D d'analyse");
148     params->ajouter("Boite3D_analyse_Ymin","0.1",OT_PARAMETRES::DOUBLE,"Ymin boite3D d'analyse");
149     params->ajouter("Boite3D_analyse_Zmin","0.1",OT_PARAMETRES::DOUBLE,"Zmin boite3D d'analyse");
150     params->ajouter("Boite3D_analyse_Xmax","0.9",OT_PARAMETRES::DOUBLE,"Xmax boite3D d'analyse");
151     params->ajouter("Boite3D_analyse_Ymax","0.9",OT_PARAMETRES::DOUBLE,"Ymax boite3D d'analyse");
152     params->ajouter("Boite3D_analyse_Zmax","0.9",OT_PARAMETRES::DOUBLE,"Zmax boite3D d'analyse");
153     params->ajouter("Largeur_colonne_distribution","0.1",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
154     }
155     else if(type_analyse==MSTRUCT_ANALYSE::TYPE_ANALYSE::ORIENTATION)
156     {
157     params->ajouter("Identifiant","Orientation_Cylindre",OT_PARAMETRES::STRING,"Identifiant de l'analyse");
158     params->ajouter("Type_analyse",1,OT_PARAMETRES::DOUBLE,"Type d'analyse : Champ [0], Orientation [1], CAO [2], MAILLAGE_MG [3], MAILLAGE_FEM [4]");
159     params->ajouter("Nom_groupe_forme","Cylindre",OT_PARAMETRES::STRING,"Nom du groupe d'inclusion.");
160     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]");
161     params->ajouter("Boite3D_analyse_Xmin","0.1",OT_PARAMETRES::DOUBLE,"Xmin boite3D d'analyse");
162     params->ajouter("Boite3D_analyse_Ymin","0.1",OT_PARAMETRES::DOUBLE,"Ymin boite3D d'analyse");
163     params->ajouter("Boite3D_analyse_Zmin","0.1",OT_PARAMETRES::DOUBLE,"Zmin boite3D d'analyse");
164     params->ajouter("Boite3D_analyse_Xmax","0.9",OT_PARAMETRES::DOUBLE,"Xmax boite3D d'analyse");
165     params->ajouter("Boite3D_analyse_Ymax","0.9",OT_PARAMETRES::DOUBLE,"Ymax boite3D d'analyse");
166     params->ajouter("Boite3D_analyse_Zmax","0.9",OT_PARAMETRES::DOUBLE,"Zmax boite3D d'analyse");
167     }
168 couturad 938 else if(type_analyse==MSTRUCT_ANALYSE::TYPE_ANALYSE::ORIENTATION_PONDEREE)
169     {
170     params->ajouter("Identifiant","Orientation_Cylindre_ponderee",OT_PARAMETRES::STRING,"Identifiant de l'analyse");
171     params->ajouter("Type_analyse",6,OT_PARAMETRES::DOUBLE,"Type d'analyse : Champ [0], Orientation [1], CAO [2], MAILLAGE_MG [3], MAILLAGE_FEM [4]");
172     params->ajouter("Nom_groupe_forme","Cylindre",OT_PARAMETRES::STRING,"Nom du groupe d'inclusion.");
173     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]");
174     params->ajouter("Boite3D_analyse_Xmin","0.1",OT_PARAMETRES::DOUBLE,"Xmin boite3D d'analyse");
175     params->ajouter("Boite3D_analyse_Ymin","0.1",OT_PARAMETRES::DOUBLE,"Ymin boite3D d'analyse");
176     params->ajouter("Boite3D_analyse_Zmin","0.1",OT_PARAMETRES::DOUBLE,"Zmin boite3D d'analyse");
177     params->ajouter("Boite3D_analyse_Xmax","0.9",OT_PARAMETRES::DOUBLE,"Xmax boite3D d'analyse");
178     params->ajouter("Boite3D_analyse_Ymax","0.9",OT_PARAMETRES::DOUBLE,"Ymax boite3D d'analyse");
179     params->ajouter("Boite3D_analyse_Zmax","0.9",OT_PARAMETRES::DOUBLE,"Zmax boite3D d'analyse");
180     }
181 couturad 926 else if(type_analyse==MSTRUCT_ANALYSE::TYPE_ANALYSE::CAO)
182     {
183     params->ajouter("Identifiant","Cao",OT_PARAMETRES::STRING,"Identifiant de l'analyse");
184     params->ajouter("Type_analyse",2,OT_PARAMETRES::DOUBLE,"Type d'analyse : Champ [0], Orientation [1], CAO [2], MAILLAGE_MG [3], MAILLAGE_FEM [4]");
185     params->ajouter("Nom_groupe_forme","ALL",OT_PARAMETRES::STRING,"Nom du groupe d'inclusion. Si [NULL] prend le ves au complet");
186     params->ajouter("Largeur_colonne_distribution_nb_volume","1.0",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
187     params->ajouter("Largeur_colonne_distribution_nb_forme","1.0",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
188     params->ajouter("Largeur_colonne_distribution_volume","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
189     params->ajouter("Largeur_colonne_distribution_fraction_volumique","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
190     params->ajouter("Largeur_colonne_distribution_volume_forme","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
191     }
192     else if(type_analyse==MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_MG)
193     {
194     params->ajouter("Identifiant","Maillage_MG",OT_PARAMETRES::STRING,"Identifiant de l'analyse");
195     params->ajouter("Type_analyse",3,OT_PARAMETRES::DOUBLE,"Type d'analyse : Champ [0], Orientation [1], CAO [2], MAILLAGE_MG [3], MAILLAGE_FEM [4]");
196     params->ajouter("Nom_groupe_forme","ALL",OT_PARAMETRES::STRING,"Nom du groupe d'inclusion. Si [ALL] prend le ves au complet");
197     params->ajouter("Boite_analyse",0,OT_PARAMETRES::DOUBLE,"Calculer à partir des elements donc le centre de la boite englobante figure dans la boite d'analyse [1]");
198     params->ajouter("Boite3D_analyse_Xmin","0.1",OT_PARAMETRES::DOUBLE,"Xmin boite3D d'analyse");
199     params->ajouter("Boite3D_analyse_Ymin","0.1",OT_PARAMETRES::DOUBLE,"Ymin boite3D d'analyse");
200     params->ajouter("Boite3D_analyse_Zmin","0.1",OT_PARAMETRES::DOUBLE,"Zmin boite3D d'analyse");
201     params->ajouter("Boite3D_analyse_Xmax","0.9",OT_PARAMETRES::DOUBLE,"Xmax boite3D d'analyse");
202     params->ajouter("Boite3D_analyse_Ymax","0.9",OT_PARAMETRES::DOUBLE,"Ymax boite3D d'analyse");
203     params->ajouter("Boite3D_analyse_Zmax","0.9",OT_PARAMETRES::DOUBLE,"Zmax boite3D d'analyse");
204     params->ajouter("Largeur_colonne_distribution_nb_element_2D","100",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
205     params->ajouter("Largeur_colonne_distribution_nb_element_3D","100",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
206     params->ajouter("Largeur_colonne_distribution_qualite_2D","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
207     params->ajouter("Largeur_colonne_distribution_qualite_3D","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
208     params->ajouter("Largeur_colonne_distribution_taille_2D","0.0001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
209     params->ajouter("Largeur_colonne_distribution_taille_3D","0.0001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
210     }
211     else if(type_analyse==MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM)
212     {
213     params->ajouter("Identifiant","Maillage_FEM",OT_PARAMETRES::STRING,"Identifiant de l'analyse");
214     params->ajouter("Type_analyse",4,OT_PARAMETRES::DOUBLE,"Type d'analyse : Champ [0], Orientation [1], CAO [2], MAILLAGE_MG [3], MAILLAGE_FEM [4]");
215     params->ajouter("Nom_groupe_forme","ALL",OT_PARAMETRES::STRING,"Nom du groupe d'inclusion. Si [ALL] prend le ves au complet");
216     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]");
217     params->ajouter("Boite3D_analyse_Xmin","0.1",OT_PARAMETRES::DOUBLE,"Xmin boite3D d'analyse");
218     params->ajouter("Boite3D_analyse_Ymin","0.1",OT_PARAMETRES::DOUBLE,"Ymin boite3D d'analyse");
219     params->ajouter("Boite3D_analyse_Zmin","0.1",OT_PARAMETRES::DOUBLE,"Zmin boite3D d'analyse");
220     params->ajouter("Boite3D_analyse_Xmax","0.9",OT_PARAMETRES::DOUBLE,"Xmax boite3D d'analyse");
221     params->ajouter("Boite3D_analyse_Ymax","0.9",OT_PARAMETRES::DOUBLE,"Ymax boite3D d'analyse");
222     params->ajouter("Boite3D_analyse_Zmax","0.9",OT_PARAMETRES::DOUBLE,"Zmax boite3D d'analyse");
223     params->ajouter("Largeur_colonne_distribution_nb_element_2D","100",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
224     params->ajouter("Largeur_colonne_distribution_nb_element_3D","100",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
225     params->ajouter("Largeur_colonne_distribution_jacobien_2D_min","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
226     params->ajouter("Largeur_colonne_distribution_jacobien_2D_max","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
227     params->ajouter("Largeur_colonne_distribution_jacobien_3D_min","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
228     params->ajouter("Largeur_colonne_distribution_jacobien_3D_max","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
229     params->ajouter("Largeur_colonne_distribution_distortion_2D","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
230     params->ajouter("Largeur_colonne_distribution_distortion_3D","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
231 couturad 930 }
232     if(erosion)
233     {
234     params->ajouter("Analyse_erosion","1",OT_PARAMETRES::DOUBLE,"Analyse d'erosion [1], sans erosion [0]");
235 couturad 934 params->ajouter("Nb_couche","4",OT_PARAMETRES::DOUBLE,"Nombre de couche d'erosion");
236     params->ajouter("Epaisseur_couche","0.1",OT_PARAMETRES::DOUBLE,"Epaisseur d'une couche d'erosion");
237 couturad 926 }
238 couturad 930 if(!erosion)
239     {
240     params->ajouter("Analyse_erosion","0",OT_PARAMETRES::DOUBLE,"Analyse d'erosion [1], sans erosion [0]");
241     }
242 couturad 926 }
243    
244     void PARAMETRES::ini_param_ver(OT_PARAMETRES* params)
245     {
246     params->ajouter("Identifiant_epsilon","Champ_EPSILON",OT_PARAMETRES::STRING,"Identifiant de l'analyse du champ epsilon");
247     params->ajouter("Identifiant_sigma","Champ_SIGMA",OT_PARAMETRES::STRING,"Identifiant de l'analyse du champ sigma");
248 couturad 927 params->ajouter("Largeur_colonne_distribution_module_Kapp","100000",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
249     params->ajouter("Largeur_colonne_distribution_module_Gapp","100000",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
250     params->ajouter("Largeur_colonne_distribution_module_Eapp","100000",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
251     params->ajouter("Largeur_colonne_distribution_module_Nuapp","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
252 couturad 930 params->ajouter("Analyse_erosion","0",OT_PARAMETRES::DOUBLE,"Analyse d'erosion [1], sans erosion [0]");
253 couturad 926 }
254    
255    
256    
257    
258 couturad 933 int PARAMETRES::generer_fichier_parametres(void)
259 couturad 919 {
260     int mkdir_err=0;
261 couturad 933 std::string sys_command = "mkdir parametre";
262 couturad 919 mkdir_err = system(sys_command.c_str());
263     if(mkdir_err !=0)
264     {
265     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametres! ***" << std::endl;
266     return FAIL;
267     }
268 couturad 933 sys_command.clear(); sys_command.append("mkdir -p "); sys_command.append("parametre/geometrie");
269 couturad 919 mkdir_err = system(sys_command.c_str());
270     if(mkdir_err !=0)
271     {
272     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametres/geometrie ! ***" << std::endl;
273     return FAIL;
274     }
275 couturad 933 sys_command.clear(); sys_command.append("mkdir -p "); sys_command.append("parametre/materiau");
276 couturad 919 mkdir_err = system(sys_command.c_str());
277     if(mkdir_err !=0)
278     {
279     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametre/materiau ! ***" << std::endl;
280     return FAIL;
281     }
282 couturad 933 sys_command.clear(); sys_command.append("mkdir -p "); sys_command.append("parametre/carte");
283 couturad 919 mkdir_err = system(sys_command.c_str());
284     if(mkdir_err !=0)
285     {
286     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametres/carte ! ***" << std::endl;
287     return FAIL;
288     }
289 couturad 933 sys_command.clear(); sys_command.append("mkdir -p "); sys_command.append("parametre/maillage");
290 couturad 919 mkdir_err = system(sys_command.c_str());
291     if(mkdir_err !=0)
292     {
293     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametre/maillage ! ***" << std::endl;
294     return FAIL;
295     }
296 couturad 933 sys_command.clear(); sys_command.append("mkdir -p "); sys_command.append("parametre/fem_maillage");
297 couturad 919 mkdir_err = system(sys_command.c_str());
298     if(mkdir_err !=0)
299     {
300     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametre/fem_maillage ! ***" << std::endl;
301     return FAIL;
302     }
303 couturad 933 sys_command.clear(); sys_command.append("mkdir -p "); sys_command.append("parametre/etude");
304 couturad 919 mkdir_err = system(sys_command.c_str());
305     if(mkdir_err !=0)
306     {
307     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametre/etude ! ***" << std::endl;
308     return FAIL;
309     }
310 couturad 933 sys_command.clear(); sys_command.append("mkdir -p "); sys_command.append("parametre/analyse");
311 couturad 919 mkdir_err = system(sys_command.c_str());
312     if(mkdir_err !=0)
313     {
314 couturad 926 std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametre/analyse ! ***" << std::endl;
315 couturad 919 return FAIL;
316     }
317     std::ofstream f;
318 couturad 933 sys_command.clear(); sys_command.append("parametre/geometrie/lstparam_geo.txt");
319 couturad 919 f.open(sys_command.c_str(),ios::out);
320     f << "// Fichier de parametres GEOMETRIE" << std::endl;
321     f << "// [Nombre de fichier de parametres]" << std::endl;
322 couturad 926 f << "NB_FICHIER_PARAM 1" << std::endl;
323 couturad 919 f << "param_geo_cylindre.txt" << std::endl;
324     f.close();
325     OT_PARAMETRES params_geo_1;
326 couturad 926 ini_param_generateur_rsa(&params_geo_1,GENERATEUR_RSA::TYPE_INCLUSION::CYLINDRE,(char*)"Cylindre");
327 couturad 933 sys_command.clear(); sys_command.append("parametre/geometrie/param_geo_cylindre.txt");
328 couturad 919 params_geo_1.enregistrer((char*)sys_command.c_str());
329    
330 couturad 933 sys_command.clear(); sys_command.append("parametre/materiau/lstparam_mat.txt");
331 couturad 919 f.open(sys_command.c_str(),ios::out);
332     f << "// Fichier de parametres MATERIAU" << std::endl;
333     f << "// [Nombre de fichier de parametres]" << std::endl;
334 couturad 926 f << "NB_FICHIER_PARAM 2" << std::endl;
335 couturad 919 f << "param_mat_cylindre.txt" << std::endl;
336     f << "param_mat_matrice.txt" << std::endl;
337     f.close();
338     OT_PARAMETRES params_mat_cylindre;
339     ini_param_materiau(&params_mat_cylindre,(char*)"Cylindre");
340 couturad 926 params_mat_cylindre.change_valeur("Mu_E",75.0e9);
341     params_mat_cylindre.change_valeur("Mu_nu",0.22);
342 couturad 933 sys_command.clear(); sys_command.append("parametre/materiau/param_mat_cylindre.txt");
343 couturad 919 params_mat_cylindre.enregistrer((char*)sys_command.c_str());
344     OT_PARAMETRES params_mat_matrice;
345     ini_param_materiau(&params_mat_matrice,(char*)"Matrice");
346 couturad 926 params_mat_matrice.change_valeur("Mu_E",3.5e9);
347     params_mat_matrice.change_valeur("Mu_nu",0.33);
348 couturad 933 sys_command.clear(); sys_command.append("parametre/materiau/param_mat_matrice.txt");
349 couturad 919 params_mat_matrice.enregistrer((char*)sys_command.c_str());
350    
351     OT_PARAMETRES params_carte;
352     ini_param_carte_taille(&params_carte);
353 couturad 933 sys_command.clear(); sys_command.append("parametre/carte/param_carte.txt");
354 couturad 919 params_carte.enregistrer((char*)sys_command.c_str());
355    
356     OT_PARAMETRES params_maill;
357     ini_param_mailleur(&params_maill);
358 couturad 933 sys_command.clear(); sys_command.append("parametre/maillage/param_maill.txt");
359 couturad 919 params_maill.enregistrer((char*)sys_command.c_str());
360    
361 couturad 933 OT_PARAMETRES params_fem_maillage_lin;
362     ini_param_mailleur_fem(&params_fem_maillage_lin);
363     params_fem_maillage_lin.change_valeur("Degre",1);
364     sys_command.clear(); sys_command.append("parametre/fem_maillage/param_fem_maill_lin.txt");
365     params_fem_maillage_lin.enregistrer((char*)sys_command.c_str());
366 couturad 919
367 couturad 933 OT_PARAMETRES params_fem_maillage_quad;
368     ini_param_mailleur_fem(&params_fem_maillage_quad);
369     params_fem_maillage_quad.change_valeur("Degre",2);
370     sys_command.clear(); sys_command.append("parametre/fem_maillage/param_fem_maill_quad.txt");
371     params_fem_maillage_quad.enregistrer((char*)sys_command.c_str());
372    
373 couturad 934 OT_PARAMETRES params_etude_CLDH_sph_lin;
374     ini_param_etude(&params_etude_CLDH_sph_lin,MSTRUCT_VES::TYPE_ETUDE::MECANIQUE);
375     params_etude_CLDH_sph_lin.change_valeur("Nom_etude","etude_CLDH_sph_lin");
376     params_etude_CLDH_sph_lin.change_valeur("Type_Chargement",0);
377     params_etude_CLDH_sph_lin.change_valeur("Type_CL",0);
378     params_etude_CLDH_sph_lin.change_valeur("Valeur_CL",0.0001);
379     sys_command.clear(); sys_command.append("parametre/etude/param_etude_CLDH_sph_lin.txt");
380     params_etude_CLDH_sph_lin.enregistrer((char*)sys_command.c_str());
381 couturad 919
382 couturad 934 OT_PARAMETRES params_etude_CLDH_sph_quad;
383     ini_param_etude(&params_etude_CLDH_sph_quad,MSTRUCT_VES::TYPE_ETUDE::MECANIQUE);
384     params_etude_CLDH_sph_quad.change_valeur("Nom_etude","etude_CLDH_sph_quad");
385     params_etude_CLDH_sph_quad.change_valeur("Type_Chargement",0);
386     params_etude_CLDH_sph_quad.change_valeur("Type_CL",0);
387     params_etude_CLDH_sph_quad.change_valeur("Valeur_CL",0.0001);
388     sys_command.clear(); sys_command.append("parametre/etude/param_etude_CLDH_sph_quad.txt");
389     params_etude_CLDH_sph_quad.enregistrer((char*)sys_command.c_str());
390 couturad 926
391 couturad 934 OT_PARAMETRES params_etude_CLCH_sph_lin;
392     ini_param_etude(&params_etude_CLCH_sph_lin,MSTRUCT_VES::TYPE_ETUDE::MECANIQUE);
393     params_etude_CLCH_sph_lin.change_valeur("Nom_etude","etude_CLCH_sph_lin");
394     params_etude_CLCH_sph_lin.change_valeur("Type_Chargement",0);
395     params_etude_CLCH_sph_lin.change_valeur("Type_CL",1);
396     params_etude_CLCH_sph_lin.change_valeur("Valeur_CL",1000);
397     sys_command.clear(); sys_command.append("parametre/etude/param_etude_CLCH_sph_lin.txt");
398     params_etude_CLCH_sph_lin.enregistrer((char*)sys_command.c_str());
399 couturad 926
400 couturad 934 OT_PARAMETRES params_etude_CLCH_sph_quad;
401     ini_param_etude(&params_etude_CLCH_sph_quad,MSTRUCT_VES::TYPE_ETUDE::MECANIQUE);
402     params_etude_CLCH_sph_quad.change_valeur("Nom_etude","etude_CLCH_sph_quad");
403     params_etude_CLCH_sph_quad.change_valeur("Type_Chargement",0);
404     params_etude_CLCH_sph_quad.change_valeur("Type_CL",1);
405     params_etude_CLCH_sph_quad.change_valeur("Valeur_CL",1000);
406     sys_command.clear(); sys_command.append("parametre/etude/param_etude_CLCH_sph_quad.txt");
407     params_etude_CLCH_sph_quad.enregistrer((char*)sys_command.c_str());
408 couturad 926
409 couturad 934 OT_PARAMETRES params_etude_CLDH_dev_lin;
410     ini_param_etude(&params_etude_CLDH_dev_lin,MSTRUCT_VES::TYPE_ETUDE::MECANIQUE);
411     params_etude_CLDH_dev_lin.change_valeur("Nom_etude","etude_CLDH_dev_lin");
412     params_etude_CLDH_dev_lin.change_valeur("Type_Chargement",1);
413     params_etude_CLDH_dev_lin.change_valeur("Type_CL",0);
414     params_etude_CLDH_dev_lin.change_valeur("Valeur_CL",0.0001);
415     sys_command.clear(); sys_command.append("parametre/etude/param_etude_CLDH_dev_lin.txt");
416     params_etude_CLDH_dev_lin.enregistrer((char*)sys_command.c_str());
417    
418     OT_PARAMETRES params_etude_CLDH_dev_quad;
419     ini_param_etude(&params_etude_CLDH_dev_quad,MSTRUCT_VES::TYPE_ETUDE::MECANIQUE);
420     params_etude_CLDH_dev_quad.change_valeur("Nom_etude","etude_CLDH_dev_quad");
421     params_etude_CLDH_dev_quad.change_valeur("Type_Chargement",1);
422     params_etude_CLDH_dev_quad.change_valeur("Type_CL",0);
423     params_etude_CLDH_dev_quad.change_valeur("Valeur_CL",0.0001);
424     sys_command.clear(); sys_command.append("parametre/etude/param_etude_CLDH_dev_quad.txt");
425     params_etude_CLDH_dev_quad.enregistrer((char*)sys_command.c_str());
426    
427     OT_PARAMETRES params_etude_CLCH_dev_lin;
428     ini_param_etude(&params_etude_CLCH_dev_lin,MSTRUCT_VES::TYPE_ETUDE::MECANIQUE);
429     params_etude_CLCH_dev_lin.change_valeur("Nom_etude","etude_CLCH_dev_lin");
430     params_etude_CLCH_dev_lin.change_valeur("Type_Chargement",1);
431     params_etude_CLCH_dev_lin.change_valeur("Type_CL",1);
432     params_etude_CLCH_dev_lin.change_valeur("Valeur_CL",1000);
433     sys_command.clear(); sys_command.append("parametre/etude/param_etude_CLCH_dev_lin.txt");
434     params_etude_CLCH_dev_lin.enregistrer((char*)sys_command.c_str());
435    
436     OT_PARAMETRES params_etude_CLCH_dev_quad;
437     ini_param_etude(&params_etude_CLCH_dev_quad,MSTRUCT_VES::TYPE_ETUDE::MECANIQUE);
438     params_etude_CLCH_dev_quad.change_valeur("Nom_etude","etude_CLCH_dev_quad");
439     params_etude_CLCH_dev_quad.change_valeur("Type_Chargement",1);
440     params_etude_CLCH_dev_quad.change_valeur("Type_CL",1);
441     params_etude_CLCH_dev_quad.change_valeur("Valeur_CL",1000);
442     sys_command.clear(); sys_command.append("parametre/etude/param_etude_CLCH_dev_quad.txt");
443     params_etude_CLCH_dev_quad.enregistrer((char*)sys_command.c_str());
444    
445 couturad 926 MG_EXPORT exp;
446     OT_PARAMETRES *params_aster=exp.get_param_aster();
447     params_aster->change_valeur("Memoire",3072);
448     params_aster->change_valeur("Temps_max",250000);
449     params_aster->change_valeur("Nb_CPU",8);
450     params_aster->change_valeur("Noeud_ele",2);
451 couturad 929 params_aster->change_valeur("Base_num_mail",36);
452 couturad 933 sys_command.clear(); sys_command.append("parametre/etude/param_aster.txt");
453 couturad 926 params_aster->enregistrer((char*)sys_command.c_str());
454    
455 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/lstparam_analyse.txt");
456 couturad 919 f.open(sys_command.c_str(),ios::out);
457 couturad 926 f << "// Fichier de parametres ANALYSE" << std::endl;
458 couturad 919 f << "// Nombre de fichier de parametres" << std::endl;
459 couturad 938 f << "NB_FICHIER_PARAM 24" << std::endl;
460 couturad 926 f << "params_analyse_champ_sigma.txt" << std::endl;
461     f << "params_analyse_champ_sigma_boite.txt" << std::endl;
462 couturad 930 f << "params_analyse_champ_sigma_erosion.txt" << std::endl;
463 couturad 926 f << "params_analyse_champ_epsilon.txt" << std::endl;
464     f << "params_analyse_champ_epsilon_boite.txt" << std::endl;
465 couturad 930 f << "params_analyse_champ_epsilon_erosion.txt" << std::endl;
466 couturad 926 f << "params_analyse_orientation.txt" << std::endl;
467     f << "params_analyse_orientation_boite.txt" << std::endl;
468 couturad 930 f << "params_analyse_orientation_erosion.txt" << std::endl;
469 couturad 938 f << "params_analyse_orientation_ponderee.txt" << std::endl;
470     f << "params_analyse_orientation_boite_ponderee.txt" << std::endl;
471     f << "params_analyse_orientation_erosion_ponderee.txt" << std::endl;
472 couturad 926 f << "params_analyse_cao_all.txt" << std::endl;
473     f << "params_analyse_cao_cylindre.txt" << std::endl;
474     f << "params_analyse_cao_matrice.txt" << std::endl;
475     f << "params_analyse_mg_maillage_all.txt" << std::endl;
476     f << "params_analyse_mg_maillage_cylindre.txt" << std::endl;
477     f << "params_analyse_mg_maillage_matrice.txt" << std::endl;
478     f << "params_analyse_fem_maillage_all.txt" << std::endl;
479     f << "params_analyse_fem_maillage_all_boite.txt" << std::endl;
480 couturad 930 f << "params_analyse_fem_maillage_all_erosion.txt" << std::endl;
481 couturad 926 f << "params_analyse_fem_maillage_cylindre.txt" << std::endl;
482 couturad 930 f << "params_analyse_fem_maillage_cylindre_erosion.txt" << std::endl;
483 couturad 926 f << "params_analyse_fem_maillage_matrice.txt" << std::endl;
484 couturad 919 f.close();
485 couturad 926 OT_PARAMETRES params_analyse_champ_sigma;
486     ini_param_analyse(&params_analyse_champ_sigma,MSTRUCT_ANALYSE::TYPE_ANALYSE::CHAMP);
487 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_champ_sigma.txt");
488 couturad 926 params_analyse_champ_sigma.change_valeur("Identifiant","Champ_SIGMA");
489     params_analyse_champ_sigma.enregistrer((char*)sys_command.c_str());
490     OT_PARAMETRES params_analyse_champ_sigma_boite;
491     ini_param_analyse(&params_analyse_champ_sigma_boite,MSTRUCT_ANALYSE::TYPE_ANALYSE::CHAMP);
492     params_analyse_champ_sigma_boite.change_valeur("Boite_analyse",1);
493     params_analyse_champ_sigma_boite.change_valeur("Identifiant","Champ_SIGMA_boite");
494 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_champ_sigma_boite.txt");
495 couturad 926 params_analyse_champ_sigma_boite.enregistrer((char*)sys_command.c_str());
496 couturad 930 OT_PARAMETRES params_analyse_champ_sigma_erosion;
497     ini_param_analyse(&params_analyse_champ_sigma_erosion,MSTRUCT_ANALYSE::TYPE_ANALYSE::CHAMP,true);
498     params_analyse_champ_sigma_erosion.change_valeur("Identifiant","Champ_SIGMA_erosion");
499 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_champ_sigma_erosion.txt");
500 couturad 930 params_analyse_champ_sigma_erosion.enregistrer((char*)sys_command.c_str());
501 couturad 919
502 couturad 930
503 couturad 926 OT_PARAMETRES params_analyse_champ_epsilon;
504     ini_param_analyse(&params_analyse_champ_epsilon,MSTRUCT_ANALYSE::TYPE_ANALYSE::CHAMP);
505     params_analyse_champ_epsilon.change_valeur("Identifiant","Champ_EPSILON");
506     params_analyse_champ_epsilon.change_valeur("Num_solution",1);
507     params_analyse_champ_epsilon.change_valeur("Largeur_colonne_distribution",0.00000000001);
508 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_champ_epsilon.txt");
509 couturad 926 params_analyse_champ_epsilon.enregistrer((char*)sys_command.c_str());
510     OT_PARAMETRES params_analyse_champ_epsilon_boite;
511     ini_param_analyse(&params_analyse_champ_epsilon_boite,MSTRUCT_ANALYSE::TYPE_ANALYSE::CHAMP);
512     params_analyse_champ_epsilon_boite.change_valeur("Identifiant","Champ_EPSILON_boite");
513     params_analyse_champ_epsilon_boite.change_valeur("Num_solution",1);
514     params_analyse_champ_epsilon_boite.change_valeur("Boite_analyse",1);
515     params_analyse_champ_epsilon_boite.change_valeur("Largeur_colonne_distribution",0.00000000001);
516 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_champ_epsilon_boite.txt");
517 couturad 926 params_analyse_champ_epsilon_boite.enregistrer((char*)sys_command.c_str());
518 couturad 930 OT_PARAMETRES params_analyse_champ_epsilon_erosion;
519     ini_param_analyse(&params_analyse_champ_epsilon_erosion,MSTRUCT_ANALYSE::TYPE_ANALYSE::CHAMP,true);
520     params_analyse_champ_epsilon_erosion.change_valeur("Identifiant","Champ_EPSILON_erosion");
521     params_analyse_champ_epsilon_erosion.change_valeur("Num_solution",1);
522     params_analyse_champ_epsilon_erosion.change_valeur("Largeur_colonne_distribution",0.00000000001);
523 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_champ_epsilon_erosion.txt");
524 couturad 930 params_analyse_champ_epsilon_erosion.enregistrer((char*)sys_command.c_str());
525 couturad 926
526     OT_PARAMETRES params_analyse_orientation;
527     ini_param_analyse(&params_analyse_orientation,MSTRUCT_ANALYSE::TYPE_ANALYSE::ORIENTATION);
528     params_analyse_orientation.change_valeur("Identifiant","Orientation_Cylindre");
529 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_orientation.txt");
530 couturad 926 params_analyse_orientation.enregistrer((char*)sys_command.c_str());
531     OT_PARAMETRES params_analyse_orientation_boite;
532     ini_param_analyse(&params_analyse_orientation_boite,MSTRUCT_ANALYSE::TYPE_ANALYSE::ORIENTATION);
533     params_analyse_orientation_boite.change_valeur("Identifiant","Orientation_Cylindre_boite");
534     params_analyse_orientation_boite.change_valeur("Boite_analyse",1);
535 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_orientation_boite.txt");
536 couturad 926 params_analyse_orientation_boite.enregistrer((char*)sys_command.c_str());
537 couturad 930 OT_PARAMETRES params_analyse_orientation_erosion;
538     ini_param_analyse(&params_analyse_orientation_erosion,MSTRUCT_ANALYSE::TYPE_ANALYSE::ORIENTATION,true);
539     params_analyse_orientation_erosion.change_valeur("Identifiant","Orientation_Cylindre_erosion");
540 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_orientation_erosion.txt");
541 couturad 930 params_analyse_orientation_erosion.enregistrer((char*)sys_command.c_str());
542 couturad 926
543 couturad 938 OT_PARAMETRES params_analyse_orientation_ponderee;
544     ini_param_analyse(&params_analyse_orientation_ponderee,MSTRUCT_ANALYSE::TYPE_ANALYSE::ORIENTATION_PONDEREE);
545     params_analyse_orientation_ponderee.change_valeur("Identifiant","Orientation_Cylindre_ponderee");
546     sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_orientation_ponderee.txt");
547     params_analyse_orientation_ponderee.enregistrer((char*)sys_command.c_str());
548     OT_PARAMETRES params_analyse_orientation_boite_ponderee;
549     ini_param_analyse(&params_analyse_orientation_boite_ponderee,MSTRUCT_ANALYSE::TYPE_ANALYSE::ORIENTATION_PONDEREE);
550     params_analyse_orientation_boite_ponderee.change_valeur("Identifiant","Orientation_Cylindre_boite_ponderee");
551     params_analyse_orientation_boite_ponderee.change_valeur("Boite_analyse",1);
552     sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_orientation_boite_ponderee.txt");
553     params_analyse_orientation_boite_ponderee.enregistrer((char*)sys_command.c_str());
554     OT_PARAMETRES params_analyse_orientation_erosion_ponderee;
555     ini_param_analyse(&params_analyse_orientation_erosion_ponderee,MSTRUCT_ANALYSE::TYPE_ANALYSE::ORIENTATION_PONDEREE,true);
556     params_analyse_orientation_erosion_ponderee.change_valeur("Identifiant","Orientation_Cylindre_erosion_ponderee");
557     sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_orientation_erosion_ponderee.txt");
558     params_analyse_orientation_erosion_ponderee.enregistrer((char*)sys_command.c_str());
559 couturad 926
560     OT_PARAMETRES params_analyse_cao_all;
561     ini_param_analyse(&params_analyse_cao_all,MSTRUCT_ANALYSE::TYPE_ANALYSE::CAO);
562     params_analyse_cao_all.change_valeur("Identifiant","Cao_ALL");
563 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_cao_all.txt");
564 couturad 926 params_analyse_cao_all.enregistrer((char*)sys_command.c_str());
565     OT_PARAMETRES params_analyse_cao_cylindre;
566     ini_param_analyse(&params_analyse_cao_cylindre,MSTRUCT_ANALYSE::TYPE_ANALYSE::CAO);
567     params_analyse_cao_cylindre.change_valeur("Identifiant","Cao_Cylindre");
568     params_analyse_cao_cylindre.change_valeur("Nom_groupe_forme","Cylindre");
569 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_cao_cylindre.txt");
570 couturad 926 params_analyse_cao_cylindre.enregistrer((char*)sys_command.c_str());
571     OT_PARAMETRES params_analyse_cao_matrice;
572     ini_param_analyse(&params_analyse_cao_matrice,MSTRUCT_ANALYSE::TYPE_ANALYSE::CAO);
573     params_analyse_cao_matrice.change_valeur("Identifiant","Cao_Matrice");
574     params_analyse_cao_matrice.change_valeur("Nom_groupe_forme","Matrice");
575 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_cao_matrice.txt");
576 couturad 926 params_analyse_cao_matrice.enregistrer((char*)sys_command.c_str());
577    
578     OT_PARAMETRES params_analyse_mg_maillage_all;
579     ini_param_analyse(&params_analyse_mg_maillage_all,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_MG);
580     params_analyse_mg_maillage_all.change_valeur("Identifiant","MG_maillage_ALL");
581 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_mg_maillage_all.txt");
582 couturad 926 params_analyse_mg_maillage_all.enregistrer((char*)sys_command.c_str());
583     OT_PARAMETRES params_analyse_mg_maillage_cylindre;
584     ini_param_analyse(&params_analyse_mg_maillage_cylindre,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_MG);
585     params_analyse_mg_maillage_cylindre.change_valeur("Identifiant","MG_maillage_Cylindre");
586     params_analyse_mg_maillage_cylindre.change_valeur("Nom_groupe_forme","Cylindre");
587 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_mg_maillage_cylindre.txt");
588 couturad 926 params_analyse_mg_maillage_cylindre.enregistrer((char*)sys_command.c_str());
589     OT_PARAMETRES params_analyse_mg_maillage_matrice;
590     ini_param_analyse(&params_analyse_mg_maillage_matrice,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_MG);
591     params_analyse_mg_maillage_matrice.change_valeur("Identifiant","MG_maillage_Matrice");
592     params_analyse_mg_maillage_matrice.change_valeur("Nom_groupe_forme","Matrice");
593 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_mg_maillage_matrice.txt");
594 couturad 926 params_analyse_mg_maillage_matrice.enregistrer((char*)sys_command.c_str());
595    
596     OT_PARAMETRES params_analyse_fem_maillage_all;
597     ini_param_analyse(&params_analyse_fem_maillage_all,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM);
598     params_analyse_fem_maillage_all.change_valeur("Identifiant","FEM_maillage_ALL");
599 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_fem_maillage_all.txt");
600 couturad 926 params_analyse_fem_maillage_all.enregistrer((char*)sys_command.c_str());
601     OT_PARAMETRES params_analyse_fem_maillage_all_boite;
602     ini_param_analyse(&params_analyse_fem_maillage_all_boite,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM);
603     params_analyse_fem_maillage_all_boite.change_valeur("Identifiant","FEM_maillage_ALL_boite");
604     params_analyse_fem_maillage_all_boite.change_valeur("Boite_analyse",1);
605 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_fem_maillage_all_boite.txt");
606 couturad 930 params_analyse_fem_maillage_all_boite.enregistrer((char*)sys_command.c_str());
607     OT_PARAMETRES params_analyse_fem_maillage_all_erosion;
608     ini_param_analyse(&params_analyse_fem_maillage_all_erosion,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM,true);
609     params_analyse_fem_maillage_all_erosion.change_valeur("Identifiant","FEM_maillage_ALL_erosion");
610 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_fem_maillage_all_erosion.txt");
611 couturad 930 params_analyse_fem_maillage_all_erosion.enregistrer((char*)sys_command.c_str());
612 couturad 926 OT_PARAMETRES params_analyse_fem_maillage_cylindre;
613     ini_param_analyse(&params_analyse_fem_maillage_cylindre,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM);
614     params_analyse_fem_maillage_cylindre.change_valeur("Identifiant","FEM_maillage_Cylindre");
615     params_analyse_fem_maillage_cylindre.change_valeur("Nom_groupe_forme","Cylindre");
616 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_fem_maillage_cylindre.txt");
617 couturad 930 params_analyse_fem_maillage_cylindre.enregistrer((char*)sys_command.c_str());
618     OT_PARAMETRES params_analyse_fem_maillage_cylindre_erosion;
619     ini_param_analyse(&params_analyse_fem_maillage_cylindre_erosion,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM,true);
620     params_analyse_fem_maillage_cylindre_erosion.change_valeur("Identifiant","FEM_maillage_Cylindre_erosion");
621     params_analyse_fem_maillage_cylindre_erosion.change_valeur("Nom_groupe_forme","Cylindre");
622 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_fem_maillage_cylindre_erosion.txt");
623 couturad 930 params_analyse_fem_maillage_cylindre_erosion.enregistrer((char*)sys_command.c_str());
624 couturad 926 OT_PARAMETRES params_analyse_fem_maillage_matrice;
625     ini_param_analyse(&params_analyse_fem_maillage_matrice,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM);
626     params_analyse_fem_maillage_matrice.change_valeur("Identifiant","FEM_maillage_Matrice");
627     params_analyse_fem_maillage_matrice.change_valeur("Nom_groupe_forme","Matrice");
628 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_analyse_fem_maillage_matrice.txt");
629 couturad 926 params_analyse_fem_maillage_matrice.enregistrer((char*)sys_command.c_str());
630    
631 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/lstparam_ver.txt");
632 couturad 926 f.open(sys_command.c_str(),ios::out);
633     f << "// Fichier de parametres VER" << std::endl;
634     f << "// Nombre de fichier de parametres" << std::endl;
635 couturad 930 f << "NB_FICHIER_PARAM 3" << std::endl;
636 couturad 926 f << "params_ver.txt" << std::endl;
637     f << "params_ver_boite.txt" << std::endl;
638 couturad 930 f << "params_ver_erosion.txt" << std::endl;
639 couturad 926 f.close();
640    
641     OT_PARAMETRES params_ver;
642     ini_param_ver(&params_ver);
643 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_ver.txt");
644 couturad 926 params_ver.enregistrer((char*)sys_command.c_str());
645    
646     OT_PARAMETRES params_ver_boite;
647     ini_param_ver(&params_ver_boite);
648     params_ver_boite.change_valeur("Identifiant_epsilon","Champ_EPSILON_boite");
649     params_ver_boite.change_valeur("Identifiant_sigma","Champ_SIGMA_boite");
650 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_ver_boite.txt");
651 couturad 926 params_ver_boite.enregistrer((char*)sys_command.c_str());
652 couturad 930
653     OT_PARAMETRES params_ver_erosion;
654     ini_param_ver(&params_ver_erosion);
655     params_ver_erosion.change_valeur("Identifiant_epsilon","Champ_EPSILON_erosion");
656     params_ver_erosion.change_valeur("Identifiant_sigma","Champ_SIGMA_erosion");
657     params_ver_erosion.change_valeur("Analyse_erosion","1");
658 couturad 933 sys_command.clear(); sys_command.append("parametre/analyse/params_ver_erosion.txt");
659 couturad 930 params_ver_erosion.enregistrer((char*)sys_command.c_str());
660 couturad 933
661 couturad 938 // sys_command.clear(); sys_command.append("mkdir resultats");
662     // mkdir_err = system(sys_command.c_str());
663     // if(mkdir_err !=0)
664     // {
665     // std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers resultats! ***" << std::endl;
666     // return FAIL;
667     // }
668     // sys_command.clear(); sys_command.append("mkdir resultats/DH");system(sys_command.c_str());
669     // sys_command.clear(); sys_command.append("mkdir resultats/CH");system(sys_command.c_str());
670     // sys_command.clear(); sys_command.append("mkdir resultats/DH/sph");system(sys_command.c_str());
671     // sys_command.clear(); sys_command.append("mkdir resultats/DH/dev");system(sys_command.c_str());
672     // sys_command.clear(); sys_command.append("mkdir resultats/CH/sph");system(sys_command.c_str());
673     // sys_command.clear(); sys_command.append("mkdir resultats/CH/dev");system(sys_command.c_str());
674     // sys_command.clear(); sys_command.append("mkdir resultats/DH/sph/lin");system(sys_command.c_str());
675     // sys_command.clear(); sys_command.append("mkdir resultats/DH/dev/lin");system(sys_command.c_str());
676     // sys_command.clear(); sys_command.append("mkdir resultats/CH/sph/lin");system(sys_command.c_str());
677     // sys_command.clear(); sys_command.append("mkdir resultats/CH/dev/lin");system(sys_command.c_str());
678     // sys_command.clear(); sys_command.append("mkdir resultats/DH/sph/quad");system(sys_command.c_str());
679     // sys_command.clear(); sys_command.append("mkdir resultats/DH/dev/quad");system(sys_command.c_str());
680     // sys_command.clear(); sys_command.append("mkdir resultats/CH/sph/quad");system(sys_command.c_str());
681     // sys_command.clear(); sys_command.append("mkdir resultats/CH/dev/quad");system(sys_command.c_str());
682     // sys_command.clear(); sys_command.append("mkdir resultats/CH/modules");system(sys_command.c_str());
683     // sys_command.clear(); sys_command.append("mkdir resultats/CH/modules/lin");system(sys_command.c_str());
684     // sys_command.clear(); sys_command.append("mkdir resultats/CH/modules/quad");system(sys_command.c_str());
685     // sys_command.clear(); sys_command.append("mkdir resultats/DH/modules");system(sys_command.c_str());
686     // sys_command.clear(); sys_command.append("mkdir resultats/DH/modules/lin");system(sys_command.c_str());
687     // sys_command.clear(); sys_command.append("mkdir resultats/DH/modules/quad");system(sys_command.c_str());
688 couturad 919 return OK;
689     }
690    
691 couturad 929 int PARAMETRES::generer_script_ves(int type_etude)
692     {
693     if(type_etude==MSTRUCT_VES::TYPE_ETUDE::MECANIQUE)
694     {
695     ofstream ofstrm((char*)"generer_nb_ves",std::ios::out|std::ios::trunc);
696     ofstrm.precision(16);
697     ofstrm.setf(std::ios::showpoint);
698     ofstrm << "#!/bin/bash" << std::endl;
699     ofstrm << "INDEX_DEPART=$1" << std::endl;
700     ofstrm << "INDEX_FIN=$2" << std::endl;
701     ofstrm << "DOSSIER_PARAM=$3" << std::endl;
702     ofstrm << "CHEMINCOMPILE=$4" << std::endl;
703     ofstrm << "if [ -z ${INDEX_DEPART// } ]" << std::endl;
704     ofstrm << "then" << std::endl;
705     ofstrm << " echo \"Erreur : Numero du ves de depart manquant\"" << std::endl;
706     ofstrm << " exit" << std::endl;
707     ofstrm << "fi" << std::endl;
708     ofstrm << "if [ -z ${INDEX_FIN// } ]" << std::endl;
709     ofstrm << "then" << std::endl;
710     ofstrm << " echo \"Erreur : Numero du ves de fin manquant\"" << std::endl;
711     ofstrm << " exit" << std::endl;
712     ofstrm << "fi" << std::endl;
713     ofstrm << "if [ -z ${DOSSIER_PARAM// } ]" << std::endl;
714     ofstrm << "then" << std::endl;
715     ofstrm << " echo \"Erreur : Dossier de parametres manquant\"" << std::endl;
716     ofstrm << " exit" << std::endl;
717     ofstrm << "fi" << std::endl;
718     ofstrm << "if [ -z ${CHEMINCOMPILE// } ]" << std::endl;
719     ofstrm << "then" << std::endl;
720     ofstrm << " echo \"Erreur : Chemin vers exe/app manquant\"" << std::endl;
721     ofstrm << " exit" << std::endl;
722     ofstrm << "fi" << std::endl;
723     ofstrm << "function executer" << std::endl;
724     ofstrm << "{" << std::endl;
725     ofstrm << "OPERATION_REUSSIE=1;" << std::endl;
726     ofstrm << "$*" << std::endl;
727     ofstrm << "VAR=$?" << std::endl;
728     ofstrm << "if (( $VAR )) ; then " << std::endl;
729     ofstrm << " OPERATION_REUSSIE=0; " << std::endl;
730     ofstrm << " STAT=$VAR;" << std::endl;
731     ofstrm << "fi" << std::endl;
732     ofstrm << "}" << std::endl;
733     ofstrm << "" << std::endl;
734     ofstrm << "echo \"*********************************************************\"" << std::endl;
735     ofstrm << "echo \"Generation des microstructures $INDEX_DEPART - $INDEX_FIN\"" << std::endl;
736     ofstrm << "echo \"*********************************************************\"" << std::endl;
737     ofstrm << "STAT=$?" << std::endl;
738     ofstrm << "" << std::endl;
739     ofstrm << "if [ $INDEX_DEPART -eq 1 ]" << std::endl;
740     ofstrm << "then" << std::endl;
741     ofstrm << "mkdir etude" << std::endl;
742     ofstrm << "fi" << std::endl;
743     ofstrm << "cd etude" << std::endl;
744     ofstrm << "for (( k=$INDEX_DEPART; k<=$INDEX_FIN; k++ ))" << std::endl;
745     ofstrm << "do" << std::endl;
746     ofstrm << " echo \"Microstructure #$k\"" << std::endl;
747     ofstrm << " mkdir e$k" << std::endl;
748     ofstrm << " cd e$k" << std::endl;
749     ofstrm << " OPERATION_REUSSIE=0" << std::endl;
750     ofstrm << " until [ $OPERATION_REUSSIE -eq 1 ]; do" << std::endl;
751     ofstrm << " executer ../../ves $DOSSIER_PARAM $CHEMINCOMPILE" << std::endl;
752     ofstrm << " done" << std::endl;
753     ofstrm << " DOSSIER_ACTUEL=$(pwd)" << std::endl;
754 couturad 934 ofstrm << " echo \"$DOSSIER_ACTUEL/ves_analyse_CLDH_sph_lin.ves\" >> ../../lst_ves_analyse_CLDH_sph_lin.txt" << std::endl;
755     ofstrm << " echo \"$DOSSIER_ACTUEL/ves_analyse_CLCH_sph_lin.ves\" >> ../../lst_ves_analyse_CLCH_sph_lin.txt" << std::endl;
756     ofstrm << " echo \"$DOSSIER_ACTUEL/ves_analyse_CLDH_dev_lin.ves\" >> ../../lst_ves_analyse_CLDH_dev_lin.txt" << std::endl;
757     ofstrm << " echo \"$DOSSIER_ACTUEL/ves_analyse_CLCH_dev_lin.ves\" >> ../../lst_ves_analyse_CLCH_dev_lin.txt" << std::endl;
758     ofstrm << " echo \"$DOSSIER_ACTUEL/ves_analyse_CLDH_sph_quad.ves\" >> ../../lst_ves_analyse_CLDH_sph_quad.txt" << std::endl;
759     ofstrm << " echo \"$DOSSIER_ACTUEL/ves_analyse_CLCH_sph_quad.ves\" >> ../../lst_ves_analyse_CLCH_sph_quad.txt" << std::endl;
760     ofstrm << " echo \"$DOSSIER_ACTUEL/ves_analyse_CLDH_dev_quad.ves\" >> ../../lst_ves_analyse_CLDH_dev_quad.txt" << std::endl;
761     ofstrm << " echo \"$DOSSIER_ACTUEL/ves_analyse_CLCH_dev_quad.ves\" >> ../../lst_ves_analyse_CLCH_dev_quad.txt" << std::endl;
762 couturad 929 ofstrm << " cd .." << std::endl;
763     ofstrm << "done" << std::endl;
764     ofstrm << "cd .." << std::endl;
765     ofstrm << "echo \"**********************\"" << std::endl;
766     ofstrm << "echo \" FIN \"" << std::endl;
767     ofstrm << "echo \"**********************\"" << std::endl;
768     ofstrm << "exit $STAT" << std::endl;
769     ofstrm.close();
770     system((char*)"chmod 744 generer_nb_ves");
771    
772     ofstrm.open((char*)"ves",std::ios::out|std::ios::trunc);
773     ofstrm.precision(16);
774     ofstrm.setf(std::ios::showpoint);
775     ofstrm << "#!/bin/bash" << std::endl;
776     ofstrm << "DOSSIER_PARAM=$1" << std::endl;
777     ofstrm << "CHEMINCOMPILE=$2" << std::endl;
778     ofstrm << "function executer" << std::endl;
779     ofstrm << "{" << std::endl;
780     ofstrm << "$*" << std::endl;
781     ofstrm << "VAR=$?" << std::endl;
782     ofstrm << "if (( $VAR )) ; then " << std::endl;
783     ofstrm << " STATUSTXT=\"ERREUR dans les tests\"; " << std::endl;
784     ofstrm << " STAT=$VAR;" << std::endl;
785     ofstrm << " exit $STAT" << std::endl;
786     ofstrm << "fi" << std::endl;
787     ofstrm << "}" << std::endl;
788     ofstrm << "STATUSTXT=\"Test sans ERREUR\"" << std::endl;
789     ofstrm << "echo \"*******************************\"" << std::endl;
790     ofstrm << "echo \"Generation d'une microstructure\"" << std::endl;
791     ofstrm << "echo \"*******************************\"" << std::endl;
792     ofstrm << "STAT=$?" << std::endl;
793     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_geo -ves_out ves_geo.ves -lstparam $DOSSIER_PARAM/geometrie/lstparam_geo.txt" << std::endl;
794     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;
795     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;
796     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_mg_maill -ves_in ves_carte.ves -ves_out ves_maill.ves -param $DOSSIER_PARAM/maillage/param_maill.txt -carte carte.ctt" << std::endl;
797 couturad 933 ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_fem_maill -ves_in ves_maill.ves -ves_out ves_fem_maill_lin.ves -param $DOSSIER_PARAM/fem_maillage/param_fem_maill_lin.txt" << std::endl;
798     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_fem_maill -ves_in ves_maill.ves -ves_out ves_fem_maill_quad.ves -param $DOSSIER_PARAM/fem_maillage/param_fem_maill_quad.txt" << std::endl;
799 couturad 929 ofstrm << "" << std::endl;
800 couturad 934 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;
801     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;
802     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;
803     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;
804     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;
805     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;
806     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;
807     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;
808 couturad 929 ofstrm << "" << std::endl;
809 couturad 934 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;
810     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;
811     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;
812     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;
813     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;
814     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;
815     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;
816     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;
817 couturad 929 ofstrm << "" << std::endl;
818 couturad 933 ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_analyse -ves_in ves_calcul_CLDH_sph_lin.ves -ves_out ves_analyse_CLDH_sph_lin.ves -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse.txt" << std::endl;
819     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_analyse -ves_in ves_calcul_CLCH_sph_lin.ves -ves_out ves_analyse_CLCH_sph_lin.ves -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse.txt" << std::endl;
820     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_analyse -ves_in ves_calcul_CLDH_dev_lin.ves -ves_out ves_analyse_CLDH_dev_lin.ves -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse.txt" << std::endl;
821     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_analyse -ves_in ves_calcul_CLCH_dev_lin.ves -ves_out ves_analyse_CLCH_dev_lin.ves -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse.txt" << std::endl;
822     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_analyse -ves_in ves_calcul_CLDH_sph_quad.ves -ves_out ves_analyse_CLDH_sph_quad.ves -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse.txt" << std::endl;
823     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_analyse -ves_in ves_calcul_CLCH_sph_quad.ves -ves_out ves_analyse_CLCH_sph_quad.ves -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse.txt" << std::endl;
824     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_analyse -ves_in ves_calcul_CLDH_dev_quad.ves -ves_out ves_analyse_CLDH_dev_quad.ves -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse.txt" << std::endl;
825     ofstrm << "executer $CHEMINCOMPILE/microstructure/microstructure.exe -gen_analyse -ves_in ves_calcul_CLCH_dev_quad.ves -ves_out ves_analyse_CLCH_dev_quad.ves -lstparam $DOSSIER_PARAM/analyse/lstparam_analyse.txt" << std::endl;
826 couturad 929 ofstrm << "" << std::endl;
827 couturad 933 ofstrm << "#executer $CHEMINCOMPILE/microstructure/microstructure.exe -affiche_contenu -ves_in ves_analyse_CLDH_sph_lin.ves" << std::endl;
828     ofstrm << "#executer $CHEMINCOMPILE/microstructure/microstructure.exe -affiche_contenu -ves_in ves_analyse_CLCH_sph_lin.ves" << std::endl;
829     ofstrm << "#executer $CHEMINCOMPILE/microstructure/microstructure.exe -affiche_contenu -ves_in ves_analyse_CLDH_dev_lin.ves" << std::endl;
830     ofstrm << "#executer $CHEMINCOMPILE/microstructure/microstructure.exe -affiche_contenu -ves_in ves_analyse_CLCH_dev_lin.ves" << std::endl;
831     ofstrm << "#executer $CHEMINCOMPILE/microstructure/microstructure.exe -affiche_contenu -ves_in ves_analyse_CLDH_sph_quad.ves" << std::endl;
832     ofstrm << "#executer $CHEMINCOMPILE/microstructure/microstructure.exe -affiche_contenu -ves_in ves_analyse_CLCH_sph_quad.ves" << std::endl;
833     ofstrm << "#executer $CHEMINCOMPILE/microstructure/microstructure.exe -affiche_contenu -ves_in ves_analyse_CLDH_dev_quad.ves" << std::endl;
834     ofstrm << "#executer $CHEMINCOMPILE/microstructure/microstructure.exe -affiche_contenu -ves_in ves_analyse_CLCH_dev_quad.ves" << std::endl;
835 couturad 930 ofstrm << "#find . -type f ! -name '*.ves' -delete" << std::endl;
836 couturad 929 ofstrm << "cd .." << std::endl;
837     ofstrm << "echo \"**********************\"" << std::endl;
838     ofstrm << "echo $STATUSTXT" << std::endl;
839     ofstrm << "echo \"**********************\"" << std::endl;
840     ofstrm << "exit $STAT" << std::endl;
841     ofstrm.close();
842     system((char*)"chmod 744 ves");
843     }
844     }
845    
846    
847    
848 couturad 919 int PARAMETRES::importer_fichier_parametres(char* fichier, OT_PARAMETRES* params)
849     {
850     params->lire(fichier);
851     }
852    
853     int PARAMETRES::importer_fichier_liste_parametres(char* fichier, std::vector< OT_PARAMETRES* >& vector_params)
854     {
855     std::string str_fichier = fichier;
856     std::size_t found = str_fichier.rfind((char*)"/");
857     std::string chemin;
858     if(found!=-1)
859     {
860     chemin = str_fichier.substr(0,found+1);
861     }
862     else chemin = "";
863     FILE* in=fopen(fichier,"rt");
864     char ligne[4000];
865     while(!feof(in))
866     {
867     fgets(ligne,4000,in);
868     char *aide = strstr(ligne,"//");
869     if(aide==NULL)
870     {
871     char message[500];
872     int nb_fichier_param=0;
873     sscanf(ligne,"%s %i ",message,&nb_fichier_param);
874     if(strcmp(message,"NB_FICHIER_PARAM")==0)
875     {
876     for(int i=0;i<nb_fichier_param;i++)
877     {
878     fgets(ligne,4000,in);
879     if(feof(in)) std::cerr << "*** PARAMETRES::PARAMETRES::importer_fichier_liste_parametres : Erreur de lecture ! ***" << std::endl;
880     char sous_fichier[500];
881     sscanf(ligne,"%s",sous_fichier);
882     OT_PARAMETRES *param = new OT_PARAMETRES;
883     std::string str_sous_fichier = chemin;
884     str_sous_fichier.append(sous_fichier);
885     param->lire((char*)str_sous_fichier.c_str());
886     vector_params.push_back(param);
887     }
888     }
889     }
890     }
891     }