ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/aster/src/opt_triangle.h
Revision: 1158
Committed: Thu Jun 13 22:18:49 2024 UTC (11 months ago) by francois
Content type: text/plain
File size: 4961 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_triangle.h
15     //####//
16     //####//------------------------------------------------------------
17     //####//------------------------------------------------------------
18     //####// COPYRIGHT 2000-2024
19     //####// jeu 13 jun 2024 11:58:57 EDT
20     //####//------------------------------------------------------------
21     //####//------------------------------------------------------------
22 gervaislavoie 332 #ifndef _OPTTRIANGLE_
23     #define _OPTTRIANGLE_
24    
25    
26    
27 francois 1158
28 gervaislavoie 332 #include "mg_element_maillage.h"
29     #include "mg_segment.h"
30     #include "mg_noeud.h"
31 francois 470 #include "opt_noeud.h"
32 gervaislavoie 332 #include "ot_reference.h"
33    
34    
35 francois 1158 class OPT_TRIANGLE
36 gervaislavoie 332 {
37     public:
38 francois 470
39 gervaislavoie 528 OPT_TRIANGLE(class FEM_TRIANGLE3* fem_tri3,class OPT_NOEUD* noeud1,class OPT_NOEUD* noeud2,class OPT_NOEUD* noeud3);
40 gervaislavoie 332 OPT_TRIANGLE(OPT_TRIANGLE& mdd);
41     virtual ~OPT_TRIANGLE();
42    
43 gervaislavoie 528 virtual class OPT_NOEUD* get_noeud1(void);
44     virtual class OPT_NOEUD* get_noeud2(void);
45     virtual class OPT_NOEUD* get_noeud3(void);
46 gervaislavoie 332
47     virtual unsigned long get_id(void);
48 gervaislavoie 382 virtual void change_normale_unitaire(OT_VECTEUR_3D vec);
49 francois 470
50 francois 1075 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 gervaislavoie 398
57 francois 470 virtual OT_VECTEUR_3D get_normale_unitaire(void); //Enlever?
58    
59 gervaislavoie 392 virtual OT_MATRICE_3D get_jacobien_inverse(void);
60 gervaislavoie 398 virtual OT_MATRICE_3D get_matrice_abc(void);
61    
62 francois 470 virtual OT_MATRICE_3D change_jacobien_inverse(void);
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    
68 gervaislavoie 528 virtual OT_VECTEUR_3D get_vecteur_deplacement_reel(void);
69     virtual void change_vecteur_deplacement_reel(void);
70 francois 470
71 gervaislavoie 528 virtual OT_VECTEUR_3D get_vecteur_sol_deplacement_virtuel(void);
72     virtual void change_vecteur_sol_deplacement_virtuel(void);
73    
74 gervaislavoie 495 virtual double get_norme_gradient_deplacement_reel(void);
75     virtual void change_norme_gradient_deplacement_reel(void);
76 francois 470
77 gervaislavoie 495 virtual double get_norme_gradient_deplacement_virtuel(void);
78     virtual void change_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 gervaislavoie 528 virtual int get_nb_noeuds_fixes_iter(void);
84     virtual void change_nb_noeuds_fixes_iter(int nb);
85    
86 gervaislavoie 332 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 francois 470
105 gervaislavoie 332 protected:
106 francois 470
107     class FEM_TRIANGLE3* fem_triangle3;
108     OPT_NOEUD* opt_noeud1;
109     OPT_NOEUD* opt_noeud2;
110     OPT_NOEUD* opt_noeud3;
111    
112 gervaislavoie 382 OT_VECTEUR_3D normale_unitaire;
113 francois 470 OT_MATRICE_3D dNi_transpose;
114 gervaislavoie 392 OT_MATRICE_3D jacobien_inverse;
115 gervaislavoie 528 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
118 gervaislavoie 495 double norme_gradient_deplacement_reel;
119     double norme_gradient_deplacement_virtuel;
120     int noeuds_fixes_3; // Si noeuds_fixes_3==1, le triangle a 3 noeuds fixes
121 gervaislavoie 528 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 francois 470
123 gervaislavoie 332 int num;
124     double a1_init;
125     double a2_init;
126     double a3_init;
127     double a1;
128     double a2;
129     double a3;
130     OPT_TRIANGLE* voisin1;
131     OPT_TRIANGLE* voisin2;
132     OPT_TRIANGLE* voisin3;
133     };
134    
135 francois 1075 #endif