ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/geometrie/src/fem_noeud.h
Revision: 414
Committed: Mon Aug 19 16:27:06 2013 UTC (11 years, 8 months ago) by francois
Content type: text/plain
File size: 4437 byte(s)
Log Message:
ajout d'une methode de recuperation des equivalences entre les numero FEM et les numeros gmsh.
Ajout d'une méthode pour verifier qu'une entité fait partie de la toplogogie sous jacente d'une autre.

File Contents

# User Rev Content
1 francois 283 //------------------------------------------------------------
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     // fem_noeud.h
16     //
17     //------------------------------------------------------------
18     //------------------------------------------------------------
19     // COPYRIGHT 2000
20     // Version du 02/03/2006 � 11H22
21     //------------------------------------------------------------
22     //------------------------------------------------------------
23     #ifndef _FEMNOEUD_
24     #define _FEMNOEUD_
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     #include "fem_element_maillage.h"
37     #include "tpl_liste_entite.h"
38     #include "ot_boite_3D.h"
39    
40    
41     const unsigned int IDFEM_NOEUD=1000;
42    
43    
44    
45     class DLLPORTGEOMETRIE FEM_NOEUD : public FEM_ELEMENT_MAILLAGE
46     {
47     public:
48     FEM_NOEUD(unsigned long num,class MG_NOEUD* noeud);
49     FEM_NOEUD(MG_NOEUD* noeud);
50     FEM_NOEUD(class MG_ELEMENT_MAILLAGE* mai,double x,double y,double z);
51     FEM_NOEUD(unsigned long num,MG_ELEMENT_MAILLAGE* mai,double x,double y,double z);
52     FEM_NOEUD(unsigned long num,class MG_ELEMENT_TOPOLOGIQUE* topo,double x,double y,double z);
53 francois 378 FEM_NOEUD(class MG_ELEMENT_TOPOLOGIQUE* topo,double x,double y,double z);
54 francois 283 FEM_NOEUD(FEM_NOEUD& mdd);
55     virtual ~FEM_NOEUD();
56 francois 414
57     virtual void change_topologie_null(MG_ELEMENT_TOPOLOGIQUE* ele);
58 francois 283
59     virtual int get_type_entite();
60     virtual BOITE_3D get_boite_3D(void);
61    
62     virtual double get_x(double coef=0.);
63     virtual double get_y(double coef=0.);
64     virtual double get_z(double coef=0.);
65     virtual double get_dx(double coef=1.);
66     virtual double get_dy(double coef=1.);
67     virtual double get_dz(double coef=1.);
68 francois 325 virtual double get_rx(void);
69     virtual double get_ry(void);
70     virtual double get_rz(void);
71 francois 283 virtual double* get_coord(void);
72    
73     virtual FEM_NOEUD* dupliquer(FEM_MAILLAGE *femmai,long decalage);
74    
75    
76     virtual void change_x(double xx);
77     virtual void change_y(double yy);
78     virtual void change_z(double zz);
79     virtual void change_dx(double xx);
80     virtual void change_dy(double yy);
81     virtual void change_dz(double zz);
82 francois 325 virtual void change_rx(double xx);
83     virtual void change_ry(double yy);
84     virtual void change_rz(double zz);
85 francois 283 virtual void change_coord(double *coo);
86    
87     int get_numero(void);
88     void change_numero(int num);
89     int get_numero_opt(void);
90     void change_numero_opt(int num);
91    
92     virtual int get_dimension(void);
93    
94     virtual void enregistrer(std::ostream& o);
95 francois 375 virtual void change_solution(double val,int num=0);
96     virtual double get_solution(int num=0);
97 francois 283
98 francois 410 // virtual int get_etat(void);
99     // virtual void change_etat(int num);
100 francois 283
101    
102 francois 309 TPL_LISTE_ENTITE<class FEM_ELEMENT1*> *get_lien_element1(void);
103     TPL_LISTE_ENTITE<class FEM_ELEMENT1*> *get_lien_petit_element1(void);
104 francois 283
105 francois 309 TPL_LISTE_ENTITE<class FEM_ELEMENT2*> *get_lien_element2(void);
106     TPL_LISTE_ENTITE<class FEM_ELEMENT2*> *get_lien_petit_element2(void);
107 francois 283
108 francois 309 TPL_LISTE_ENTITE<class FEM_ELEMENT3*> *get_lien_element3(void);
109     TPL_LISTE_ENTITE<class FEM_ELEMENT3*> *get_lien_petit_element3(void);
110 francois 283
111     protected:
112     double xyz[3];
113     double dxyz[3];
114 francois 325 double rxyz[3];
115 francois 283 int numero;
116     int numero_opt;
117 francois 375 double solution[MAX_TYPE_SOLUTION];
118 francois 283 int activedeplacement1;
119     int activedeplacement2;
120     int activedeplacement3;
121 francois 339 int activereaction1;
122     int activereaction2;
123     int activereaction3;
124 francois 283
125 francois 410 // int etat;
126 francois 339
127 francois 283
128 francois 309 TPL_LISTE_ENTITE<class FEM_ELEMENT1*> element1;
129     TPL_LISTE_ENTITE<class FEM_ELEMENT1*> petit_element1;
130 francois 283
131 francois 309 TPL_LISTE_ENTITE<class FEM_ELEMENT2*> element2;
132     TPL_LISTE_ENTITE<class FEM_ELEMENT2*> petit_element2;
133 francois 283
134 francois 309 TPL_LISTE_ENTITE<class FEM_ELEMENT3*> element3;
135     TPL_LISTE_ENTITE<class FEM_ELEMENT3*> petit_element3;
136 francois 283
137     };
138    
139    
140    
141    
142    
143    
144     #endif
145    
146