ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/aster/src/opt_triangle.h
Revision: 1075
Committed: Tue Aug 10 17:02:54 2021 UTC (4 years ago) by francois
Content type: text/plain
File size: 5111 byte(s)
Log Message:
suppression de warning avec le dernier compilateur

File Contents

# Content
1 //------------------------------------------------------------
2 //------------------------------------------------------------
3 // MAGiC
4 // Jean Christophe Cuilli�re et Vincent FRANCOIS
5 // D�partement de G�nie M�canique - UQTR
6 //------------------------------------------------------------
7 // Le projet MAGIC est un projet de recherche du d�partement
8 // de g�nie m�canique de l'Universit� du Qu�bec �
9 // Trois Rivi�res
10 // Les librairies ne peuvent �tre utilis�es sans l'accord
11 // des auteurs (contact : francois@uqtr.ca)
12 //------------------------------------------------------------
13 //------------------------------------------------------------
14 //
15 // mg_triangle.h
16 //
17 //------------------------------------------------------------
18 //------------------------------------------------------------
19 // COPYRIGHT 2000
20 // Version du 02/03/2006 � 11H22
21 //------------------------------------------------------------
22 //------------------------------------------------------------
23 #ifndef _OPTTRIANGLE_
24 #define _OPTTRIANGLE_
25
26 #ifdef WINDOWS_VERSION
27 #ifdef BUILT_DLL_GEOMETRIE
28 #define DLLPORTGEOMETRIE __declspec(dllexport)
29 #else
30 #define DLLPORTGEOMETRIE __declspec(dllimport)
31 #endif
32 #else
33 #define DLLPORTGEOMETRIE
34 #endif
35
36
37 #include "mg_element_maillage.h"
38 #include "mg_segment.h"
39 #include "mg_noeud.h"
40 #include "opt_noeud.h"
41 #include "ot_reference.h"
42
43
44 class DLLPORTGEOMETRIE OPT_TRIANGLE
45 {
46 public:
47
48 OPT_TRIANGLE(class FEM_TRIANGLE3* fem_tri3,class OPT_NOEUD* noeud1,class OPT_NOEUD* noeud2,class OPT_NOEUD* noeud3);
49 OPT_TRIANGLE(OPT_TRIANGLE& mdd);
50 virtual ~OPT_TRIANGLE();
51
52 virtual class OPT_NOEUD* get_noeud1(void);
53 virtual class OPT_NOEUD* get_noeud2(void);
54 virtual class OPT_NOEUD* get_noeud3(void);
55
56 virtual unsigned long get_id(void);
57 virtual void change_normale_unitaire(OT_VECTEUR_3D vec);
58
59 virtual void change_angle1_initial(double angle);
60 virtual void change_angle2_initial(double angle);
61 virtual void change_angle3_initial(double angle);
62 virtual void change_angle1(double angle);
63 virtual void change_angle2(double angle);
64 virtual void change_angle3(double angle);
65
66 virtual OT_VECTEUR_3D get_normale_unitaire(void); //Enlever?
67
68 virtual OT_MATRICE_3D get_jacobien_inverse(void);
69 virtual OT_MATRICE_3D get_matrice_abc(void);
70
71 virtual OT_MATRICE_3D change_jacobien_inverse(void);
72 virtual OT_MATRICE_3D change_matrice_abc(void);
73
74 //virtual OT_MATRICE_3D get_jacobien_inverse_initial(void);
75 //virtual OT_MATRICE_3D get_matrice_abc_initiale(void);
76
77 virtual OT_VECTEUR_3D get_vecteur_deplacement_reel(void);
78 virtual void change_vecteur_deplacement_reel(void);
79
80 virtual OT_VECTEUR_3D get_vecteur_sol_deplacement_virtuel(void);
81 virtual void change_vecteur_sol_deplacement_virtuel(void);
82
83 virtual double get_norme_gradient_deplacement_reel(void);
84 virtual void change_norme_gradient_deplacement_reel(void);
85
86 virtual double get_norme_gradient_deplacement_virtuel(void);
87 virtual void change_norme_gradient_deplacement_virtuel(void);
88
89 virtual int get_noeuds_fixes_3(void);
90 virtual void change_noeuds_fixes_3(int val);
91
92 virtual int get_nb_noeuds_fixes_iter(void);
93 virtual void change_nb_noeuds_fixes_iter(int nb);
94
95 virtual double get_angle1_initial(void);
96 virtual double get_angle2_initial(void);
97 virtual double get_angle3_initial(void);
98 virtual double get_angle1(void);
99 virtual double get_angle2(void);
100 virtual double get_angle3(void);
101
102
103 virtual int get_num(void);
104 virtual void change_num(int val);
105
106 virtual OPT_TRIANGLE* get_voisin1(void);
107 virtual OPT_TRIANGLE* get_voisin2(void);
108 virtual OPT_TRIANGLE* get_voisin3(void);
109 virtual void change_voisin1(OPT_TRIANGLE* tri);
110 virtual void change_voisin2(OPT_TRIANGLE* tri);
111 virtual void change_voisin3(OPT_TRIANGLE* tri);
112
113
114 protected:
115
116 class FEM_TRIANGLE3* fem_triangle3;
117 OPT_NOEUD* opt_noeud1;
118 OPT_NOEUD* opt_noeud2;
119 OPT_NOEUD* opt_noeud3;
120
121 OT_VECTEUR_3D normale_unitaire;
122 OT_MATRICE_3D dNi_transpose;
123 OT_MATRICE_3D jacobien_inverse;
124 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
125 OT_VECTEUR_3D vec_deplacement_reel; // Vecteur contenant les déplacements des noeuds par rapport à leur position initiale
126 OT_VECTEUR_3D vec_sol_deplacement_virtuel; // Vecteur contenant les solutions de déplacement virtuel des noeuds
127 double norme_gradient_deplacement_reel;
128 double norme_gradient_deplacement_virtuel;
129 int noeuds_fixes_3; // Si noeuds_fixes_3==1, le triangle a 3 noeuds fixes
130 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
131
132 int num;
133 double a1_init;
134 double a2_init;
135 double a3_init;
136 double a1;
137 double a2;
138 double a3;
139 OPT_TRIANGLE* voisin1;
140 OPT_TRIANGLE* voisin2;
141 OPT_TRIANGLE* voisin3;
142 };
143
144 #endif