ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/microstructure/src/mstruct_parametres.cpp
Revision: 926
Committed: Tue May 1 20:38:42 2018 UTC (7 years ago) by couturad
File size: 39633 byte(s)
Log Message:
Ajout de nouvelles fonctionnalités de representation et d'analyse des VES
*Modification du CMakeLists.txt de microstructure

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 926 params->ajouter("Fraction_volumique_cible","0.05",OT_PARAMETRES::DOUBLE,"Fraction volumique cible d'inclusion [0.0, 1.0]");
25 couturad 919 if(type_inclusion==GENERATEUR_RSA::TYPE_INCLUSION::SPHERE)
26     {
27     params->ajouter("Type_inclusion","0",OT_PARAMETRES::DOUBLE,"Type d'inclusion : Sphere [0], Cylindre [1]");
28     params->ajouter("Mu_rayon","0.2",OT_PARAMETRES::DOUBLE,"Moyenne du rayon de la sphere");
29     params->ajouter("Sigma_rayon","0.0",OT_PARAMETRES::DOUBLE,"Ecart type du rayon de la sphere");
30     }
31     if(type_inclusion==GENERATEUR_RSA::TYPE_INCLUSION::CYLINDRE)
32     {
33     params->ajouter("Type_inclusion","1",OT_PARAMETRES::DOUBLE,"Type d'inclusion : Sphere [0], Cylindre [1]");
34 couturad 926 params->ajouter("Mu_rayon","0.05",OT_PARAMETRES::DOUBLE,"Moyenne du rayon du cylindre");
35 couturad 919 params->ajouter("Sigma_rayon","0.0",OT_PARAMETRES::DOUBLE,"Ecart type du rayon du cylindre");
36 couturad 926 params->ajouter("Mu_longueur","0.4",OT_PARAMETRES::DOUBLE,"Moyenne de la longueur du cylindre");
37 couturad 919 params->ajouter("Sigma_longueur","0.0",OT_PARAMETRES::DOUBLE,"Ecart type de la longueur du cylindre");
38     params->ajouter("Mu_axe_X","0.0",OT_PARAMETRES::DOUBLE,"Moyenne de l'orientation selon l'axe X");
39     params->ajouter("Sigma_axe_X","0.0",OT_PARAMETRES::DOUBLE,"Ecart type de l'orientation selon l'axe X");
40     params->ajouter("Type_distribution_axe_X","0",OT_PARAMETRES::DOUBLE,"Type de distribution de l'orientation selon l'axe X : Uniforme[0], Normale[1]");
41     params->ajouter("Mu_axe_Y","0.0",OT_PARAMETRES::DOUBLE,"Moyenne de l'orientation selon l'axe Y");
42     params->ajouter("Sigma_axe_Y","0.0",OT_PARAMETRES::DOUBLE,"Ecart type de l'orientation selon l'axe Y");
43     params->ajouter("Type_distribution_axe_Y","0",OT_PARAMETRES::DOUBLE,"Type de distribution de l'orientation selon l'axe Y : Uniforme[0], Normale[1]");
44     params->ajouter("Mu_axe_Z","0.0",OT_PARAMETRES::DOUBLE,"Moyenne de l'orientation selon l'axe Z");
45     params->ajouter("Sigma_axe_Z","0.0",OT_PARAMETRES::DOUBLE,"Ecart type de l'orientation selon l'axe Z");
46     params->ajouter("Type_distribution_axe_Z","0",OT_PARAMETRES::DOUBLE,"Type de distribution de l'orientation selon l'axe Z : Uniforme[0], Normale[1]");
47     }
48     params->ajouter("Porosite","0",OT_PARAMETRES::DOUBLE,"Considerer l'inclusion comme etant une porosite (vide) [1]");
49 couturad 926 params->ajouter("Distance_min_inter_volume","0.04",OT_PARAMETRES::DOUBLE,"Distance minimale qui separe deux inclusions");
50     params->ajouter("Volume_min","0.0008",OT_PARAMETRES::DOUBLE,"Volume minimal admissible de l'inclusion");
51     params->ajouter("Aire_min","0.001963",OT_PARAMETRES::DOUBLE,"Aire minimal admissible d'une face de l'inclusion");
52 couturad 919 params->ajouter("Longueur_min","0.02",OT_PARAMETRES::DOUBLE,"Longueur minimal admissible d'une arete ");
53     params->ajouter("Angle_min","0.7854",OT_PARAMETRES::DOUBLE,"Angle minimal admissible entre deux faces");
54     params->ajouter("Nb_volume_max","500",OT_PARAMETRES::DOUBLE,"Nombre maximal d'inclusion");
55     params->ajouter("Nb_iteration_max","2000",OT_PARAMETRES::DOUBLE,"Nombre maximal d'iteration");
56     }
57    
58     void PARAMETRES::ini_param_materiau(OT_PARAMETRES* params,char* nom_groupe_forme)
59     {
60     params->ajouter("Nom_groupe_forme",nom_groupe_forme,OT_PARAMETRES::STRING,"Nom du groupe de forme (Ex: Sphere, Matrice)");
61     params->ajouter("Mu_E","69.0e9",OT_PARAMETRES::DOUBLE,"Moyenne du module d'elasticite");
62     params->ajouter("Sigma_E","0.0",OT_PARAMETRES::DOUBLE,"Ecart type du module d'elasticite");
63     params->ajouter("Mu_nu","0.3",OT_PARAMETRES::DOUBLE,"Moyenne du coefficient de Poisson");
64     params->ajouter("Sigma_nu","0.0",OT_PARAMETRES::DOUBLE,"Ecart type du coefficient de Poisson");
65     }
66    
67     void PARAMETRES::ini_param_carte_taille(OT_PARAMETRES* params)
68     {
69     params->ajouter("Nom_carte","carte",OT_PARAMETRES::STRING,"Nom de la carte de taille");
70 couturad 926 params->ajouter("Ecart_nodal","0.04",OT_PARAMETRES::DOUBLE,"Ecart nodal");
71 couturad 919 params->ajouter("Fechantillonnage","20",OT_PARAMETRES::DOUBLE,"Nombre d'échantillon par entité");
72 couturad 926 params->ajouter("Nb_cellule_direction","50",OT_PARAMETRES::DOUBLE,"Nombre de cellules de la FEM_SOLUTION dans les directions x,y,z");
73 couturad 919 params->ajouter("Nom_fem_solution","solcarte",OT_PARAMETRES::STRING,"Nom de la FEM_SOLUTION");
74     params->ajouter("Nb_couche_min","2",OT_PARAMETRES::DOUBLE,"Nombre de couches entre chaque solide");
75     params->ajouter("Nb_pas","32",OT_PARAMETRES::DOUBLE,"Nombre de pas de balayage");
76     params->ajouter("Facteur_augmentation","25",OT_PARAMETRES::DOUBLE,"Facteur d'augmentation de l'ecart nodal d'une cellule a l'autre");
77     }
78    
79     void PARAMETRES::ini_param_mailleur(OT_PARAMETRES* params)
80     {
81     params->ajouter("Niveau","3",OT_PARAMETRES::DOUBLE,"Niveau du maillage : 1D [1], 2D [2], 3D [3]");
82     params->ajouter("Niveau_opt_2d","5",OT_PARAMETRES::DOUBLE,"Limite supérieure des mailles à optimiser");
83     params->ajouter("Niveau_opt_3d","2",OT_PARAMETRES::DOUBLE,"Limite supérieure des mailles à optimiser");
84     params->ajouter("Priorite_metrique","0.65",OT_PARAMETRES::DOUBLE,"Valeur de la prise en compte de la métrique versus la qualité");
85     params->ajouter("Analyse","0",OT_PARAMETRES::DOUBLE,"Analyse de la qualité du maillage après le maillage : Analyse [1]");
86     }
87    
88     void PARAMETRES::ini_param_mailleur_fem(OT_PARAMETRES* params)
89     {
90     params->ajouter("Degre","2",OT_PARAMETRES::DOUBLE,"Degre du maillage a creer");
91     params->ajouter("Analyse","0",OT_PARAMETRES::DOUBLE,"Analyse de la qualité du maillage après le maillage : Analyse [1]");
92     params->ajouter("Optimisation_num_noeud","0",OT_PARAMETRES::DOUBLE,"Optimisation de la numerotation des noeuds : Optimisation [1]");
93     }
94    
95     void PARAMETRES::ini_param_etude(OT_PARAMETRES* params, int type_etude)
96     {
97     params->ajouter("Nom_etude","etude_1",OT_PARAMETRES::STRING,"Nom de l'etude");
98     params->ajouter("Fichier_param_aster","param_aster.txt",OT_PARAMETRES::STRING,"Nom du fichier de parametres aster");
99     params->ajouter("Type_etude",type_etude,OT_PARAMETRES::DOUBLE,"Type d'etude : Mecanique [0], Thermique [1]");
100     params->ajouter("Type_calcul","0",OT_PARAMETRES::DOUBLE,"Type de calcul : Elastique [0]");
101     params->ajouter("Code_resu","11111111",OT_PARAMETRES::STRING,"Code de resolution");
102 couturad 926 if(type_etude==MSTRUCT_VES::TYPE_ETUDE::MECANIQUE)
103 couturad 919 {
104     params->ajouter("Type_Chargement","0",OT_PARAMETRES::DOUBLE,"Type de chargement : Spherique [0], Deviatorique [1]");
105     params->ajouter("Type_CL","0",OT_PARAMETRES::DOUBLE,"Type de conditions aux limites : CLDH [0], CLCH[1]");
106     params->ajouter("Valeur_CL","0.0001",OT_PARAMETRES::DOUBLE,"Valeur de la condition aux limites");
107     }
108     }
109    
110     void PARAMETRES::ini_param_homogeneisation(OT_PARAMETRES* params)
111     {
112     params->ajouter("Fraction_volumique_CAD",0,OT_PARAMETRES::DOUBLE,"Calculer la fraction volumique CAD d'un groupe de forme [1]");
113     params->ajouter("Fraction_volumique_mg_maillage",0,OT_PARAMETRES::DOUBLE,"Calculer la fraction volumique du mg_maillage d'un groupe de forme [1]");
114     params->ajouter("Fraction_volumique_fem_maillage",0,OT_PARAMETRES::DOUBLE,"Calculer la fraction volumique du fem_maillage d'un groupe de forme [1]");
115     params->ajouter("Tenseur_orientation",0,OT_PARAMETRES::DOUBLE,"Calculer le tenseur d'orientation d'un groupe de forme [1]");
116     params->ajouter("Comparer_champ_theorie",0,OT_PARAMETRES::DOUBLE,"Comparer un champ par rapport a un champ theorique [1]");
117     params->ajouter("Critere_comparaison",0,OT_PARAMETRES::DOUBLE,"Erreur moyenne absolue [0], Erreur moyenne au carre [2]");
118     params->ajouter("Moyenne_volumique_champ",0,OT_PARAMETRES::DOUBLE,"Calculer la moyenne volumique d'un champ [1]");
119     params->ajouter("Num_solution",0,OT_PARAMETRES::DOUBLE,"Numero de la solution");
120     params->ajouter("Nom_champ","Sigma",OT_PARAMETRES::STRING,"Nom du champ");
121 couturad 926 params->ajouter("Nom_groupe_forme","ALL",OT_PARAMETRES::STRING,"Nom du groupe d'inclusion. Si [ALL] prend le ves au complet");
122 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");
123     params->ajouter("Boite3D_analyse_Xmin","0.1",OT_PARAMETRES::DOUBLE,"Xmin boite3D d'analyse");
124     params->ajouter("Boite3D_analyse_Ymin","0.1",OT_PARAMETRES::DOUBLE,"Ymin boite3D d'analyse");
125     params->ajouter("Boite3D_analyse_Zmin","0.1",OT_PARAMETRES::DOUBLE,"Zmin boite3D d'analyse");
126     params->ajouter("Boite3D_analyse_Xmax","0.9",OT_PARAMETRES::DOUBLE,"Xmax boite3D d'analyse");
127     params->ajouter("Boite3D_analyse_Ymax","0.9",OT_PARAMETRES::DOUBLE,"Ymax boite3D d'analyse");
128     params->ajouter("Boite3D_analyse_Zmax","0.9",OT_PARAMETRES::DOUBLE,"Zmax boite3D d'analyse");
129     params->ajouter("Exporter_liste_resultat","0",OT_PARAMETRES::DOUBLE,"Exporter une liste de resultats");
130     params->ajouter("Fichier_liste_resultat","fichier_liste_resultat.txt",OT_PARAMETRES::STRING,"Exporter une liste de resultats");
131     params->ajouter("Val_champ_theorique_XX","0.0",OT_PARAMETRES::DOUBLE,"Valeur d'un champ theorique XX");
132     params->ajouter("Val_champ_theorique_YY","0.0",OT_PARAMETRES::DOUBLE,"Valeur d'un champ theorique YY");
133     params->ajouter("Val_champ_theorique_ZZ","0.0",OT_PARAMETRES::DOUBLE,"Valeur d'un champ theorique ZZ");
134     params->ajouter("Val_champ_theorique_XY","0.0",OT_PARAMETRES::DOUBLE,"Valeur d'un champ theorique XY");
135     params->ajouter("Val_champ_theorique_XZ","0.0",OT_PARAMETRES::DOUBLE,"Valeur d'un champ theorique XZ");
136     params->ajouter("Val_champ_theorique_YZ","0.0",OT_PARAMETRES::DOUBLE,"Valeur d'un champ theorique YZ");
137     }
138    
139 couturad 926 void PARAMETRES::ini_param_analyse(OT_PARAMETRES* params,int type_analyse)
140     {
141     if(type_analyse==MSTRUCT_ANALYSE::TYPE_ANALYSE::CHAMP)
142     {
143     params->ajouter("Identifiant","Champ_SIGMA",OT_PARAMETRES::STRING,"Identifiant de l'analyse");
144     params->ajouter("Type_analyse",0,OT_PARAMETRES::DOUBLE,"Type d'analyse : Champ [0], Orientation [1], CAO [2], MAILLAGE_MG [3], MAILLAGE_FEM [4]");
145     params->ajouter("Num_solution",2,OT_PARAMETRES::DOUBLE,"Numero de la FEM_SOLUTION solution (0,1,2,...)");
146     params->ajouter("Nom_groupe_forme","ALL",OT_PARAMETRES::STRING,"Nom du groupe d'inclusion. Si [ALL] prend le ves au complet");
147     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]");
148     params->ajouter("Boite3D_analyse_Xmin","0.1",OT_PARAMETRES::DOUBLE,"Xmin boite3D d'analyse");
149     params->ajouter("Boite3D_analyse_Ymin","0.1",OT_PARAMETRES::DOUBLE,"Ymin boite3D d'analyse");
150     params->ajouter("Boite3D_analyse_Zmin","0.1",OT_PARAMETRES::DOUBLE,"Zmin boite3D d'analyse");
151     params->ajouter("Boite3D_analyse_Xmax","0.9",OT_PARAMETRES::DOUBLE,"Xmax boite3D d'analyse");
152     params->ajouter("Boite3D_analyse_Ymax","0.9",OT_PARAMETRES::DOUBLE,"Ymax boite3D d'analyse");
153     params->ajouter("Boite3D_analyse_Zmax","0.9",OT_PARAMETRES::DOUBLE,"Zmax boite3D d'analyse");
154     params->ajouter("Largeur_colonne_distribution","0.1",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
155     }
156     else if(type_analyse==MSTRUCT_ANALYSE::TYPE_ANALYSE::ORIENTATION)
157     {
158     params->ajouter("Identifiant","Orientation_Cylindre",OT_PARAMETRES::STRING,"Identifiant de l'analyse");
159     params->ajouter("Type_analyse",1,OT_PARAMETRES::DOUBLE,"Type d'analyse : Champ [0], Orientation [1], CAO [2], MAILLAGE_MG [3], MAILLAGE_FEM [4]");
160     params->ajouter("Nom_groupe_forme","Cylindre",OT_PARAMETRES::STRING,"Nom du groupe d'inclusion.");
161     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]");
162     params->ajouter("Boite3D_analyse_Xmin","0.1",OT_PARAMETRES::DOUBLE,"Xmin boite3D d'analyse");
163     params->ajouter("Boite3D_analyse_Ymin","0.1",OT_PARAMETRES::DOUBLE,"Ymin boite3D d'analyse");
164     params->ajouter("Boite3D_analyse_Zmin","0.1",OT_PARAMETRES::DOUBLE,"Zmin boite3D d'analyse");
165     params->ajouter("Boite3D_analyse_Xmax","0.9",OT_PARAMETRES::DOUBLE,"Xmax boite3D d'analyse");
166     params->ajouter("Boite3D_analyse_Ymax","0.9",OT_PARAMETRES::DOUBLE,"Ymax boite3D d'analyse");
167     params->ajouter("Boite3D_analyse_Zmax","0.9",OT_PARAMETRES::DOUBLE,"Zmax boite3D d'analyse");
168     }
169     else if(type_analyse==MSTRUCT_ANALYSE::TYPE_ANALYSE::CAO)
170     {
171     params->ajouter("Identifiant","Cao",OT_PARAMETRES::STRING,"Identifiant de l'analyse");
172     params->ajouter("Type_analyse",2,OT_PARAMETRES::DOUBLE,"Type d'analyse : Champ [0], Orientation [1], CAO [2], MAILLAGE_MG [3], MAILLAGE_FEM [4]");
173     params->ajouter("Nom_groupe_forme","ALL",OT_PARAMETRES::STRING,"Nom du groupe d'inclusion. Si [NULL] prend le ves au complet");
174     params->ajouter("Largeur_colonne_distribution_nb_volume","1.0",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
175     params->ajouter("Largeur_colonne_distribution_nb_forme","1.0",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
176     params->ajouter("Largeur_colonne_distribution_volume","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
177     params->ajouter("Largeur_colonne_distribution_fraction_volumique","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
178     params->ajouter("Largeur_colonne_distribution_volume_forme","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
179     }
180     else if(type_analyse==MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_MG)
181     {
182     params->ajouter("Identifiant","Maillage_MG",OT_PARAMETRES::STRING,"Identifiant de l'analyse");
183     params->ajouter("Type_analyse",3,OT_PARAMETRES::DOUBLE,"Type d'analyse : Champ [0], Orientation [1], CAO [2], MAILLAGE_MG [3], MAILLAGE_FEM [4]");
184     params->ajouter("Nom_groupe_forme","ALL",OT_PARAMETRES::STRING,"Nom du groupe d'inclusion. Si [ALL] prend le ves au complet");
185     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]");
186     params->ajouter("Boite3D_analyse_Xmin","0.1",OT_PARAMETRES::DOUBLE,"Xmin boite3D d'analyse");
187     params->ajouter("Boite3D_analyse_Ymin","0.1",OT_PARAMETRES::DOUBLE,"Ymin boite3D d'analyse");
188     params->ajouter("Boite3D_analyse_Zmin","0.1",OT_PARAMETRES::DOUBLE,"Zmin boite3D d'analyse");
189     params->ajouter("Boite3D_analyse_Xmax","0.9",OT_PARAMETRES::DOUBLE,"Xmax boite3D d'analyse");
190     params->ajouter("Boite3D_analyse_Ymax","0.9",OT_PARAMETRES::DOUBLE,"Ymax boite3D d'analyse");
191     params->ajouter("Boite3D_analyse_Zmax","0.9",OT_PARAMETRES::DOUBLE,"Zmax boite3D d'analyse");
192     params->ajouter("Largeur_colonne_distribution_nb_element_2D","100",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
193     params->ajouter("Largeur_colonne_distribution_nb_element_3D","100",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
194     params->ajouter("Largeur_colonne_distribution_qualite_2D","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
195     params->ajouter("Largeur_colonne_distribution_qualite_3D","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
196     params->ajouter("Largeur_colonne_distribution_taille_2D","0.0001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
197     params->ajouter("Largeur_colonne_distribution_taille_3D","0.0001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
198     }
199     else if(type_analyse==MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM)
200     {
201     params->ajouter("Identifiant","Maillage_FEM",OT_PARAMETRES::STRING,"Identifiant de l'analyse");
202     params->ajouter("Type_analyse",4,OT_PARAMETRES::DOUBLE,"Type d'analyse : Champ [0], Orientation [1], CAO [2], MAILLAGE_MG [3], MAILLAGE_FEM [4]");
203     params->ajouter("Nom_groupe_forme","ALL",OT_PARAMETRES::STRING,"Nom du groupe d'inclusion. Si [ALL] prend le ves au complet");
204     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]");
205     params->ajouter("Boite3D_analyse_Xmin","0.1",OT_PARAMETRES::DOUBLE,"Xmin boite3D d'analyse");
206     params->ajouter("Boite3D_analyse_Ymin","0.1",OT_PARAMETRES::DOUBLE,"Ymin boite3D d'analyse");
207     params->ajouter("Boite3D_analyse_Zmin","0.1",OT_PARAMETRES::DOUBLE,"Zmin boite3D d'analyse");
208     params->ajouter("Boite3D_analyse_Xmax","0.9",OT_PARAMETRES::DOUBLE,"Xmax boite3D d'analyse");
209     params->ajouter("Boite3D_analyse_Ymax","0.9",OT_PARAMETRES::DOUBLE,"Ymax boite3D d'analyse");
210     params->ajouter("Boite3D_analyse_Zmax","0.9",OT_PARAMETRES::DOUBLE,"Zmax boite3D d'analyse");
211     params->ajouter("Largeur_colonne_distribution_nb_element_2D","100",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
212     params->ajouter("Largeur_colonne_distribution_nb_element_3D","100",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
213     params->ajouter("Largeur_colonne_distribution_jacobien_2D_min","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
214     params->ajouter("Largeur_colonne_distribution_jacobien_2D_max","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
215     params->ajouter("Largeur_colonne_distribution_jacobien_3D_min","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
216     params->ajouter("Largeur_colonne_distribution_jacobien_3D_max","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
217     params->ajouter("Largeur_colonne_distribution_distortion_2D","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
218     params->ajouter("Largeur_colonne_distribution_distortion_3D","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
219     }
220     }
221    
222     void PARAMETRES::ini_param_ver(OT_PARAMETRES* params)
223     {
224     params->ajouter("Identifiant_epsilon","Champ_EPSILON",OT_PARAMETRES::STRING,"Identifiant de l'analyse du champ epsilon");
225     params->ajouter("Identifiant_sigma","Champ_SIGMA",OT_PARAMETRES::STRING,"Identifiant de l'analyse du champ sigma");
226     params->ajouter("Largeur_colonne_distribution_module_Young","1000",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
227     }
228    
229    
230    
231    
232 couturad 919 int PARAMETRES::generer_fichier_parametres(char* nom_dossier_param)
233     {
234     int mkdir_err=0;
235     std::string sys_command = "mkdir "; sys_command.append(nom_dossier_param);
236     mkdir_err = system(sys_command.c_str());
237     if(mkdir_err !=0)
238     {
239     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametres! ***" << std::endl;
240     return FAIL;
241     }
242     sys_command.clear(); sys_command.append("mkdir -p ");sys_command.append(nom_dossier_param); sys_command.append("/geometrie");
243     mkdir_err = system(sys_command.c_str());
244     if(mkdir_err !=0)
245     {
246     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametres/geometrie ! ***" << std::endl;
247     return FAIL;
248     }
249     sys_command.clear(); sys_command.append("mkdir -p ");sys_command.append(nom_dossier_param); sys_command.append("/materiau");
250     mkdir_err = system(sys_command.c_str());
251     if(mkdir_err !=0)
252     {
253     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametre/materiau ! ***" << std::endl;
254     return FAIL;
255     }
256     sys_command.clear(); sys_command.append("mkdir -p ");sys_command.append(nom_dossier_param); sys_command.append("/carte");
257     mkdir_err = system(sys_command.c_str());
258     if(mkdir_err !=0)
259     {
260     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametres/carte ! ***" << std::endl;
261     return FAIL;
262     }
263     sys_command.clear(); sys_command.append("mkdir -p ");sys_command.append(nom_dossier_param); sys_command.append("/maillage");
264     mkdir_err = system(sys_command.c_str());
265     if(mkdir_err !=0)
266     {
267     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametre/maillage ! ***" << std::endl;
268     return FAIL;
269     }
270     sys_command.clear(); sys_command.append("mkdir -p ");sys_command.append(nom_dossier_param); sys_command.append("/fem_maillage");
271     mkdir_err = system(sys_command.c_str());
272     if(mkdir_err !=0)
273     {
274     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametre/fem_maillage ! ***" << std::endl;
275     return FAIL;
276     }
277     sys_command.clear(); sys_command.append("mkdir -p ");sys_command.append(nom_dossier_param); sys_command.append("/etude");
278     mkdir_err = system(sys_command.c_str());
279     if(mkdir_err !=0)
280     {
281     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametre/etude ! ***" << std::endl;
282     return FAIL;
283     }
284 couturad 926 sys_command.clear(); sys_command.append("mkdir -p ");sys_command.append(nom_dossier_param); sys_command.append("/analyse");
285 couturad 919 mkdir_err = system(sys_command.c_str());
286     if(mkdir_err !=0)
287     {
288 couturad 926 std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametre/analyse ! ***" << std::endl;
289 couturad 919 return FAIL;
290     }
291     std::ofstream f;
292     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/geometrie/lstparam_geo.txt");
293     f.open(sys_command.c_str(),ios::out);
294     f << "// Fichier de parametres GEOMETRIE" << std::endl;
295     f << "// [Nombre de fichier de parametres]" << std::endl;
296 couturad 926 f << "NB_FICHIER_PARAM 1" << std::endl;
297 couturad 919 f << "param_geo_cylindre.txt" << std::endl;
298     f.close();
299     OT_PARAMETRES params_geo_1;
300 couturad 926 ini_param_generateur_rsa(&params_geo_1,GENERATEUR_RSA::TYPE_INCLUSION::CYLINDRE,(char*)"Cylindre");
301     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/geometrie/param_geo_cylindre.txt");
302 couturad 919 params_geo_1.enregistrer((char*)sys_command.c_str());
303    
304     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/materiau/lstparam_mat.txt");
305     f.open(sys_command.c_str(),ios::out);
306     f << "// Fichier de parametres MATERIAU" << std::endl;
307     f << "// [Nombre de fichier de parametres]" << std::endl;
308 couturad 926 f << "NB_FICHIER_PARAM 2" << std::endl;
309 couturad 919 f << "param_mat_cylindre.txt" << std::endl;
310     f << "param_mat_matrice.txt" << std::endl;
311     f.close();
312     OT_PARAMETRES params_mat_cylindre;
313     ini_param_materiau(&params_mat_cylindre,(char*)"Cylindre");
314 couturad 926 params_mat_cylindre.change_valeur("Mu_E",75.0e9);
315     params_mat_cylindre.change_valeur("Mu_nu",0.22);
316 couturad 919 sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/materiau/param_mat_cylindre.txt");
317     params_mat_cylindre.enregistrer((char*)sys_command.c_str());
318     OT_PARAMETRES params_mat_matrice;
319     ini_param_materiau(&params_mat_matrice,(char*)"Matrice");
320 couturad 926 params_mat_matrice.change_valeur("Mu_E",3.5e9);
321     params_mat_matrice.change_valeur("Mu_nu",0.33);
322 couturad 919 sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/materiau/param_mat_matrice.txt");
323     params_mat_matrice.enregistrer((char*)sys_command.c_str());
324    
325     OT_PARAMETRES params_carte;
326     ini_param_carte_taille(&params_carte);
327     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/carte/param_carte.txt");
328     params_carte.enregistrer((char*)sys_command.c_str());
329    
330     OT_PARAMETRES params_maill;
331     ini_param_mailleur(&params_maill);
332     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/maillage/param_maill.txt");
333     params_maill.enregistrer((char*)sys_command.c_str());
334    
335     OT_PARAMETRES params_fem_maillage;
336     ini_param_mailleur_fem(&params_fem_maillage);
337     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/fem_maillage/param_fem_maill.txt");
338     params_fem_maillage.enregistrer((char*)sys_command.c_str());
339    
340 couturad 926 OT_PARAMETRES params_etude_CLDH_sph;
341     ini_param_etude(&params_etude_CLDH_sph,MSTRUCT_VES::TYPE_ETUDE::MECANIQUE);
342     params_etude_CLDH_sph.change_valeur("Nom_etude","etude_CLDH_sph");
343     params_etude_CLDH_sph.change_valeur("Type_Chargement",0);
344     params_etude_CLDH_sph.change_valeur("Type_CL",0);
345     params_etude_CLDH_sph.change_valeur("Valeur_CL",0.0001);
346     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/etude/param_etude_CLDH_sph.txt");
347     params_etude_CLDH_sph.enregistrer((char*)sys_command.c_str());
348 couturad 919
349 couturad 926 OT_PARAMETRES params_etude_CLCH_sph;
350     ini_param_etude(&params_etude_CLCH_sph,MSTRUCT_VES::TYPE_ETUDE::MECANIQUE);
351     params_etude_CLCH_sph.change_valeur("Nom_etude","etude_CLCH_sph");
352     params_etude_CLCH_sph.change_valeur("Type_Chargement",0);
353     params_etude_CLCH_sph.change_valeur("Type_CL",1);
354     params_etude_CLCH_sph.change_valeur("Valeur_CL",1000);
355     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/etude/param_etude_CLCH_sph.txt");
356     params_etude_CLCH_sph.enregistrer((char*)sys_command.c_str());
357    
358     OT_PARAMETRES params_etude_CLDH_dev;
359     ini_param_etude(&params_etude_CLDH_dev,MSTRUCT_VES::TYPE_ETUDE::MECANIQUE);
360     params_etude_CLDH_dev.change_valeur("Nom_etude","etude_CLDH_dev");
361     params_etude_CLDH_dev.change_valeur("Type_Chargement",1);
362     params_etude_CLDH_dev.change_valeur("Type_CL",0);
363     params_etude_CLDH_dev.change_valeur("Valeur_CL",0.0001);
364     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/etude/param_etude_CLDH_dev.txt");
365     params_etude_CLDH_dev.enregistrer((char*)sys_command.c_str());
366    
367     OT_PARAMETRES params_etude_CLCH_dev;
368     ini_param_etude(&params_etude_CLCH_dev,MSTRUCT_VES::TYPE_ETUDE::MECANIQUE);
369     params_etude_CLCH_dev.change_valeur("Nom_etude","etude_CLCH_dev");
370     params_etude_CLCH_dev.change_valeur("Type_Chargement",1);
371     params_etude_CLCH_dev.change_valeur("Type_CL",1);
372     params_etude_CLCH_dev.change_valeur("Valeur_CL",1000);
373     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/etude/param_etude_CLCH_dev.txt");
374     params_etude_CLCH_dev.enregistrer((char*)sys_command.c_str());
375    
376     MG_EXPORT exp;
377     OT_PARAMETRES *params_aster=exp.get_param_aster();
378     params_aster->change_valeur("Memoire",3072);
379     params_aster->change_valeur("Temps_max",250000);
380     params_aster->change_valeur("Nb_CPU",8);
381     params_aster->change_valeur("Noeud_ele",2);
382     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/etude/param_aster.txt");
383     params_aster->enregistrer((char*)sys_command.c_str());
384    
385     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/lstparam_analyse.txt");
386 couturad 919 f.open(sys_command.c_str(),ios::out);
387 couturad 926 f << "// Fichier de parametres ANALYSE" << std::endl;
388 couturad 919 f << "// Nombre de fichier de parametres" << std::endl;
389 couturad 926 f << "NB_FICHIER_PARAM 16" << std::endl;
390     f << "params_analyse_champ_sigma.txt" << std::endl;
391     f << "params_analyse_champ_sigma_boite.txt" << std::endl;
392     f << "params_analyse_champ_epsilon.txt" << std::endl;
393     f << "params_analyse_champ_epsilon_boite.txt" << std::endl;
394     f << "params_analyse_orientation.txt" << std::endl;
395     f << "params_analyse_orientation_boite.txt" << std::endl;
396     f << "params_analyse_cao_all.txt" << std::endl;
397     f << "params_analyse_cao_cylindre.txt" << std::endl;
398     f << "params_analyse_cao_matrice.txt" << std::endl;
399     f << "params_analyse_mg_maillage_all.txt" << std::endl;
400     f << "params_analyse_mg_maillage_cylindre.txt" << std::endl;
401     f << "params_analyse_mg_maillage_matrice.txt" << std::endl;
402     f << "params_analyse_fem_maillage_all.txt" << std::endl;
403     f << "params_analyse_fem_maillage_all_boite.txt" << std::endl;
404     f << "params_analyse_fem_maillage_cylindre.txt" << std::endl;
405     f << "params_analyse_fem_maillage_matrice.txt" << std::endl;
406 couturad 919 f.close();
407 couturad 926 OT_PARAMETRES params_analyse_champ_sigma;
408     ini_param_analyse(&params_analyse_champ_sigma,MSTRUCT_ANALYSE::TYPE_ANALYSE::CHAMP);
409     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_champ_sigma.txt");
410     params_analyse_champ_sigma.change_valeur("Identifiant","Champ_SIGMA");
411     params_analyse_champ_sigma.enregistrer((char*)sys_command.c_str());
412     OT_PARAMETRES params_analyse_champ_sigma_boite;
413     ini_param_analyse(&params_analyse_champ_sigma_boite,MSTRUCT_ANALYSE::TYPE_ANALYSE::CHAMP);
414     params_analyse_champ_sigma_boite.change_valeur("Boite_analyse",1);
415     params_analyse_champ_sigma_boite.change_valeur("Identifiant","Champ_SIGMA_boite");
416     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_champ_sigma_boite.txt");
417     params_analyse_champ_sigma_boite.enregistrer((char*)sys_command.c_str());
418 couturad 919
419 couturad 926 OT_PARAMETRES params_analyse_champ_epsilon;
420     ini_param_analyse(&params_analyse_champ_epsilon,MSTRUCT_ANALYSE::TYPE_ANALYSE::CHAMP);
421     params_analyse_champ_epsilon.change_valeur("Identifiant","Champ_EPSILON");
422     params_analyse_champ_epsilon.change_valeur("Num_solution",1);
423     params_analyse_champ_epsilon.change_valeur("Largeur_colonne_distribution",0.00000000001);
424     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_champ_epsilon.txt");
425     params_analyse_champ_epsilon.enregistrer((char*)sys_command.c_str());
426     OT_PARAMETRES params_analyse_champ_epsilon_boite;
427     ini_param_analyse(&params_analyse_champ_epsilon_boite,MSTRUCT_ANALYSE::TYPE_ANALYSE::CHAMP);
428     params_analyse_champ_epsilon_boite.change_valeur("Identifiant","Champ_EPSILON_boite");
429     params_analyse_champ_epsilon_boite.change_valeur("Num_solution",1);
430     params_analyse_champ_epsilon_boite.change_valeur("Boite_analyse",1);
431     params_analyse_champ_epsilon_boite.change_valeur("Largeur_colonne_distribution",0.00000000001);
432     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_champ_epsilon_boite.txt");
433     params_analyse_champ_epsilon_boite.enregistrer((char*)sys_command.c_str());
434    
435     OT_PARAMETRES params_analyse_orientation;
436     ini_param_analyse(&params_analyse_orientation,MSTRUCT_ANALYSE::TYPE_ANALYSE::ORIENTATION);
437     params_analyse_orientation.change_valeur("Identifiant","Orientation_Cylindre");
438     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_orientation.txt");
439     params_analyse_orientation.enregistrer((char*)sys_command.c_str());
440     OT_PARAMETRES params_analyse_orientation_boite;
441     ini_param_analyse(&params_analyse_orientation_boite,MSTRUCT_ANALYSE::TYPE_ANALYSE::ORIENTATION);
442     params_analyse_orientation_boite.change_valeur("Identifiant","Orientation_Cylindre_boite");
443     params_analyse_orientation_boite.change_valeur("Boite_analyse",1);
444     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_orientation_boite.txt");
445     params_analyse_orientation_boite.enregistrer((char*)sys_command.c_str());
446    
447    
448     OT_PARAMETRES params_analyse_cao_all;
449     ini_param_analyse(&params_analyse_cao_all,MSTRUCT_ANALYSE::TYPE_ANALYSE::CAO);
450     params_analyse_cao_all.change_valeur("Identifiant","Cao_ALL");
451     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_cao_all.txt");
452     params_analyse_cao_all.enregistrer((char*)sys_command.c_str());
453     OT_PARAMETRES params_analyse_cao_cylindre;
454     ini_param_analyse(&params_analyse_cao_cylindre,MSTRUCT_ANALYSE::TYPE_ANALYSE::CAO);
455     params_analyse_cao_cylindre.change_valeur("Identifiant","Cao_Cylindre");
456     params_analyse_cao_cylindre.change_valeur("Nom_groupe_forme","Cylindre");
457     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_cao_cylindre.txt");
458     params_analyse_cao_cylindre.enregistrer((char*)sys_command.c_str());
459     OT_PARAMETRES params_analyse_cao_matrice;
460     ini_param_analyse(&params_analyse_cao_matrice,MSTRUCT_ANALYSE::TYPE_ANALYSE::CAO);
461     params_analyse_cao_matrice.change_valeur("Identifiant","Cao_Matrice");
462     params_analyse_cao_matrice.change_valeur("Nom_groupe_forme","Matrice");
463     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_cao_matrice.txt");
464     params_analyse_cao_matrice.enregistrer((char*)sys_command.c_str());
465    
466     OT_PARAMETRES params_analyse_mg_maillage_all;
467     ini_param_analyse(&params_analyse_mg_maillage_all,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_MG);
468     params_analyse_mg_maillage_all.change_valeur("Identifiant","MG_maillage_ALL");
469     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_mg_maillage_all.txt");
470     params_analyse_mg_maillage_all.enregistrer((char*)sys_command.c_str());
471     OT_PARAMETRES params_analyse_mg_maillage_cylindre;
472     ini_param_analyse(&params_analyse_mg_maillage_cylindre,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_MG);
473     params_analyse_mg_maillage_cylindre.change_valeur("Identifiant","MG_maillage_Cylindre");
474     params_analyse_mg_maillage_cylindre.change_valeur("Nom_groupe_forme","Cylindre");
475     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_mg_maillage_cylindre.txt");
476     params_analyse_mg_maillage_cylindre.enregistrer((char*)sys_command.c_str());
477     OT_PARAMETRES params_analyse_mg_maillage_matrice;
478     ini_param_analyse(&params_analyse_mg_maillage_matrice,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_MG);
479     params_analyse_mg_maillage_matrice.change_valeur("Identifiant","MG_maillage_Matrice");
480     params_analyse_mg_maillage_matrice.change_valeur("Nom_groupe_forme","Matrice");
481     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_mg_maillage_matrice.txt");
482     params_analyse_mg_maillage_matrice.enregistrer((char*)sys_command.c_str());
483    
484     OT_PARAMETRES params_analyse_fem_maillage_all;
485     ini_param_analyse(&params_analyse_fem_maillage_all,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM);
486     params_analyse_fem_maillage_all.change_valeur("Identifiant","FEM_maillage_ALL");
487     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_fem_maillage_all.txt");
488     params_analyse_fem_maillage_all.enregistrer((char*)sys_command.c_str());
489     OT_PARAMETRES params_analyse_fem_maillage_all_boite;
490     ini_param_analyse(&params_analyse_fem_maillage_all_boite,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM);
491     params_analyse_fem_maillage_all_boite.change_valeur("Identifiant","FEM_maillage_ALL_boite");
492     params_analyse_fem_maillage_all_boite.change_valeur("Boite_analyse",1);
493     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_fem_maillage_all_boite.txt");
494     params_analyse_fem_maillage_all_boite.enregistrer((char*)sys_command.c_str());
495     OT_PARAMETRES params_analyse_fem_maillage_cylindre;
496     ini_param_analyse(&params_analyse_fem_maillage_cylindre,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM);
497     params_analyse_fem_maillage_cylindre.change_valeur("Identifiant","FEM_maillage_Cylindre");
498     params_analyse_fem_maillage_cylindre.change_valeur("Nom_groupe_forme","Cylindre");
499     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_fem_maillage_cylindre.txt");
500     params_analyse_fem_maillage_cylindre.enregistrer((char*)sys_command.c_str());
501     OT_PARAMETRES params_analyse_fem_maillage_matrice;
502     ini_param_analyse(&params_analyse_fem_maillage_matrice,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM);
503     params_analyse_fem_maillage_matrice.change_valeur("Identifiant","FEM_maillage_Matrice");
504     params_analyse_fem_maillage_matrice.change_valeur("Nom_groupe_forme","Matrice");
505     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_fem_maillage_matrice.txt");
506     params_analyse_fem_maillage_matrice.enregistrer((char*)sys_command.c_str());
507    
508     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/lstparam_ver.txt");
509     f.open(sys_command.c_str(),ios::out);
510     f << "// Fichier de parametres VER" << std::endl;
511     f << "// Nombre de fichier de parametres" << std::endl;
512     f << "NB_FICHIER_PARAM 2" << std::endl;
513     f << "params_ver.txt" << std::endl;
514     f << "params_ver_boite.txt" << std::endl;
515     f.close();
516    
517     OT_PARAMETRES params_ver;
518     ini_param_ver(&params_ver);
519     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_ver.txt");
520     params_ver.enregistrer((char*)sys_command.c_str());
521    
522     OT_PARAMETRES params_ver_boite;
523     ini_param_ver(&params_ver_boite);
524     params_ver_boite.change_valeur("Identifiant_epsilon","Champ_EPSILON_boite");
525     params_ver_boite.change_valeur("Identifiant_sigma","Champ_SIGMA_boite");
526     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_ver_boite.txt");
527     params_ver_boite.enregistrer((char*)sys_command.c_str());
528 couturad 919 return OK;
529     }
530    
531     int PARAMETRES::importer_fichier_parametres(char* fichier, OT_PARAMETRES* params)
532     {
533     params->lire(fichier);
534     }
535    
536     int PARAMETRES::importer_fichier_liste_parametres(char* fichier, std::vector< OT_PARAMETRES* >& vector_params)
537     {
538     std::string str_fichier = fichier;
539     std::size_t found = str_fichier.rfind((char*)"/");
540     std::string chemin;
541     if(found!=-1)
542     {
543     chemin = str_fichier.substr(0,found+1);
544     }
545     else chemin = "";
546     FILE* in=fopen(fichier,"rt");
547     char ligne[4000];
548     while(!feof(in))
549     {
550     fgets(ligne,4000,in);
551     char *aide = strstr(ligne,"//");
552     if(aide==NULL)
553     {
554     char message[500];
555     int nb_fichier_param=0;
556     sscanf(ligne,"%s %i ",message,&nb_fichier_param);
557     if(strcmp(message,"NB_FICHIER_PARAM")==0)
558     {
559     for(int i=0;i<nb_fichier_param;i++)
560     {
561     fgets(ligne,4000,in);
562     if(feof(in)) std::cerr << "*** PARAMETRES::PARAMETRES::importer_fichier_liste_parametres : Erreur de lecture ! ***" << std::endl;
563     char sous_fichier[500];
564     sscanf(ligne,"%s",sous_fichier);
565     OT_PARAMETRES *param = new OT_PARAMETRES;
566     std::string str_sous_fichier = chemin;
567     str_sous_fichier.append(sous_fichier);
568     param->lire((char*)str_sous_fichier.c_str());
569     vector_params.push_back(param);
570     }
571     }
572     }
573     }
574     }