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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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(¶ms_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 |
|
|
} |