ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/geometrie/src/fem_element3.h
Revision: 638
Committed: Mon Jan 26 21:56:20 2015 UTC (10 years, 3 months ago) by francois
Content type: text/plain
File size: 3150 byte(s)
Log Message:
ajout d'une méthode qui renvoit le degre max des fonctions d'interpolation et changement de nom de la fonction qui renvoie le nombre de fonction d'interpolation (ajout d'un get pour uniformiser)

File Contents

# User Rev Content
1 francois 283 //------------------------------------------------------------
2     //------------------------------------------------------------
3     // MAGiC
4     // Jean Christophe Cuilli�e et Vincent FRANCOIS
5     // D�artement de G�ie M�anique - UQTR
6     //------------------------------------------------------------
7     // Le projet MAGIC est un projet de recherche du d�artement
8     // de g�ie m�anique de l'Universit�du Qu�ec �
9     // Trois Rivi�es
10     // Les librairies ne peuvent �re utilis�s sans l'accord
11     // des auteurs (contact : francois@uqtr.ca)
12     //------------------------------------------------------------
13     //------------------------------------------------------------
14     //
15     // mg_tetra.h
16     //
17     //------------------------------------------------------------
18     //------------------------------------------------------------
19     // COPYRIGHT 2000
20     // Version du 02/03/2006 �11H22
21     //------------------------------------------------------------
22     //------------------------------------------------------------
23 francois 399 #ifndef _FEMELEMENT3_
24     #define _FEMELEMENT3_
25 francois 283
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 "fem_element_maillage.h"
38 francois 481 #include "ot_boite_3d.h"
39 francois 339 #include <vector>
40 francois 283 //const unsigned int IDFEM_SEGMENT=1001;
41    
42    
43    
44 francois 309 class DLLPORTGEOMETRIE FEM_ELEMENT3 : public FEM_ELEMENT_MAILLAGE
45 francois 283 {
46     public:
47 francois 309 FEM_ELEMENT3(unsigned long num,class MG_ELEMENT_MAILLAGE* mai);
48 francois 378 FEM_ELEMENT3(unsigned long num,class MG_ELEMENT_TOPOLOGIQUE* topo);
49     FEM_ELEMENT3(unsigned long num,class MG_ELEMENT_TOPOLOGIQUE* topo,class MG_ELEMENT_MAILLAGE* mai);
50 francois 309 FEM_ELEMENT3(class MG_ELEMENT_MAILLAGE* mai);
51 francois 378 FEM_ELEMENT3(class MG_ELEMENT_TOPOLOGIQUE* topo);
52     FEM_ELEMENT3(class MG_ELEMENT_TOPOLOGIQUE* topo,class MG_ELEMENT_MAILLAGE* mai);
53    
54 francois 309 FEM_ELEMENT3(FEM_ELEMENT3& mdd);
55     virtual ~FEM_ELEMENT3();
56 francois 283 virtual int get_type_entite(void)=0;
57     virtual int get_nb_fem_noeud(void)=0;
58     virtual class FEM_NOEUD* get_fem_noeud(int num)=0;
59    
60 francois 637 virtual int get_nb_pt_gauss(int degre)=0;
61     virtual void get_pt_gauss(int degre,int num,double &w,double *uvw)=0;
62 francois 283
63 francois 638 virtual int get_nb_fonction_interpolation(void)=0;
64     virtual int get_degremax_fonction_interpolation(void)=0;
65 francois 283 virtual double get_fonction_interpolation(int num,double *uv)=0;
66     virtual double get_fonction_derive_interpolation(int num,int numvariable,double *uv)=0;
67     virtual double get_jacobien(double* jac,double *uv,int& li,int& col,double unite=1.)=0;
68     virtual void get_inverse_jacob(double* jac,double *uv,double unite=1.)=0;
69 francois 635 virtual bool get_param_element_fini(double *xyz,double *uvw);
70 francois 628 virtual void get_interpolation_xyz(double *uvw,double *xyz);
71 francois 283
72    
73     virtual void change_noeud(int num,FEM_NOEUD* noeud)=0;
74     virtual BOITE_3D& get_boite_3D(void)=0;
75     virtual int get_dimension(void)=0;
76     virtual void enregistrer(std::ostream& o)=0;
77    
78     virtual void extrapoler_solution_noeud(void);
79 francois 405
80 francois 339
81 francois 406 virtual int verifie_validite_decoupage_xfem(double *vol=NULL)=0;
82 francois 339
83 francois 405
84 francois 283 protected:
85 francois 399
86 francois 339
87 francois 283 };
88    
89    
90    
91    
92    
93    
94     #endif
95    
96    
97