ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/microstructure/src/mstruct_parametres.cpp
Revision: 927
Committed: Mon May 7 17:16:53 2018 UTC (7 years ago) by couturad
File size: 40069 byte(s)
Log Message:
Mise a jour des fonctionnalites 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 couturad 927 params->ajouter("Largeur_colonne_distribution_module_Kapp","100000",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
227     params->ajouter("Largeur_colonne_distribution_module_Gapp","100000",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
228     params->ajouter("Largeur_colonne_distribution_module_Eapp","100000",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
229     params->ajouter("Largeur_colonne_distribution_module_Nuapp","0.001",OT_PARAMETRES::DOUBLE,"Largeur d'une colonne pour graph de distribution");
230 couturad 926 }
231    
232    
233    
234    
235 couturad 919 int PARAMETRES::generer_fichier_parametres(char* nom_dossier_param)
236     {
237     int mkdir_err=0;
238     std::string sys_command = "mkdir "; sys_command.append(nom_dossier_param);
239     mkdir_err = system(sys_command.c_str());
240     if(mkdir_err !=0)
241     {
242     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametres! ***" << std::endl;
243     return FAIL;
244     }
245     sys_command.clear(); sys_command.append("mkdir -p ");sys_command.append(nom_dossier_param); sys_command.append("/geometrie");
246     mkdir_err = system(sys_command.c_str());
247     if(mkdir_err !=0)
248     {
249     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametres/geometrie ! ***" << std::endl;
250     return FAIL;
251     }
252     sys_command.clear(); sys_command.append("mkdir -p ");sys_command.append(nom_dossier_param); sys_command.append("/materiau");
253     mkdir_err = system(sys_command.c_str());
254     if(mkdir_err !=0)
255     {
256     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametre/materiau ! ***" << std::endl;
257     return FAIL;
258     }
259     sys_command.clear(); sys_command.append("mkdir -p ");sys_command.append(nom_dossier_param); sys_command.append("/carte");
260     mkdir_err = system(sys_command.c_str());
261     if(mkdir_err !=0)
262     {
263     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametres/carte ! ***" << std::endl;
264     return FAIL;
265     }
266     sys_command.clear(); sys_command.append("mkdir -p ");sys_command.append(nom_dossier_param); sys_command.append("/maillage");
267     mkdir_err = system(sys_command.c_str());
268     if(mkdir_err !=0)
269     {
270     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametre/maillage ! ***" << std::endl;
271     return FAIL;
272     }
273     sys_command.clear(); sys_command.append("mkdir -p ");sys_command.append(nom_dossier_param); sys_command.append("/fem_maillage");
274     mkdir_err = system(sys_command.c_str());
275     if(mkdir_err !=0)
276     {
277     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametre/fem_maillage ! ***" << std::endl;
278     return FAIL;
279     }
280     sys_command.clear(); sys_command.append("mkdir -p ");sys_command.append(nom_dossier_param); sys_command.append("/etude");
281     mkdir_err = system(sys_command.c_str());
282     if(mkdir_err !=0)
283     {
284     std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametre/etude ! ***" << std::endl;
285     return FAIL;
286     }
287 couturad 926 sys_command.clear(); sys_command.append("mkdir -p ");sys_command.append(nom_dossier_param); sys_command.append("/analyse");
288 couturad 919 mkdir_err = system(sys_command.c_str());
289     if(mkdir_err !=0)
290     {
291 couturad 926 std::cerr << "*** PARAMETRES::generer_fichier_parametres -> Erreur lors de la creation des dossiers parametre/analyse ! ***" << std::endl;
292 couturad 919 return FAIL;
293     }
294     std::ofstream f;
295     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/geometrie/lstparam_geo.txt");
296     f.open(sys_command.c_str(),ios::out);
297     f << "// Fichier de parametres GEOMETRIE" << std::endl;
298     f << "// [Nombre de fichier de parametres]" << std::endl;
299 couturad 926 f << "NB_FICHIER_PARAM 1" << std::endl;
300 couturad 919 f << "param_geo_cylindre.txt" << std::endl;
301     f.close();
302     OT_PARAMETRES params_geo_1;
303 couturad 926 ini_param_generateur_rsa(&params_geo_1,GENERATEUR_RSA::TYPE_INCLUSION::CYLINDRE,(char*)"Cylindre");
304     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/geometrie/param_geo_cylindre.txt");
305 couturad 919 params_geo_1.enregistrer((char*)sys_command.c_str());
306    
307     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/materiau/lstparam_mat.txt");
308     f.open(sys_command.c_str(),ios::out);
309     f << "// Fichier de parametres MATERIAU" << std::endl;
310     f << "// [Nombre de fichier de parametres]" << std::endl;
311 couturad 926 f << "NB_FICHIER_PARAM 2" << std::endl;
312 couturad 919 f << "param_mat_cylindre.txt" << std::endl;
313     f << "param_mat_matrice.txt" << std::endl;
314     f.close();
315     OT_PARAMETRES params_mat_cylindre;
316     ini_param_materiau(&params_mat_cylindre,(char*)"Cylindre");
317 couturad 926 params_mat_cylindre.change_valeur("Mu_E",75.0e9);
318     params_mat_cylindre.change_valeur("Mu_nu",0.22);
319 couturad 919 sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/materiau/param_mat_cylindre.txt");
320     params_mat_cylindre.enregistrer((char*)sys_command.c_str());
321     OT_PARAMETRES params_mat_matrice;
322     ini_param_materiau(&params_mat_matrice,(char*)"Matrice");
323 couturad 926 params_mat_matrice.change_valeur("Mu_E",3.5e9);
324     params_mat_matrice.change_valeur("Mu_nu",0.33);
325 couturad 919 sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/materiau/param_mat_matrice.txt");
326     params_mat_matrice.enregistrer((char*)sys_command.c_str());
327    
328     OT_PARAMETRES params_carte;
329     ini_param_carte_taille(&params_carte);
330     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/carte/param_carte.txt");
331     params_carte.enregistrer((char*)sys_command.c_str());
332    
333     OT_PARAMETRES params_maill;
334     ini_param_mailleur(&params_maill);
335     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/maillage/param_maill.txt");
336     params_maill.enregistrer((char*)sys_command.c_str());
337    
338     OT_PARAMETRES params_fem_maillage;
339     ini_param_mailleur_fem(&params_fem_maillage);
340     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/fem_maillage/param_fem_maill.txt");
341     params_fem_maillage.enregistrer((char*)sys_command.c_str());
342    
343 couturad 926 OT_PARAMETRES params_etude_CLDH_sph;
344     ini_param_etude(&params_etude_CLDH_sph,MSTRUCT_VES::TYPE_ETUDE::MECANIQUE);
345     params_etude_CLDH_sph.change_valeur("Nom_etude","etude_CLDH_sph");
346     params_etude_CLDH_sph.change_valeur("Type_Chargement",0);
347     params_etude_CLDH_sph.change_valeur("Type_CL",0);
348     params_etude_CLDH_sph.change_valeur("Valeur_CL",0.0001);
349     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/etude/param_etude_CLDH_sph.txt");
350     params_etude_CLDH_sph.enregistrer((char*)sys_command.c_str());
351 couturad 919
352 couturad 926 OT_PARAMETRES params_etude_CLCH_sph;
353     ini_param_etude(&params_etude_CLCH_sph,MSTRUCT_VES::TYPE_ETUDE::MECANIQUE);
354     params_etude_CLCH_sph.change_valeur("Nom_etude","etude_CLCH_sph");
355     params_etude_CLCH_sph.change_valeur("Type_Chargement",0);
356     params_etude_CLCH_sph.change_valeur("Type_CL",1);
357     params_etude_CLCH_sph.change_valeur("Valeur_CL",1000);
358     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/etude/param_etude_CLCH_sph.txt");
359     params_etude_CLCH_sph.enregistrer((char*)sys_command.c_str());
360    
361     OT_PARAMETRES params_etude_CLDH_dev;
362     ini_param_etude(&params_etude_CLDH_dev,MSTRUCT_VES::TYPE_ETUDE::MECANIQUE);
363     params_etude_CLDH_dev.change_valeur("Nom_etude","etude_CLDH_dev");
364     params_etude_CLDH_dev.change_valeur("Type_Chargement",1);
365     params_etude_CLDH_dev.change_valeur("Type_CL",0);
366     params_etude_CLDH_dev.change_valeur("Valeur_CL",0.0001);
367     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/etude/param_etude_CLDH_dev.txt");
368     params_etude_CLDH_dev.enregistrer((char*)sys_command.c_str());
369    
370     OT_PARAMETRES params_etude_CLCH_dev;
371     ini_param_etude(&params_etude_CLCH_dev,MSTRUCT_VES::TYPE_ETUDE::MECANIQUE);
372     params_etude_CLCH_dev.change_valeur("Nom_etude","etude_CLCH_dev");
373     params_etude_CLCH_dev.change_valeur("Type_Chargement",1);
374     params_etude_CLCH_dev.change_valeur("Type_CL",1);
375     params_etude_CLCH_dev.change_valeur("Valeur_CL",1000);
376     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/etude/param_etude_CLCH_dev.txt");
377     params_etude_CLCH_dev.enregistrer((char*)sys_command.c_str());
378    
379     MG_EXPORT exp;
380     OT_PARAMETRES *params_aster=exp.get_param_aster();
381     params_aster->change_valeur("Memoire",3072);
382     params_aster->change_valeur("Temps_max",250000);
383     params_aster->change_valeur("Nb_CPU",8);
384     params_aster->change_valeur("Noeud_ele",2);
385     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/etude/param_aster.txt");
386     params_aster->enregistrer((char*)sys_command.c_str());
387    
388     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/lstparam_analyse.txt");
389 couturad 919 f.open(sys_command.c_str(),ios::out);
390 couturad 926 f << "// Fichier de parametres ANALYSE" << std::endl;
391 couturad 919 f << "// Nombre de fichier de parametres" << std::endl;
392 couturad 926 f << "NB_FICHIER_PARAM 16" << std::endl;
393     f << "params_analyse_champ_sigma.txt" << std::endl;
394     f << "params_analyse_champ_sigma_boite.txt" << std::endl;
395     f << "params_analyse_champ_epsilon.txt" << std::endl;
396     f << "params_analyse_champ_epsilon_boite.txt" << std::endl;
397     f << "params_analyse_orientation.txt" << std::endl;
398     f << "params_analyse_orientation_boite.txt" << std::endl;
399     f << "params_analyse_cao_all.txt" << std::endl;
400     f << "params_analyse_cao_cylindre.txt" << std::endl;
401     f << "params_analyse_cao_matrice.txt" << std::endl;
402     f << "params_analyse_mg_maillage_all.txt" << std::endl;
403     f << "params_analyse_mg_maillage_cylindre.txt" << std::endl;
404     f << "params_analyse_mg_maillage_matrice.txt" << std::endl;
405     f << "params_analyse_fem_maillage_all.txt" << std::endl;
406     f << "params_analyse_fem_maillage_all_boite.txt" << std::endl;
407     f << "params_analyse_fem_maillage_cylindre.txt" << std::endl;
408     f << "params_analyse_fem_maillage_matrice.txt" << std::endl;
409 couturad 919 f.close();
410 couturad 926 OT_PARAMETRES params_analyse_champ_sigma;
411     ini_param_analyse(&params_analyse_champ_sigma,MSTRUCT_ANALYSE::TYPE_ANALYSE::CHAMP);
412     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_champ_sigma.txt");
413     params_analyse_champ_sigma.change_valeur("Identifiant","Champ_SIGMA");
414     params_analyse_champ_sigma.enregistrer((char*)sys_command.c_str());
415     OT_PARAMETRES params_analyse_champ_sigma_boite;
416     ini_param_analyse(&params_analyse_champ_sigma_boite,MSTRUCT_ANALYSE::TYPE_ANALYSE::CHAMP);
417     params_analyse_champ_sigma_boite.change_valeur("Boite_analyse",1);
418     params_analyse_champ_sigma_boite.change_valeur("Identifiant","Champ_SIGMA_boite");
419     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_champ_sigma_boite.txt");
420     params_analyse_champ_sigma_boite.enregistrer((char*)sys_command.c_str());
421 couturad 919
422 couturad 926 OT_PARAMETRES params_analyse_champ_epsilon;
423     ini_param_analyse(&params_analyse_champ_epsilon,MSTRUCT_ANALYSE::TYPE_ANALYSE::CHAMP);
424     params_analyse_champ_epsilon.change_valeur("Identifiant","Champ_EPSILON");
425     params_analyse_champ_epsilon.change_valeur("Num_solution",1);
426     params_analyse_champ_epsilon.change_valeur("Largeur_colonne_distribution",0.00000000001);
427     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_champ_epsilon.txt");
428     params_analyse_champ_epsilon.enregistrer((char*)sys_command.c_str());
429     OT_PARAMETRES params_analyse_champ_epsilon_boite;
430     ini_param_analyse(&params_analyse_champ_epsilon_boite,MSTRUCT_ANALYSE::TYPE_ANALYSE::CHAMP);
431     params_analyse_champ_epsilon_boite.change_valeur("Identifiant","Champ_EPSILON_boite");
432     params_analyse_champ_epsilon_boite.change_valeur("Num_solution",1);
433     params_analyse_champ_epsilon_boite.change_valeur("Boite_analyse",1);
434     params_analyse_champ_epsilon_boite.change_valeur("Largeur_colonne_distribution",0.00000000001);
435     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_champ_epsilon_boite.txt");
436     params_analyse_champ_epsilon_boite.enregistrer((char*)sys_command.c_str());
437    
438     OT_PARAMETRES params_analyse_orientation;
439     ini_param_analyse(&params_analyse_orientation,MSTRUCT_ANALYSE::TYPE_ANALYSE::ORIENTATION);
440     params_analyse_orientation.change_valeur("Identifiant","Orientation_Cylindre");
441     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_orientation.txt");
442     params_analyse_orientation.enregistrer((char*)sys_command.c_str());
443     OT_PARAMETRES params_analyse_orientation_boite;
444     ini_param_analyse(&params_analyse_orientation_boite,MSTRUCT_ANALYSE::TYPE_ANALYSE::ORIENTATION);
445     params_analyse_orientation_boite.change_valeur("Identifiant","Orientation_Cylindre_boite");
446     params_analyse_orientation_boite.change_valeur("Boite_analyse",1);
447     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_orientation_boite.txt");
448     params_analyse_orientation_boite.enregistrer((char*)sys_command.c_str());
449    
450    
451     OT_PARAMETRES params_analyse_cao_all;
452     ini_param_analyse(&params_analyse_cao_all,MSTRUCT_ANALYSE::TYPE_ANALYSE::CAO);
453     params_analyse_cao_all.change_valeur("Identifiant","Cao_ALL");
454     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_cao_all.txt");
455     params_analyse_cao_all.enregistrer((char*)sys_command.c_str());
456     OT_PARAMETRES params_analyse_cao_cylindre;
457     ini_param_analyse(&params_analyse_cao_cylindre,MSTRUCT_ANALYSE::TYPE_ANALYSE::CAO);
458     params_analyse_cao_cylindre.change_valeur("Identifiant","Cao_Cylindre");
459     params_analyse_cao_cylindre.change_valeur("Nom_groupe_forme","Cylindre");
460     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_cao_cylindre.txt");
461     params_analyse_cao_cylindre.enregistrer((char*)sys_command.c_str());
462     OT_PARAMETRES params_analyse_cao_matrice;
463     ini_param_analyse(&params_analyse_cao_matrice,MSTRUCT_ANALYSE::TYPE_ANALYSE::CAO);
464     params_analyse_cao_matrice.change_valeur("Identifiant","Cao_Matrice");
465     params_analyse_cao_matrice.change_valeur("Nom_groupe_forme","Matrice");
466     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_cao_matrice.txt");
467     params_analyse_cao_matrice.enregistrer((char*)sys_command.c_str());
468    
469     OT_PARAMETRES params_analyse_mg_maillage_all;
470     ini_param_analyse(&params_analyse_mg_maillage_all,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_MG);
471     params_analyse_mg_maillage_all.change_valeur("Identifiant","MG_maillage_ALL");
472     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_mg_maillage_all.txt");
473     params_analyse_mg_maillage_all.enregistrer((char*)sys_command.c_str());
474     OT_PARAMETRES params_analyse_mg_maillage_cylindre;
475     ini_param_analyse(&params_analyse_mg_maillage_cylindre,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_MG);
476     params_analyse_mg_maillage_cylindre.change_valeur("Identifiant","MG_maillage_Cylindre");
477     params_analyse_mg_maillage_cylindre.change_valeur("Nom_groupe_forme","Cylindre");
478     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_mg_maillage_cylindre.txt");
479     params_analyse_mg_maillage_cylindre.enregistrer((char*)sys_command.c_str());
480     OT_PARAMETRES params_analyse_mg_maillage_matrice;
481     ini_param_analyse(&params_analyse_mg_maillage_matrice,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_MG);
482     params_analyse_mg_maillage_matrice.change_valeur("Identifiant","MG_maillage_Matrice");
483     params_analyse_mg_maillage_matrice.change_valeur("Nom_groupe_forme","Matrice");
484     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_mg_maillage_matrice.txt");
485     params_analyse_mg_maillage_matrice.enregistrer((char*)sys_command.c_str());
486    
487     OT_PARAMETRES params_analyse_fem_maillage_all;
488     ini_param_analyse(&params_analyse_fem_maillage_all,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM);
489     params_analyse_fem_maillage_all.change_valeur("Identifiant","FEM_maillage_ALL");
490     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_fem_maillage_all.txt");
491     params_analyse_fem_maillage_all.enregistrer((char*)sys_command.c_str());
492     OT_PARAMETRES params_analyse_fem_maillage_all_boite;
493     ini_param_analyse(&params_analyse_fem_maillage_all_boite,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM);
494     params_analyse_fem_maillage_all_boite.change_valeur("Identifiant","FEM_maillage_ALL_boite");
495     params_analyse_fem_maillage_all_boite.change_valeur("Boite_analyse",1);
496     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_fem_maillage_all_boite.txt");
497     params_analyse_fem_maillage_all_boite.enregistrer((char*)sys_command.c_str());
498     OT_PARAMETRES params_analyse_fem_maillage_cylindre;
499     ini_param_analyse(&params_analyse_fem_maillage_cylindre,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM);
500     params_analyse_fem_maillage_cylindre.change_valeur("Identifiant","FEM_maillage_Cylindre");
501     params_analyse_fem_maillage_cylindre.change_valeur("Nom_groupe_forme","Cylindre");
502     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_fem_maillage_cylindre.txt");
503     params_analyse_fem_maillage_cylindre.enregistrer((char*)sys_command.c_str());
504     OT_PARAMETRES params_analyse_fem_maillage_matrice;
505     ini_param_analyse(&params_analyse_fem_maillage_matrice,MSTRUCT_ANALYSE::TYPE_ANALYSE::MAILLAGE_FEM);
506     params_analyse_fem_maillage_matrice.change_valeur("Identifiant","FEM_maillage_Matrice");
507     params_analyse_fem_maillage_matrice.change_valeur("Nom_groupe_forme","Matrice");
508     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_analyse_fem_maillage_matrice.txt");
509     params_analyse_fem_maillage_matrice.enregistrer((char*)sys_command.c_str());
510    
511     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/lstparam_ver.txt");
512     f.open(sys_command.c_str(),ios::out);
513     f << "// Fichier de parametres VER" << std::endl;
514     f << "// Nombre de fichier de parametres" << std::endl;
515     f << "NB_FICHIER_PARAM 2" << std::endl;
516     f << "params_ver.txt" << std::endl;
517     f << "params_ver_boite.txt" << std::endl;
518     f.close();
519    
520     OT_PARAMETRES params_ver;
521     ini_param_ver(&params_ver);
522     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_ver.txt");
523     params_ver.enregistrer((char*)sys_command.c_str());
524    
525     OT_PARAMETRES params_ver_boite;
526     ini_param_ver(&params_ver_boite);
527     params_ver_boite.change_valeur("Identifiant_epsilon","Champ_EPSILON_boite");
528     params_ver_boite.change_valeur("Identifiant_sigma","Champ_SIGMA_boite");
529     sys_command.clear(); sys_command.append(nom_dossier_param); sys_command.append("/analyse/params_ver_boite.txt");
530     params_ver_boite.enregistrer((char*)sys_command.c_str());
531 couturad 919 return OK;
532     }
533    
534     int PARAMETRES::importer_fichier_parametres(char* fichier, OT_PARAMETRES* params)
535     {
536     params->lire(fichier);
537     }
538    
539     int PARAMETRES::importer_fichier_liste_parametres(char* fichier, std::vector< OT_PARAMETRES* >& vector_params)
540     {
541     std::string str_fichier = fichier;
542     std::size_t found = str_fichier.rfind((char*)"/");
543     std::string chemin;
544     if(found!=-1)
545     {
546     chemin = str_fichier.substr(0,found+1);
547     }
548     else chemin = "";
549     FILE* in=fopen(fichier,"rt");
550     char ligne[4000];
551     while(!feof(in))
552     {
553     fgets(ligne,4000,in);
554     char *aide = strstr(ligne,"//");
555     if(aide==NULL)
556     {
557     char message[500];
558     int nb_fichier_param=0;
559     sscanf(ligne,"%s %i ",message,&nb_fichier_param);
560     if(strcmp(message,"NB_FICHIER_PARAM")==0)
561     {
562     for(int i=0;i<nb_fichier_param;i++)
563     {
564     fgets(ligne,4000,in);
565     if(feof(in)) std::cerr << "*** PARAMETRES::PARAMETRES::importer_fichier_liste_parametres : Erreur de lecture ! ***" << std::endl;
566     char sous_fichier[500];
567     sscanf(ligne,"%s",sous_fichier);
568     OT_PARAMETRES *param = new OT_PARAMETRES;
569     std::string str_sous_fichier = chemin;
570     str_sous_fichier.append(sous_fichier);
571     param->lire((char*)str_sous_fichier.c_str());
572     vector_params.push_back(param);
573     }
574     }
575     }
576     }
577     }