MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
opt_triangle.h
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_triangle.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:57 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 #ifndef _OPTTRIANGLE_
23 #define _OPTTRIANGLE_
24 
25 
26 
27 
28 #include "mg_element_maillage.h"
29 #include "mg_segment.h"
30 #include "mg_noeud.h"
31 #include "opt_noeud.h"
32 #include "ot_reference.h"
33 
34 
36 {
37 public:
38 
39  OPT_TRIANGLE(class FEM_TRIANGLE3* fem_tri3,class OPT_NOEUD* noeud1,class OPT_NOEUD* noeud2,class OPT_NOEUD* noeud3);
41  virtual ~OPT_TRIANGLE();
42 
43  virtual class OPT_NOEUD* get_noeud1(void);
44  virtual class OPT_NOEUD* get_noeud2(void);
45  virtual class OPT_NOEUD* get_noeud3(void);
46 
47  virtual unsigned long get_id(void);
48  virtual void change_normale_unitaire(OT_VECTEUR_3D vec);
49 
50  virtual void change_angle1_initial(double angle);
51  virtual void change_angle2_initial(double angle);
52  virtual void change_angle3_initial(double angle);
53  virtual void change_angle1(double angle);
54  virtual void change_angle2(double angle);
55  virtual void change_angle3(double angle);
56 
57  virtual OT_VECTEUR_3D get_normale_unitaire(void); //Enlever?
58 
59  virtual OT_MATRICE_3D get_jacobien_inverse(void);
60  virtual OT_MATRICE_3D get_matrice_abc(void);
61 
63  virtual OT_MATRICE_3D change_matrice_abc(void);
64 
65  //virtual OT_MATRICE_3D get_jacobien_inverse_initial(void);
66  //virtual OT_MATRICE_3D get_matrice_abc_initiale(void);
67 
69  virtual void change_vecteur_deplacement_reel(void);
70 
72  virtual void change_vecteur_sol_deplacement_virtuel(void);
73 
74  virtual double get_norme_gradient_deplacement_reel(void);
75  virtual void change_norme_gradient_deplacement_reel(void);
76 
77  virtual double get_norme_gradient_deplacement_virtuel(void);
79 
80  virtual int get_noeuds_fixes_3(void);
81  virtual void change_noeuds_fixes_3(int val);
82 
83  virtual int get_nb_noeuds_fixes_iter(void);
84  virtual void change_nb_noeuds_fixes_iter(int nb);
85 
86  virtual double get_angle1_initial(void);
87  virtual double get_angle2_initial(void);
88  virtual double get_angle3_initial(void);
89  virtual double get_angle1(void);
90  virtual double get_angle2(void);
91  virtual double get_angle3(void);
92 
93 
94  virtual int get_num(void);
95  virtual void change_num(int val);
96 
97  virtual OPT_TRIANGLE* get_voisin1(void);
98  virtual OPT_TRIANGLE* get_voisin2(void);
99  virtual OPT_TRIANGLE* get_voisin3(void);
100  virtual void change_voisin1(OPT_TRIANGLE* tri);
101  virtual void change_voisin2(OPT_TRIANGLE* tri);
102  virtual void change_voisin3(OPT_TRIANGLE* tri);
103 
104 
105 protected:
106 
111 
115  OT_MATRICE_3D matrice_abc; // Matrice résultant du produit de la matrice jacobienne inverse par la matrice des dérivées des fonctions d'interpolation
116  OT_VECTEUR_3D vec_deplacement_reel; // Vecteur contenant les déplacements des noeuds par rapport à leur position initiale
117  OT_VECTEUR_3D vec_sol_deplacement_virtuel; // Vecteur contenant les solutions de déplacement virtuel des noeuds
120  int noeuds_fixes_3; // Si noeuds_fixes_3==1, le triangle a 3 noeuds fixes
121  int nb_noeuds_fixes_iter; // Nb de noeuds fixés au cours d'une même itération de la méthode du mvt normal
122 
123  int num;
124  double a1_init;
125  double a2_init;
126  double a3_init;
127  double a1;
128  double a2;
129  double a3;
133 };
134 
135 #endif
OPT_TRIANGLE::change_noeuds_fixes_3
virtual void change_noeuds_fixes_3(int val)
Definition: opt_triangle.cpp:205
opt_noeud.h
OPT_TRIANGLE::get_angle2
virtual double get_angle2(void)
Definition: opt_triangle.cpp:245
OPT_TRIANGLE::get_id
virtual unsigned long get_id(void)
Definition: opt_triangle.cpp:54
OPT_TRIANGLE::change_angle1_initial
virtual void change_angle1_initial(double angle)
Definition: opt_triangle.cpp:59
OPT_TRIANGLE::a1
double a1
Definition: opt_triangle.h:127
OPT_TRIANGLE::get_voisin3
virtual OPT_TRIANGLE * get_voisin3(void)
Definition: opt_triangle.cpp:290
OPT_TRIANGLE::fem_triangle3
class FEM_TRIANGLE3 * fem_triangle3
Definition: opt_triangle.h:107
OPT_TRIANGLE::nb_noeuds_fixes_iter
int nb_noeuds_fixes_iter
Definition: opt_triangle.h:121
OPT_TRIANGLE::jacobien_inverse
OT_MATRICE_3D jacobien_inverse
Definition: opt_triangle.h:114
OPT_TRIANGLE::a1_init
double a1_init
Definition: opt_triangle.h:124
OPT_TRIANGLE::get_noeud2
virtual class OPT_NOEUD * get_noeud2(void)
Definition: opt_triangle.cpp:260
FEM_TRIANGLE3
Definition: fem_triangle3.h:34
OPT_TRIANGLE::get_angle2_initial
virtual double get_angle2_initial(void)
Definition: opt_triangle.cpp:230
OPT_TRIANGLE::a2
double a2
Definition: opt_triangle.h:128
OPT_TRIANGLE::get_vecteur_deplacement_reel
virtual OT_VECTEUR_3D get_vecteur_deplacement_reel(void)
Definition: opt_triangle.cpp:146
OPT_TRIANGLE::norme_gradient_deplacement_virtuel
double norme_gradient_deplacement_virtuel
Definition: opt_triangle.h:119
OPT_TRIANGLE::matrice_abc
OT_MATRICE_3D matrice_abc
Definition: opt_triangle.h:115
OPT_TRIANGLE::voisin2
OPT_TRIANGLE * voisin2
Definition: opt_triangle.h:131
OPT_TRIANGLE::change_num
virtual void change_num(int val)
Definition: opt_triangle.cpp:275
OPT_NOEUD
Definition: opt_noeud.h:31
OPT_TRIANGLE::change_normale_unitaire
virtual void change_normale_unitaire(OT_VECTEUR_3D vec)
Definition: opt_triangle.cpp:89
mg_element_maillage.h
mg_noeud.h
OPT_TRIANGLE::change_matrice_abc
virtual OT_MATRICE_3D change_matrice_abc(void)
Definition: opt_triangle.cpp:121
OPT_TRIANGLE::change_norme_gradient_deplacement_virtuel
virtual void change_norme_gradient_deplacement_virtuel(void)
Definition: opt_triangle.cpp:181
OPT_TRIANGLE::opt_noeud1
OPT_NOEUD * opt_noeud1
Definition: opt_triangle.h:108
ot_reference.h
OPT_TRIANGLE::normale_unitaire
OT_VECTEUR_3D normale_unitaire
Definition: opt_triangle.h:112
OPT_TRIANGLE::change_vecteur_sol_deplacement_virtuel
virtual void change_vecteur_sol_deplacement_virtuel(void)
Definition: opt_triangle.cpp:151
OPT_TRIANGLE::change_norme_gradient_deplacement_reel
virtual void change_norme_gradient_deplacement_reel(void)
Definition: opt_triangle.cpp:170
OPT_TRIANGLE::get_nb_noeuds_fixes_iter
virtual int get_nb_noeuds_fixes_iter(void)
Definition: opt_triangle.cpp:220
OPT_TRIANGLE
Definition: opt_triangle.h:35
mg_segment.h
OPT_TRIANGLE::opt_noeud2
OPT_NOEUD * opt_noeud2
Definition: opt_triangle.h:109
OPT_TRIANGLE::change_angle2
virtual void change_angle2(double angle)
Definition: opt_triangle.cpp:79
OPT_TRIANGLE::dNi_transpose
OT_MATRICE_3D dNi_transpose
Definition: opt_triangle.h:113
OT_MATRICE_3D
Definition: ot_mathematique.h:160
OPT_TRIANGLE::voisin3
OPT_TRIANGLE * voisin3
Definition: opt_triangle.h:132
OPT_TRIANGLE::change_voisin1
virtual void change_voisin1(OPT_TRIANGLE *tri)
Definition: opt_triangle.cpp:295
OPT_TRIANGLE::vec_sol_deplacement_virtuel
OT_VECTEUR_3D vec_sol_deplacement_virtuel
Definition: opt_triangle.h:117
OPT_TRIANGLE::get_voisin2
virtual OPT_TRIANGLE * get_voisin2(void)
Definition: opt_triangle.cpp:285
OPT_TRIANGLE::vec_deplacement_reel
OT_VECTEUR_3D vec_deplacement_reel
Definition: opt_triangle.h:116
OPT_TRIANGLE::get_jacobien_inverse
virtual OT_MATRICE_3D get_jacobien_inverse(void)
Definition: opt_triangle.cpp:116
OPT_TRIANGLE::get_angle1
virtual double get_angle1(void)
Definition: opt_triangle.cpp:240
OPT_TRIANGLE::~OPT_TRIANGLE
virtual ~OPT_TRIANGLE()
Definition: opt_triangle.cpp:49
OPT_TRIANGLE::get_norme_gradient_deplacement_virtuel
virtual double get_norme_gradient_deplacement_virtuel(void)
Definition: opt_triangle.cpp:200
OPT_TRIANGLE::get_angle1_initial
virtual double get_angle1_initial(void)
Definition: opt_triangle.cpp:225
OPT_TRIANGLE::a2_init
double a2_init
Definition: opt_triangle.h:125
OPT_TRIANGLE::change_angle3
virtual void change_angle3(double angle)
Definition: opt_triangle.cpp:84
OPT_TRIANGLE::change_angle1
virtual void change_angle1(double angle)
Definition: opt_triangle.cpp:74
OPT_TRIANGLE::noeuds_fixes_3
int noeuds_fixes_3
Definition: opt_triangle.h:120
OPT_TRIANGLE::change_angle2_initial
virtual void change_angle2_initial(double angle)
Definition: opt_triangle.cpp:64
OPT_TRIANGLE::a3
double a3
Definition: opt_triangle.h:129
OPT_TRIANGLE::get_angle3
virtual double get_angle3(void)
Definition: opt_triangle.cpp:250
OT_VECTEUR_3D
Definition: ot_mathematique.h:94
OPT_TRIANGLE::a3_init
double a3_init
Definition: opt_triangle.h:126
OPT_TRIANGLE::change_vecteur_deplacement_reel
virtual void change_vecteur_deplacement_reel(void)
Definition: opt_triangle.cpp:132
OPT_TRIANGLE::get_vecteur_sol_deplacement_virtuel
virtual OT_VECTEUR_3D get_vecteur_sol_deplacement_virtuel(void)
Definition: opt_triangle.cpp:165
OPT_TRIANGLE::change_jacobien_inverse
virtual OT_MATRICE_3D change_jacobien_inverse(void)
Definition: opt_triangle.cpp:99
OPT_TRIANGLE::get_noeud1
virtual class OPT_NOEUD * get_noeud1(void)
Definition: opt_triangle.cpp:255
OPT_TRIANGLE::change_voisin3
virtual void change_voisin3(OPT_TRIANGLE *tri)
Definition: opt_triangle.cpp:305
OPT_TRIANGLE::norme_gradient_deplacement_reel
double norme_gradient_deplacement_reel
Definition: opt_triangle.h:118
OPT_TRIANGLE::num
int num
Definition: opt_triangle.h:123
OPT_TRIANGLE::change_nb_noeuds_fixes_iter
virtual void change_nb_noeuds_fixes_iter(int nb)
Definition: opt_triangle.cpp:215
OPT_TRIANGLE::get_num
virtual int get_num(void)
Definition: opt_triangle.cpp:270
OPT_TRIANGLE::OPT_TRIANGLE
OPT_TRIANGLE(class FEM_TRIANGLE3 *fem_tri3, class OPT_NOEUD *noeud1, class OPT_NOEUD *noeud2, class OPT_NOEUD *noeud3)
Definition: opt_triangle.cpp:32
OPT_TRIANGLE::get_noeud3
virtual class OPT_NOEUD * get_noeud3(void)
Definition: opt_triangle.cpp:265
OPT_TRIANGLE::get_matrice_abc
virtual OT_MATRICE_3D get_matrice_abc(void)
Definition: opt_triangle.cpp:127
OPT_TRIANGLE::voisin1
OPT_TRIANGLE * voisin1
Definition: opt_triangle.h:130
OPT_TRIANGLE::get_noeuds_fixes_3
virtual int get_noeuds_fixes_3(void)
Definition: opt_triangle.cpp:210
OPT_TRIANGLE::get_voisin1
virtual OPT_TRIANGLE * get_voisin1(void)
Definition: opt_triangle.cpp:280
OPT_TRIANGLE::change_voisin2
virtual void change_voisin2(OPT_TRIANGLE *tri)
Definition: opt_triangle.cpp:300
OPT_TRIANGLE::get_angle3_initial
virtual double get_angle3_initial(void)
Definition: opt_triangle.cpp:235
OPT_TRIANGLE::get_normale_unitaire
virtual OT_VECTEUR_3D get_normale_unitaire(void)
Definition: opt_triangle.cpp:94
OPT_TRIANGLE::change_angle3_initial
virtual void change_angle3_initial(double angle)
Definition: opt_triangle.cpp:69
OPT_TRIANGLE::opt_noeud3
OPT_NOEUD * opt_noeud3
Definition: opt_triangle.h:110
OPT_TRIANGLE::get_norme_gradient_deplacement_reel
virtual double get_norme_gradient_deplacement_reel(void)
Definition: opt_triangle.cpp:176