MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
opt_noeud.cpp
Aller à la documentation de ce fichier.
1 //####//------------------------------------------------------------
2 //####//------------------------------------------------------------
3 //####// MAGiC
4 //####// Jean Christophe Cuilliere et Vincent FRANCOIS
5 //####// Departement de Genie Mecanique - UQTR
6 //####//------------------------------------------------------------
7 //####// MAGIC est un projet de recherche de l equipe ERICCA
8 //####// du departement de genie mecanique de l Universite du Quebec a Trois Rivieres
9 //####// http://www.uqtr.ca/ericca
10 //####// http://www.uqtr.ca/
11 //####//------------------------------------------------------------
12 //####//------------------------------------------------------------
13 //####//
14 //####// opt_noeud.cpp
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:57 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #include "gestionversion.h"
23 #include "fem_noeud.h"
24 #include "mg_maillage.h"
25 #include "opt_noeud.h"
26 
27 
28 OPT_NOEUD::OPT_NOEUD(FEM_NOEUD* noeud):fem_noeud(noeud)
29 {
30  xyz0[0]=fem_noeud->get_x();
31  xyz0[1]=fem_noeud->get_y();
32  xyz0[2]=fem_noeud->get_z();
33 
34  normale[0]=0.; //Enlever
35  normale[1]=0.;
36  normale[2]=0.;
37 
38  normale_initiale[0]=0.; //Enlever
39  normale_initiale[1]=0.;
40  normale_initiale[2]=0.;
41 }
42 
43 OPT_NOEUD::OPT_NOEUD(OPT_NOEUD& mdd):fem_noeud(mdd.fem_noeud)
44 {
45  xyz0[0]=mdd.get_x_initial();
46  xyz0[1]=mdd.get_y_initial();
47  xyz0[2]=mdd.get_z_initial();
48 
49  normale[0]=mdd.normale[0];
50  normale[1]=mdd.normale[1];
51  normale[2]=mdd.normale[2];
52 
56 }
57 
59 {
60 
61 }
62 
64 {
65  return fem_noeud;
66 }
67 
69 {
70  return num;
71 }
72 
73 void OPT_NOEUD::change_num(int val)
74 {
75  num=val;
76 }
77 
79 {
80  return mvt_normal;
81 }
83 {
84  mvt_normal=mvt;
85 }
86 
87 /*int OPT_NOEUD::get_contrainte(void)
88 {
89  return contrainte;
90 }
91 
92 void OPT_NOEUD::change_contrainte(int cont)
93 {
94  contrainte=cont;
95 }*/
96 
98 {
99  return arret_gradient;
100 }
101 
103 {
104  arret_gradient=grad;
105 }
106 
107 /*int OPT_NOEUD::get_fixe_au_depart(void)
108 {
109  return fixe_au_depart;
110 }
111 
112 void OPT_NOEUD::change_fixe_au_depart(int fixe)
113 {
114  fixe_au_depart=fixe;
115 }*/
116 
118 {
119  return mobile_au_depart;
120 }
121 
123 {
124  mobile_au_depart=mob;
125 }
126 
128 {
129  return mobile;
130 }
131 
133 {
134  mobile=mob;
135 }
136 
138 {
139  return a_replacer;
140 }
141 
143 {
144  a_replacer=replacer;
145 }
146 
147 /*int OPT_NOEUD::get_a_ete_replace(void)
148 {
149  return a_ete_replace;
150 }
151 
152 void OPT_NOEUD::change_a_ete_replace(int replace)
153 {
154  a_ete_replace=replace;
155 }*/
156 
158 {
159  return num_replacement;
160 }
161 
163 {
165 }
166 
168 {
169  return terme_gradient_f;
170 }
171 
173 {
174  terme_gradient_f=valeur;
175 }
176 
178 {
180 }
181 
183 {
184  sol_deplacement_virtuel=deplacement;
185 }
186 
188 {
189  return sens_depl_virtuel;
190 }
191 
193 {
194  sens_depl_virtuel=signe;
195 }
196 
198 {
199  return depl_avant_algo_grad;
200 }
201 
203 {
205 }
207 {
208  return von_mises;
209 }
210 
212 {
213  von_mises=von;
214 }
215 
217 {
218  return xyz_lissee;
219 }
220 
222 {
223  xyz_lissee[0]=coord[0];
224  xyz_lissee[1]=coord[1];
225  xyz_lissee[2]=coord[2];
226 }
227 
229 {
230  return lst_noeud_voisin;
231 }
232 
234 {
235  lst_noeud_voisin=lst;
236 }
237 
239 {
240  lst_noeud_filtre=lst;
241 }
242 
244 {
245  return lst_noeud_filtre;
246 }
247 
248 /*TPL_MAP_ENTITE< OPT_TRIANGLE* > OPT_NOEUD::get_liste_tri_voisin(void )
249 {
250  return lst_tri_voisin;
251 }
252 
253 void OPT_NOEUD::change_liste_tri_voisin(TPL_MAP_ENTITE< OPT_TRIANGLE* > lst)
254 {
255  lst_tri_voisin=lst;
256 }*/
257 
258 unsigned long OPT_NOEUD::get_id(void)
259 {
260  return fem_noeud->get_id();
261 }
262 
263 double OPT_NOEUD::get_x(void)
264 {
265  return fem_noeud->get_x();
266 }
267 
268 double OPT_NOEUD::get_y(void)
269 {
270  return fem_noeud->get_y();
271 }
272 
273 double OPT_NOEUD::get_z(void)
274 {
275  return fem_noeud->get_z();
276 }
277 
279 {
280  return xyz0[0];
281 }
282 
284 {
285  return xyz0[1];
286 }
287 
289 {
290  return xyz0[2];
291 }
292 
293 double* OPT_NOEUD::get_coord(void)
294 {
295  return fem_noeud->get_coord();
296 }
297 
299 {
301 }
302 
304 {
307 
308  int signe=1;
309  double ps_D_n=D*n;
310  if (ps_D_n<0)
311  signe=-1;
313 }
314 
316 {
317  normale=vec;
318 }
319 
321 {
322  return normale;
323 }
325 {
326  normale2=vec;
327 }
328 
330 {
331  return normale2;
332 }
333 
335 {
336  return normale_initiale;
337 }
338 
340 {
342 }
343 
344 void OPT_NOEUD::change_x(double xx)
345 {
346  fem_noeud->change_x(xx);
347 }
348 
349 void OPT_NOEUD::change_y(double yy)
350 {
351  fem_noeud->change_y(yy);
352 }
353 
354 void OPT_NOEUD::change_z(double zz)
355 {
356  fem_noeud->change_z(zz);
357 }
358 
359 void OPT_NOEUD::change_x_initial(double x_initial)
360 {
361  xyz0[0]=x_initial;
362 }
363 
364 void OPT_NOEUD::change_y_initial(double y_initial)
365 {
366  xyz0[1]=y_initial;
367 }
368 
369 void OPT_NOEUD::change_z_initial(double z_initial)
370 {
371  xyz0[2]=z_initial;
372 }
373 
374 void OPT_NOEUD::change_coord(double *coo)
375 {
376  fem_noeud->change_coord(coo);
377 }
378 
380 {
382 }
383 
385 {
386  return fem_noeud->get_solution();
387 }
OPT_NOEUD::get_z_initial
virtual double get_z_initial(void)
Definition: opt_noeud.cpp:288
OPT_NOEUD::get_y
virtual double get_y(void)
Definition: opt_noeud.cpp:268
OPT_NOEUD::xyz_lissee
double xyz_lissee[3]
Definition: opt_noeud.h:135
OPT_NOEUD::get_liste_noeud_filtre
virtual TPL_MAP_ENTITE< class OPT_NOEUD * > get_liste_noeud_filtre(void)
Definition: opt_noeud.cpp:243
opt_noeud.h
FEM_NOEUD::change_y
virtual void change_y(double yy)
Definition: fem_noeud.cpp:272
OPT_NOEUD::lst_noeud_filtre
TPL_MAP_ENTITE< class OPT_NOEUD * > lst_noeud_filtre
Definition: opt_noeud.h:157
OPT_NOEUD::change_x_initial
virtual void change_x_initial(double x_initial)
Definition: opt_noeud.cpp:359
OPT_NOEUD::change_solution
virtual void change_solution(double val)
Definition: opt_noeud.cpp:379
OPT_NOEUD::get_id
virtual unsigned long get_id(void)
Definition: opt_noeud.cpp:258
OPT_NOEUD::get_x_initial
virtual double get_x_initial(void)
Definition: opt_noeud.cpp:278
OPT_NOEUD::change_mobile_au_depart
virtual void change_mobile_au_depart(int mob)
Definition: opt_noeud.cpp:122
gestionversion.h
OPT_NOEUD::get_x
virtual double get_x(void)
Definition: opt_noeud.cpp:263
OPT_NOEUD::get_y_initial
virtual double get_y_initial(void)
Definition: opt_noeud.cpp:283
OPT_NOEUD::change_mvt_normal
virtual void change_mvt_normal(int mvt)
Definition: opt_noeud.cpp:82
TPL_MAP_ENTITE
Definition: tpl_map_entite.h:35
OPT_NOEUD::change_y_initial
virtual void change_y_initial(double y_initial)
Definition: opt_noeud.cpp:364
OPT_NOEUD::get_fem_noeud
virtual FEM_NOEUD * get_fem_noeud(void)
Definition: opt_noeud.cpp:63
OPT_NOEUD::arret_gradient
int arret_gradient
Definition: opt_noeud.h:142
MG_IDENTIFICATEUR::get_id
unsigned long get_id()
Definition: mg_identificateur.cpp:53
OPT_NOEUD::change_num
virtual void change_num(int val)
Definition: opt_noeud.cpp:73
OPT_NOEUD::get_coord
virtual double * get_coord(void)
Definition: opt_noeud.cpp:293
OPT_NOEUD::change_coord
virtual void change_coord(double *coo)
Definition: opt_noeud.cpp:374
OPT_NOEUD::von_mises
double von_mises
Definition: opt_noeud.h:151
OPT_NOEUD::change_normale2
virtual void change_normale2(OT_VECTEUR_3D vec)
Definition: opt_noeud.cpp:324
OPT_NOEUD::change_vonmises__precedent
virtual void change_vonmises__precedent(double von)
Definition: opt_noeud.cpp:211
fem_noeud.h
OPT_NOEUD::get_coord_lissee
virtual double * get_coord_lissee(void)
Definition: opt_noeud.cpp:216
OPT_NOEUD::change_num_replacement
virtual void change_num_replacement(int num)
Definition: opt_noeud.cpp:162
OPT_NOEUD::get_vonmises__precedent
virtual double get_vonmises__precedent(void)
Definition: opt_noeud.cpp:206
OPT_NOEUD::change_liste_noeud_voisin
virtual void change_liste_noeud_voisin(TPL_MAP_ENTITE< class OPT_NOEUD * > lst)
Definition: opt_noeud.cpp:233
OPT_NOEUD::OPT_NOEUD
OPT_NOEUD(FEM_NOEUD *noeud)
Definition: opt_noeud.cpp:28
FEM_NOEUD::change_x
virtual void change_x(double xx)
Definition: fem_noeud.cpp:265
OPT_NOEUD
Definition: opt_noeud.h:31
OPT_NOEUD::change_x
virtual void change_x(double xx)
Definition: opt_noeud.cpp:344
OPT_NOEUD::get_sol_deplacement_virtuel
virtual double get_sol_deplacement_virtuel(void)
Definition: opt_noeud.cpp:177
OPT_NOEUD::get_normale
virtual OT_VECTEUR_3D get_normale(void)
Definition: opt_noeud.cpp:320
OPT_NOEUD::norme_orientee_deplacement
double norme_orientee_deplacement
Definition: opt_noeud.h:136
OPT_NOEUD::change_arret_gradient
virtual void change_arret_gradient(int grad)
Definition: opt_noeud.cpp:102
OPT_NOEUD::sens_depl_virtuel
double sens_depl_virtuel
Definition: opt_noeud.h:150
FEM_NOEUD::change_z
virtual void change_z(double zz)
Definition: fem_noeud.cpp:278
OPT_NOEUD::normale_initiale
OT_VECTEUR_3D normale_initiale
Definition: opt_noeud.h:139
OPT_NOEUD::lst_noeud_voisin
TPL_MAP_ENTITE< class OPT_NOEUD * > lst_noeud_voisin
Definition: opt_noeud.h:155
OPT_NOEUD::change_terme_gradient_f
virtual void change_terme_gradient_f(double valeur)
Definition: opt_noeud.cpp:172
OPT_NOEUD::change_a_replacer
virtual void change_a_replacer(int replacer)
Definition: opt_noeud.cpp:142
OPT_NOEUD::xyz0
double xyz0[3]
Definition: opt_noeud.h:134
FEM_NOEUD::get_y
virtual double get_y(double coef=0.)
Definition: fem_noeud.cpp:210
OPT_NOEUD::depl_avant_algo_grad
double depl_avant_algo_grad
Definition: opt_noeud.h:154
FEM_NOEUD::get_coord
virtual double * get_coord(void)
Definition: fem_noeud.cpp:254
OPT_NOEUD::fem_noeud
FEM_NOEUD * fem_noeud
Definition: opt_noeud.h:133
OPT_NOEUD::terme_gradient_f
double terme_gradient_f
Definition: opt_noeud.h:148
OPT_NOEUD::a_replacer
int a_replacer
Definition: opt_noeud.h:145
FEM_NOEUD::get_solution
virtual double get_solution(int num=0)
Definition: fem_noeud.cpp:364
OPT_NOEUD::get_sens_depl_virtuel
virtual double get_sens_depl_virtuel(void)
Definition: opt_noeud.cpp:187
OPT_NOEUD::num_replacement
int num_replacement
Definition: opt_noeud.h:147
OPT_NOEUD::change_normale_initiale
virtual void change_normale_initiale(void)
Definition: opt_noeud.cpp:339
OPT_NOEUD::mvt_normal
int mvt_normal
Definition: opt_noeud.h:141
OPT_NOEUD::num
int num
Definition: opt_noeud.h:140
OPT_NOEUD::change_mobile
virtual void change_mobile(int mob)
Definition: opt_noeud.cpp:132
OPT_NOEUD::get_normale_initiale
virtual OT_VECTEUR_3D get_normale_initiale(void)
Definition: opt_noeud.cpp:334
OPT_NOEUD::get_depl_avant_algo_grad
virtual double get_depl_avant_algo_grad(void)
Definition: opt_noeud.cpp:197
OPT_NOEUD::get_arret_gradient
virtual int get_arret_gradient(void)
Definition: opt_noeud.cpp:97
OPT_NOEUD::change_sens_depl_virtuel
virtual void change_sens_depl_virtuel(double signe)
Definition: opt_noeud.cpp:192
OPT_NOEUD::change_liste_noeud_filtre
virtual void change_liste_noeud_filtre(TPL_MAP_ENTITE< class OPT_NOEUD * > lst)
Definition: opt_noeud.cpp:238
OPT_NOEUD::get_num_replacement
virtual int get_num_replacement(void)
Definition: opt_noeud.cpp:157
FEM_NOEUD::get_x
virtual double get_x(double coef=0.)
Definition: fem_noeud.cpp:205
OPT_NOEUD::~OPT_NOEUD
virtual ~OPT_NOEUD()
Definition: opt_noeud.cpp:58
OPT_NOEUD::change_z_initial
virtual void change_z_initial(double z_initial)
Definition: opt_noeud.cpp:369
FEM_NOEUD
Definition: fem_noeud.h:35
OPT_NOEUD::get_norme_orientee_deplacement
virtual double get_norme_orientee_deplacement(void)
Definition: opt_noeud.cpp:298
OPT_NOEUD::get_mobile
virtual int get_mobile(void)
Definition: opt_noeud.cpp:127
OPT_NOEUD::change_norme_orientee_deplacement
virtual void change_norme_orientee_deplacement(void)
Definition: opt_noeud.cpp:303
OT_VECTEUR_3D
Definition: ot_mathematique.h:94
OPT_NOEUD::get_terme_gradient_f
virtual double get_terme_gradient_f(void)
Definition: opt_noeud.cpp:167
OPT_NOEUD::change_depl_avant_algo_grad
virtual void change_depl_avant_algo_grad(double signe)
Definition: opt_noeud.cpp:202
mg_maillage.h
OPT_NOEUD::mobile_au_depart
int mobile_au_depart
Definition: opt_noeud.h:143
FEM_NOEUD::get_z
virtual double get_z(double coef=0.)
Definition: fem_noeud.cpp:215
OPT_NOEUD::change_z
virtual void change_z(double zz)
Definition: opt_noeud.cpp:354
OPT_NOEUD::change_y
virtual void change_y(double yy)
Definition: opt_noeud.cpp:349
OPT_NOEUD::get_normale2
virtual OT_VECTEUR_3D get_normale2(void)
Definition: opt_noeud.cpp:329
OPT_NOEUD::normale2
OT_VECTEUR_3D normale2
Definition: opt_noeud.h:138
OPT_NOEUD::get_mvt_normal
virtual int get_mvt_normal(void)
Definition: opt_noeud.cpp:78
OPT_NOEUD::get_liste_noeud_voisin
virtual TPL_MAP_ENTITE< class OPT_NOEUD * > get_liste_noeud_voisin(void)
Definition: opt_noeud.cpp:228
FEM_NOEUD::change_solution
virtual void change_solution(double val, int num=0)
Definition: fem_noeud.cpp:358
OPT_NOEUD::sol_deplacement_virtuel
double sol_deplacement_virtuel
Definition: opt_noeud.h:149
OPT_NOEUD::get_num
virtual int get_num(void)
Definition: opt_noeud.cpp:68
OPT_NOEUD::get_mobile_au_depart
virtual int get_mobile_au_depart(void)
Definition: opt_noeud.cpp:117
OPT_NOEUD::get_z
virtual double get_z(void)
Definition: opt_noeud.cpp:273
OT_VECTEUR_3D::get_longueur
virtual double get_longueur(void) const
Definition: ot_mathematique.cpp:483
OPT_NOEUD::get_solution
virtual double get_solution(void)
Definition: opt_noeud.cpp:384
OPT_NOEUD::change_sol_deplacement_virtuel
virtual void change_sol_deplacement_virtuel(double deplacement)
Definition: opt_noeud.cpp:182
OPT_NOEUD::change_normale
virtual void change_normale(OT_VECTEUR_3D vec)
Definition: opt_noeud.cpp:315
OPT_NOEUD::normale
OT_VECTEUR_3D normale
Definition: opt_noeud.h:137
OPT_NOEUD::get_a_replacer
virtual int get_a_replacer(void)
Definition: opt_noeud.cpp:137
OPT_NOEUD::change_coord_lissee
virtual void change_coord_lissee(double *coord)
Definition: opt_noeud.cpp:221
OPT_NOEUD::mobile
int mobile
Definition: opt_noeud.h:144
FEM_NOEUD::change_coord
virtual void change_coord(double *coo)
Definition: fem_noeud.cpp:320