MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
xfem_triangle3.cpp
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 //####// xfem_triangle3.cpp
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:53 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 
23 
24 #include "gestionversion.h"
25 #include "xfem_triangle3.h"
26 #include "fem_tetra4.h"
27 #include "fem_noeud.h"
28 #include "mg_element_maillage.h"
29 #include "fem_maillage.h"
30 
31 
32 XFEM_TRIANGLE3::XFEM_TRIANGLE3(unsigned long num,class FEM_ELEMENT_MAILLAGE *mai,class MG_ELEMENT_TOPOLOGIQUE *mgtopo,class FEM_NOEUD** tabnoeud):XFEM_ELEMENT2(num,mai,mgtopo),FEM_TEMPLATE_ELEMENT<3>(tabnoeud)
33 {
34 femmai->ajouter_xfem(this);
35 }
36 
38 {
39 femmai->ajouter_xfem(this);
40 }
41 
43 {
44 }
45 
47 {
48 femmai->supprimer_xfem(this);
49 }
50 
51 
52 
54 {
55  return IDXFEM_TRIANGLE3;
56 }
57 
59 {
60  return 2;
61 }
62 
63 
65 {
67 }
68 
70 {
72 }
73 
75 {
77 }
78 
79 
81 {
83 }
84 
85 void XFEM_TRIANGLE3::enregistrer(std::ostream& o,double version)
86 {
87  if (get_lien_topologie()!=NULL) o << "%" << get_id() << "=XFEM_TRIANGLE3($"<< femmai->get_id() << ",$" << topo->get_id() << ",$" << tab[0]->get_id() << ",$" << tab[1]->get_id() << ",$" << tab[2]->get_id() << "," << etat << ");" << std::endl;
88  else o << "%" << get_id() << "=XFEM_TRIANGLE3($"<< femmai->get_id() << ",NULL,$" << tab[0]->get_id() << ",$" << tab[1]->get_id() << ",$" << tab[2]->get_id() << "," << etat << ");" << std::endl;
89 
90 }
91 
92 
93 
94 
96 {
97 return 3;
98 }
100 {
101 double val;
102  switch (num)
103  {
104  case 1:
105  val=1-uv[0]-uv[1];
106  break;
107  case 2:
108  val=uv[0];
109  break;
110  case 3:
111  val=uv[1];
112  break;
113  }
114  return val;
115 }
116 double XFEM_TRIANGLE3::get_fonction_derive_interpolation(int num,int num_variable,double *uv)
117 {
118 double val;
119 
120  switch (num)
121  {
122  case 1:
123  switch (num_variable)
124  {
125  case 1:
126  val=-1;
127  break;
128  case 2:
129  val=-1;
130  break;
131  } break;
132  case 2:
133  switch (num_variable)
134  {
135  case 1:
136  val=1;
137  break;
138  case 2:
139  val=0;
140  break;
141  }break;
142  case 3:
143  switch (num_variable)
144  {
145  case 1:
146  val=0;
147  break;
148  case 2:
149  val=1;
150  break;
151  }break;
152 
153  }
154  return val;
155 }
156 double XFEM_TRIANGLE3::get_jacobien(double* jac,double *uv,int& li,int& col,double unite)
157 {
158 return 0.;
159 }
160 
161 void XFEM_TRIANGLE3::get_inverse_jacob(double* j,double *uv,double unite)
162 {
163 }
XFEM_TRIANGLE3::change_noeud
virtual void change_noeud(int num, FEM_NOEUD *noeud)
Definition: xfem_triangle3.cpp:74
FEM_ELEMENT_MAILLAGE::supprimer_xfem
virtual void supprimer_xfem(XFEM_ELEMENT_MAILLAGE *xele)
Definition: fem_element_maillage.cpp:134
XFEM_TRIANGLE3::enregistrer
virtual void enregistrer(std::ostream &o, double version)
Definition: xfem_triangle3.cpp:85
XFEM_ELEMENT2
Definition: xfem_element2.h:34
gestionversion.h
XFEM_TRIANGLE3::get_dimension
virtual int get_dimension(void)
Definition: xfem_triangle3.cpp:58
XFEM_ELEMENT_MAILLAGE::topo
MG_ELEMENT_TOPOLOGIQUE * topo
Definition: xfem_element_maillage.h:57
FEM_TEMPLATE_ELEMENT::get_boite_3D
virtual BOITE_3D & get_boite_3D(void)
Definition: fem_template_element.cpp:127
MG_IDENTIFICATEUR::get_id
unsigned long get_id()
Definition: mg_identificateur.cpp:53
fem_maillage.h
fem_noeud.h
mg_element_maillage.h
xfem_triangle3.h
XFEM_ELEMENT_MAILLAGE::femmai
FEM_ELEMENT_MAILLAGE * femmai
Definition: xfem_element_maillage.h:56
FEM_TEMPLATE_ELEMENT::get_fem_noeud
virtual FEM_NOEUD * get_fem_noeud(int num)
Definition: fem_template_element.cpp:100
MG_ELEMENT_TOPOLOGIQUE
Definition: mg_element_topologique.h:51
XFEM_TRIANGLE3::XFEM_TRIANGLE3
XFEM_TRIANGLE3(unsigned long num, class FEM_ELEMENT_MAILLAGE *mai, class MG_ELEMENT_TOPOLOGIQUE *mgtopo, class FEM_NOEUD **tabnoeud)
Definition: xfem_triangle3.cpp:32
XFEM_TRIANGLE3::get_nb_fem_noeud
virtual int get_nb_fem_noeud(void)
Definition: xfem_triangle3.cpp:64
FEM_ELEMENT_MAILLAGE
Definition: fem_element_maillage.h:35
FEM_TEMPLATE_ELEMENT::change_noeud
virtual void change_noeud(int num, FEM_NOEUD *noeud)
Definition: fem_template_element.cpp:106
XFEM_TRIANGLE3::get_inverse_jacob
virtual void get_inverse_jacob(double *jac, double *uv, double unite=1.)
Definition: xfem_triangle3.cpp:161
XFEM_TRIANGLE3::get_type_entite
virtual int get_type_entite(void)
Definition: xfem_triangle3.cpp:53
FEM_ELEMENT_MAILLAGE::ajouter_xfem
virtual void ajouter_xfem(class XFEM_ELEMENT_MAILLAGE *xele)
Definition: fem_element_maillage.cpp:129
XFEM_TRIANGLE3::get_boite_3D
virtual BOITE_3D & get_boite_3D(void)
Definition: xfem_triangle3.cpp:80
XFEM_TRIANGLE3::~XFEM_TRIANGLE3
virtual ~XFEM_TRIANGLE3()
Definition: xfem_triangle3.cpp:46
XFEM_TRIANGLE3::nb_fonction_interpolation
virtual int nb_fonction_interpolation(void)
Definition: xfem_triangle3.cpp:95
FEM_NOEUD
Definition: fem_noeud.h:35
XFEM_TRIANGLE3::get_fonction_derive_interpolation
virtual double get_fonction_derive_interpolation(int num, int numvariable, double *uv)
Definition: xfem_triangle3.cpp:116
XFEM_ELEMENT_MAILLAGE::etat
int etat
Definition: xfem_element_maillage.h:59
BOITE_3D
Definition: ot_boite_3d.h:27
FEM_TEMPLATE_ELEMENT::get_nb_fem_noeud
virtual int get_nb_fem_noeud(void)
Definition: fem_template_element.cpp:94
fem_tetra4.h
XFEM_ELEMENT_MAILLAGE::get_lien_topologie
virtual class MG_ELEMENT_TOPOLOGIQUE * get_lien_topologie(void)
Definition: xfem_element_maillage.cpp:91
FEM_TEMPLATE_ELEMENT< 3 >::tab
FEM_NOEUD * tab[N]
Definition: fem_template_element.h:57
XFEM_TRIANGLE3
Definition: xfem_triangle3.h:34
XFEM_TRIANGLE3::get_jacobien
virtual double get_jacobien(double *jac, double *uv, int &li, int &col, double unite=1.)
Definition: xfem_triangle3.cpp:156
XFEM_TRIANGLE3::get_fonction_interpolation
virtual double get_fonction_interpolation(int num, double *uv)
Definition: xfem_triangle3.cpp:99
IDXFEM_TRIANGLE3
const unsigned int IDXFEM_TRIANGLE3
Definition: xfem_triangle3.h:31
XFEM_TRIANGLE3::get_fem_noeud
virtual FEM_NOEUD * get_fem_noeud(int num)
Definition: xfem_triangle3.cpp:69
FEM_TEMPLATE_ELEMENT
Definition: fem_template_element.h:35