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
OT_VECTEUR_3D vec_sol_deplacement_virtuel
Definition: opt_triangle.h:117
virtual double get_angle2_initial(void)
virtual void change_vecteur_deplacement_reel(void)
virtual class OPT_NOEUD * get_noeud2(void)
virtual OPT_TRIANGLE * get_voisin1(void)
OPT_TRIANGLE * voisin2
Definition: opt_triangle.h:131
virtual void change_noeuds_fixes_3(int val)
double norme_gradient_deplacement_virtuel
Definition: opt_triangle.h:119
virtual OT_MATRICE_3D change_jacobien_inverse(void)
virtual OPT_TRIANGLE * get_voisin2(void)
virtual OPT_TRIANGLE * get_voisin3(void)
virtual double get_angle1(void)
virtual OT_VECTEUR_3D get_normale_unitaire(void)
virtual void change_angle1_initial(double angle)
virtual OT_VECTEUR_3D get_vecteur_sol_deplacement_virtuel(void)
OT_MATRICE_3D dNi_transpose
Definition: opt_triangle.h:113
virtual void change_angle3_initial(double angle)
double norme_gradient_deplacement_reel
Definition: opt_triangle.h:118
OT_MATRICE_3D jacobien_inverse
Definition: opt_triangle.h:114
OPT_NOEUD * opt_noeud3
Definition: opt_triangle.h:110
virtual void change_normale_unitaire(OT_VECTEUR_3D vec)
OPT_NOEUD * opt_noeud2
Definition: opt_triangle.h:109
virtual double get_norme_gradient_deplacement_reel(void)
virtual OT_MATRICE_3D get_matrice_abc(void)
virtual ~OPT_TRIANGLE()
virtual void change_num(int val)
OPT_TRIANGLE * voisin1
Definition: opt_triangle.h:130
virtual void change_vecteur_sol_deplacement_virtuel(void)
virtual void change_voisin2(OPT_TRIANGLE *tri)
virtual unsigned long get_id(void)
OT_MATRICE_3D matrice_abc
Definition: opt_triangle.h:115
double a2_init
Definition: opt_triangle.h:125
OT_VECTEUR_3D normale_unitaire
Definition: opt_triangle.h:112
virtual double get_norme_gradient_deplacement_virtuel(void)
virtual OT_MATRICE_3D change_matrice_abc(void)
virtual void change_angle1(double angle)
OPT_NOEUD * opt_noeud1
Definition: opt_triangle.h:108
class FEM_TRIANGLE3 * fem_triangle3
Definition: opt_triangle.h:107
virtual OT_VECTEUR_3D get_vecteur_deplacement_reel(void)
virtual double get_angle3(void)
virtual int get_noeuds_fixes_3(void)
double a3_init
Definition: opt_triangle.h:126
virtual void change_nb_noeuds_fixes_iter(int nb)
double a1_init
Definition: opt_triangle.h:124
virtual void change_angle2_initial(double angle)
virtual void change_voisin1(OPT_TRIANGLE *tri)
OT_VECTEUR_3D vec_deplacement_reel
Definition: opt_triangle.h:116
virtual double get_angle2(void)
virtual void change_norme_gradient_deplacement_virtuel(void)
virtual double get_angle1_initial(void)
virtual class OPT_NOEUD * get_noeud1(void)
virtual int get_num(void)
virtual double get_angle3_initial(void)
virtual OT_MATRICE_3D get_jacobien_inverse(void)
virtual void change_angle2(double angle)
virtual class OPT_NOEUD * get_noeud3(void)
virtual void change_norme_gradient_deplacement_reel(void)
virtual void change_voisin3(OPT_TRIANGLE *tri)
int nb_noeuds_fixes_iter
Definition: opt_triangle.h:121
OPT_TRIANGLE * voisin3
Definition: opt_triangle.h:132
virtual int get_nb_noeuds_fixes_iter(void)
virtual void change_angle3(double angle)
OPT_TRIANGLE(class FEM_TRIANGLE3 *fem_tri3, class OPT_NOEUD *noeud1, class OPT_NOEUD *noeud2, class OPT_NOEUD *noeud3)