ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/aster/src/opt_noeud.h
Revision: 1158
Committed: Thu Jun 13 22:18:49 2024 UTC (12 months ago) by francois
Content type: text/plain
File size: 6493 byte(s)
Log Message:
compatibilité Ubuntu 22.04
Suppression des refeences à Windows
Ajout d'une banière

File Contents

# User Rev Content
1 francois 1158 //####//------------------------------------------------------------
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.h
15     //####//
16     //####//------------------------------------------------------------
17     //####//------------------------------------------------------------
18     //####// COPYRIGHT 2000-2024
19     //####// jeu 13 jun 2024 11:58:57 EDT
20     //####//------------------------------------------------------------
21     //####//------------------------------------------------------------
22 gervaislavoie 332 #ifndef _OPTNOEUD_
23     #define _OPTNOEUD_
24    
25    
26 francois 1158
27 francois 470 #include "fem_noeud.h"
28 gervaislavoie 528 #include "opt_triangle.h"
29 gervaislavoie 332
30    
31 francois 1158 class OPT_NOEUD
32 gervaislavoie 332 {
33     public:
34 francois 470 OPT_NOEUD(FEM_NOEUD* noeud);
35 gervaislavoie 332 OPT_NOEUD(OPT_NOEUD& mdd);
36     virtual ~OPT_NOEUD();
37 francois 470
38     virtual FEM_NOEUD* get_fem_noeud(void);
39 gervaislavoie 332 virtual unsigned long get_id(void);
40 francois 470
41 gervaislavoie 332 virtual double get_x(void);
42     virtual double get_y(void);
43     virtual double get_z(void);
44 gervaislavoie 398 virtual double get_x_initial(void);
45     virtual double get_y_initial(void);
46     virtual double get_z_initial(void);
47 gervaislavoie 332 virtual double* get_coord(void);
48    
49     virtual void change_x(double xx);
50     virtual void change_y(double yy);
51     virtual void change_z(double zz);
52 gervaislavoie 398 virtual void change_x_initial(double x_initial);
53     virtual void change_y_initial(double y_initial);
54     virtual void change_z_initial(double z_initial);
55 gervaislavoie 332 virtual void change_coord(double *coo);
56    
57 francois 470 virtual double get_norme_orientee_deplacement(void);
58     virtual void change_norme_orientee_deplacement(void);
59    
60     virtual OT_VECTEUR_3D get_normale(void);
61 gervaislavoie 332 virtual void change_normale(OT_VECTEUR_3D vec);
62 francois 470
63 zeggar 744 virtual OT_VECTEUR_3D get_normale2(void);
64     virtual void change_normale2(OT_VECTEUR_3D vec);
65    
66 gervaislavoie 332 virtual OT_VECTEUR_3D get_normale_initiale(void);
67     virtual void change_normale_initiale(void);
68 francois 470
69 gervaislavoie 332 virtual void change_solution(double val);
70     virtual double get_solution(void);
71    
72     virtual int get_num(void);
73     virtual void change_num(int val);
74    
75 gervaislavoie 495 virtual int get_mvt_normal(void);
76     virtual void change_mvt_normal(int mvt);
77 gervaislavoie 398
78 gervaislavoie 495 /*virtual int get_contrainte(void);
79     virtual void change_contrainte(int cont);*/
80 francois 470
81 gervaislavoie 528 virtual int get_arret_gradient(void);
82     virtual void change_arret_gradient(int grad);
83 gervaislavoie 398
84 gervaislavoie 495 /*virtual int get_fixe_au_depart(void);
85     virtual void change_fixe_au_depart(int fixe);*/
86 gervaislavoie 398
87 gervaislavoie 495 virtual int get_mobile_au_depart(void);
88     virtual void change_mobile_au_depart(int mob);
89    
90     virtual int get_mobile(void);
91     virtual void change_mobile(int mob);
92    
93     virtual int get_a_replacer(void);
94     virtual void change_a_replacer(int replacer);
95    
96 gervaislavoie 528 /*virtual int get_a_ete_replace(void);
97     virtual void change_a_ete_replace(int replace);*/
98 gervaislavoie 495
99 gervaislavoie 528 virtual int get_num_replacement(void);
100     virtual void change_num_replacement(int num);
101    
102 gervaislavoie 398 virtual double get_terme_gradient_f(void);
103     virtual void change_terme_gradient_f(double valeur);
104    
105 gervaislavoie 528 virtual double get_sol_deplacement_virtuel(void);
106     virtual void change_sol_deplacement_virtuel(double deplacement);
107    
108 zeggar 744 virtual double get_vonmises__precedent(void);
109     virtual void change_vonmises__precedent(double von);
110    
111 gervaislavoie 528 virtual double get_sens_depl_virtuel(void);
112     virtual void change_sens_depl_virtuel(double signe);
113    
114     //virtual double get_depl_reel_precedent(void);
115     //virtual void change_depl_reel_precedent(double depl);
116    
117     virtual double get_depl_avant_algo_grad(void);
118     virtual void change_depl_avant_algo_grad(double signe);
119    
120     virtual double* get_coord_lissee(void);
121     virtual void change_coord_lissee(double* coord);
122    
123 zeggar 744 virtual void change_liste_noeud_voisin(TPL_MAP_ENTITE<class OPT_NOEUD*> lst);
124 gervaislavoie 528 virtual TPL_MAP_ENTITE<class OPT_NOEUD*> get_liste_noeud_voisin(void);
125    
126 zeggar 744 virtual void change_liste_noeud_filtre(TPL_MAP_ENTITE<class OPT_NOEUD*> lst);
127     virtual TPL_MAP_ENTITE<class OPT_NOEUD*> get_liste_noeud_filtre(void);
128    
129 gervaislavoie 528 /*virtual TPL_MAP_ENTITE<class OPT_TRIANGLE*> get_liste_tri_voisin(void);
130     virtual void change_liste_tri_voisin(TPL_MAP_ENTITE<class OPT_TRIANGLE*> lst);*/
131 gervaislavoie 332
132     private:
133 francois 470 FEM_NOEUD* fem_noeud;
134     double xyz0[3];
135 gervaislavoie 528 double xyz_lissee[3]; // Sert à garder en mémoire la position lissée de chaque noeud lors du lissage
136 francois 470 double norme_orientee_deplacement;
137 gervaislavoie 332 OT_VECTEUR_3D normale;
138 zeggar 744 OT_VECTEUR_3D normale2;
139 gervaislavoie 398 OT_VECTEUR_3D normale_initiale;
140 gervaislavoie 332 int num;
141 gervaislavoie 528 int mvt_normal; // Si mvt_normal==1, le noeud doit être déplacé par la méthode du mouvement normal
142     int arret_gradient; // Si arret_gradient==1, le noeud a été bloqué par le gradient
143     int mobile_au_depart; // Pour afficher le gradient des triangles qui ont 3 noeuds fixes et qui avaient 3 noeuds mobiles au départ
144     int mobile; // Si mobile==1, le noeud peut être déplacé et appartient à un triangle ayant 1 ou 2 noeuds fixes
145     int a_replacer; // Noeud mobile à replacer par l'algo du gradient (au moins un triangle dépasse la valeur seuil)
146     //int a_ete_replace; // Noeud replacé par l'algorithme du gradient (enlever)
147     int num_replacement; // 1 si dans fonction f1, 2 si dans fonction f2
148     double terme_gradient_f; // Terme i du gradient de f où i correspond à la numérotation globale du noeud
149     double sol_deplacement_virtuel; // Déplacement virtuel du noeud
150     double sens_depl_virtuel; // Sens du déplacement virtuel total
151 zeggar 744 double von_mises;
152     double von_mises2;
153 gervaislavoie 528 //double depl_reel_precedent; // Valeur du déplacement réel à l'itération précédente (enlever)
154     double depl_avant_algo_grad; // Déplacement du noeud avant l'algo du gradient (pour pondérer le pas de l'algo)
155     TPL_MAP_ENTITE<class OPT_NOEUD*> lst_noeud_voisin; // Noeuds voisins au noeud
156 zeggar 744
157     TPL_MAP_ENTITE<class OPT_NOEUD*> lst_noeud_filtre;
158 gervaislavoie 528 //TPL_MAP_ENTITE<class OPT_TRIANGLE*> lst_tri_voisin; // Triangles voisins au noeud
159 gervaislavoie 332 };
160    
161 francois 1158 #endif