MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
mailleur_adaptatif.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 //####// mailleur_adaptatif.cpp
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:55 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 
23 
24 #include "gestionversion.h"
25 #include "mailleur_adaptatif.h"
26 #include "mg_solution.h"
27 #include "mg_maillage.h"
28 #include "mg_gestionnaire.h"
29 #include "fct_taille.h"
30 #include "mailleur0d.h"
31 #include "mailleur1d.h"
32 #include "mailleur2d.h"
33 #include "mailleur3d.h"
34 #include <math.h>
35 
36 #define DETRUIT 2000
37 #define NONDETRUIT 3000
38 
39 
40 MAILLEUR_ADAPTATIF::MAILLEUR_ADAPTATIF(MG_MAILLAGE* mai,MG_MAILLAGE* nvmai,FCT_TAILLE* carte,double coef):MAILLEUR(false),mg_maillage(mai),metrique(carte),limite(coef),nv_maillage(nvmai),activelog(0)
41 {
42 }
43 
45 {
46 }
47 
49 {
50 affiche((char*)" Adaptation de maillage");
51 char mess[255];
52 sprintf(mess," Destruction des mailles ne respectant pas la carte de taille a %.2f %%",limite*100);
53 affiche(mess);
54 LISTE_MG_NOEUD::iterator itnoeud;
55 for (MG_NOEUD* noeud=mg_maillage->get_premier_noeud(itnoeud);noeud;noeud=mg_maillage->get_suivant_noeud(itnoeud))
56  noeud->change_nouveau_numero(NONDETRUIT);
57 LISTE_MG_SEGMENT::iterator itsegment;
58 for (MG_SEGMENT* seg=mg_maillage->get_premier_segment(itsegment);seg;seg=mg_maillage->get_suivant_segment(itsegment))
59  seg->change_nouveau_numero(NONDETRUIT);
60 LISTE_MG_TRIANGLE::iterator ittriangle;
61 for (MG_TRIANGLE* tri=mg_maillage->get_premier_triangle(ittriangle);tri;tri=mg_maillage->get_suivant_triangle(ittriangle))
62  tri->change_nouveau_numero(NONDETRUIT);
63 LISTE_MG_TETRA::iterator ittetra;
64 for (MG_TETRA* tet=mg_maillage->get_premier_tetra(ittetra);tet;tet=mg_maillage->get_suivant_tetra(ittetra))
65  tet->change_nouveau_numero(NONDETRUIT);
66 
67 
68 MG_SOLUTION* sol=mg_maillage->calculer_carte_taille_reelle((char*)"temp.soltmp");
69 sol->active_solution(0);
70 for (MG_NOEUD* noeud=mg_maillage->get_premier_noeud(itnoeud);noeud;noeud=mg_maillage->get_suivant_noeud(itnoeud))
71  {
72  double *xyz=noeud->get_coord();
73  double tenseur[9];
74  metrique->evaluer(xyz,tenseur);
75  double val=1./sqrt(tenseur[0]);
76  double err=fabs((val-noeud->get_solution())/noeud->get_solution());
77  if (err>limite)
78  {
79  int nb_tetra=noeud->get_lien_tetra()->get_nb();
80  if (nb_tetra!=0)
81  {
82  for (int j=0;j<nb_tetra;j++)
83  noeud->get_lien_tetra()->get(j)->change_nouveau_numero(DETRUIT);
84  }
85  int nb_tri=noeud->get_lien_triangle()->get_nb();
86  if (nb_tri!=0)
87  {
88  for (int j=0;j<nb_tri;j++)
89  if (noeud->get_lien_triangle()->get(j)->get_lien_topologie()->get_dimension()==2)
90  noeud->get_lien_triangle()->get(j)->change_nouveau_numero(DETRUIT);
91  }
92  int nb_seg=noeud->get_lien_segment()->get_nb();
93  if (nb_seg!=0)
94  {
95  for (int j=0;j<nb_seg;j++)
96  if (noeud->get_lien_segment()->get(j)->get_lien_topologie()->get_dimension()==1)
97  noeud->get_lien_segment()->get(j)->change_nouveau_numero(DETRUIT);
98  }
99 
100  }
101  }
102 delete sol;
103 for (MG_NOEUD* noeud=mg_maillage->get_premier_noeud(itnoeud);noeud;noeud=mg_maillage->get_suivant_noeud(itnoeud))
104  {
105  if (noeud->get_lien_topologie()->get_dimension()==1)
106  {
107  int nb_seg_sur_arete=0;
108  int nb_seg=noeud->get_lien_segment()->get_nb();
109  for (int j=0;j<nb_seg;j++)
110  if ((noeud->get_lien_segment()->get(j)->get_lien_topologie()->get_dimension()==1) &&
111  (noeud->get_lien_segment()->get(j)->get_nouveau_numero()==NONDETRUIT))
112  nb_seg_sur_arete++;
113 
114  if (nb_seg_sur_arete==0)
115  {
116  int nb_tri=noeud->get_lien_triangle()->get_nb();
117  for (int j=0;j<nb_tri;j++)
118  if (noeud->get_lien_triangle()->get(j)->get_lien_topologie()->get_dimension()==2)
119  noeud->get_lien_triangle()->get(j)->change_nouveau_numero(DETRUIT);
120  int nb_tetra=noeud->get_lien_tetra()->get_nb();
121  for (int j=0;j<nb_tetra;j++)
122  noeud->get_lien_tetra()->get(j)->change_nouveau_numero(DETRUIT);
123  }
124  }
125  if (noeud->get_lien_topologie()->get_dimension()==2)
126  {
127  int nb_tri_sur_face=0;
128  int nb_tri=noeud->get_lien_triangle()->get_nb();
129  for (int j=0;j<nb_tri;j++)
130  if ((noeud->get_lien_triangle()->get(j)->get_lien_topologie()->get_dimension()==2) &&
131  (noeud->get_lien_triangle()->get(j)->get_nouveau_numero()==NONDETRUIT) )
132  nb_tri_sur_face++;
133 
134  if (nb_tri_sur_face==0)
135  {
136  int nb_tetra=noeud->get_lien_tetra()->get_nb();
137  for (int j=0;j<nb_tetra;j++)
138  noeud->get_lien_tetra()->get(j)->change_nouveau_numero(DETRUIT);
139  }
140  }
141 }
142 int nb_sommet=mg_maillage->get_mg_geometrie()->get_nb_mg_sommet();
143 for (int i=0;i<nb_sommet;i++)
144  {
146  int nb_noeud=som->get_lien_maillage()->get_nb();
147  for (int j=0;j<nb_noeud;j++)
148  {
149  MG_NOEUD* noeud=(MG_NOEUD*)som->get_lien_maillage()->get(j);
150  if (mg_maillage->get_mg_noeudid(noeud->get_id())==NULL) continue;
151  if (noeud->get_nouveau_numero()==DETRUIT) continue;
152  MG_NOEUD* nv_noeud=nv_maillage->ajouter_mg_noeud(som,noeud->get_x(),noeud->get_y(),noeud->get_z(),MAGIC::ORIGINE::IMPOSE);
153  noeud->change_element_reference(nv_noeud);
154  nv_noeud->change_element_reference(noeud);
155  }
156 
157  }
158 affiche((char*)" Adaptation maillage 0D");
160 m0d.adapte();
161 affiche((char*)" Adaptation maillage 1D");
162 int nb_arete=mg_maillage->get_mg_geometrie()->get_nb_mg_arete();
163 for (int i=0;i<nb_arete;i++)
164  {
166  int nb_seg=arete->get_lien_maillage()->get_nb();
167  for (int j=0;j<nb_seg;j++)
168  {
169  MG_SEGMENT* seg=(MG_SEGMENT*)arete->get_lien_maillage()->get(j);
170  if (mg_maillage->get_mg_segmentid(seg->get_id())==NULL) continue;
171  if (seg->get_nouveau_numero()==DETRUIT) continue;
174  if (noeud1==NULL)
175  {
177  noeud1->change_element_reference(seg->get_noeud1());
178  seg->get_noeud1()->change_element_reference(noeud1);
179  }
180  if (noeud2==NULL)
181  {
183  noeud2->change_element_reference(seg->get_noeud2());
184  seg->get_noeud2()->change_element_reference(noeud2);
185  }
187  }
190  m1d.adapte();
191  }
192 affiche((char*)" Adaptation maillage 2D");
194 for (int i=0;i<nb_face;i++)
195  {
197  int nb_tri=face->get_lien_maillage()->get_nb();
199  for (int j=0;j<nb_tri;j++)
200  {
201  MG_TRIANGLE* tri=(MG_TRIANGLE*)face->get_lien_maillage()->get(j);
202  if (mg_maillage->get_mg_triangleid(tri->get_id())==NULL) continue;
203  if (tri->get_nouveau_numero()==DETRUIT) continue;
204  MG_NOEUD* noeud1=tri->get_noeud1();
205  MG_NOEUD* noeud2=tri->get_noeud2();
206  MG_NOEUD* noeud3=tri->get_noeud3();
207  double *xyz1,*xyz2,*xyz3;
208  xyz1=noeud1->get_coord();
209  xyz2=noeud2->get_coord();
210  xyz3=noeud3->get_coord();
211  MG_NOEUD* noeudtmp1=new MG_NOEUD(NULL,xyz1[0],xyz1[1],xyz1[2],MAGIC::ORIGINE::IMPOSE);
212  MG_NOEUD* noeudtmp2=new MG_NOEUD(NULL,xyz2[0],xyz2[1],xyz2[2],MAGIC::ORIGINE::IMPOSE);
213  MG_NOEUD* noeudtmp3=new MG_NOEUD(NULL,xyz3[0],xyz3[1],xyz3[2],MAGIC::ORIGINE::IMPOSE);
214  MG_TRIANGLE* tritmp=new MG_TRIANGLE(NULL,noeudtmp1,noeudtmp2,noeudtmp3,NULL,NULL,NULL,MAGIC::ORIGINE::IMPOSE);
215  lsttri.ajouter(tritmp);
216  }
219  m2d.maille(face,NULL,&lsttri);
220  nb_tri=lsttri.get_nb();
221  for (int j=0;j<nb_tri;j++)
222  {
223  MG_TRIANGLE* tri=lsttri.get(0);
224  MG_NOEUD* noeud1=tri->get_noeud1();
225  MG_NOEUD* noeud2=tri->get_noeud2();
226  MG_NOEUD* noeud3=tri->get_noeud3();
227  lsttri.supprimer(tri);
228  delete tri;
229  delete noeud1;
230  delete noeud2;
231  delete noeud3;
232  }
233 
234  }
235 affiche((char*)" Adaptation maillage 3D");
237 for (int i=0;i<nb_vol;i++)
238  {
240  int nb_tet=vol->get_lien_maillage()->get_nb();
242  for (int j=0;j<nb_tet;j++)
243  {
244  MG_TETRA* tet=(MG_TETRA*)vol->get_lien_maillage()->get(j);
245  if (mg_maillage->get_mg_tetraid(tet->get_id())==NULL) continue;
246  if (tet->get_nouveau_numero()==DETRUIT) continue;
247  MG_NOEUD* noeud1=tet->get_noeud1();
248  MG_NOEUD* noeud2=tet->get_noeud2();
249  MG_NOEUD* noeud3=tet->get_noeud3();
250  MG_NOEUD* noeud4=tet->get_noeud4();
251  double *xyz1,*xyz2,*xyz3,*xyz4;
252  xyz1=noeud1->get_coord();
253  xyz2=noeud2->get_coord();
254  xyz3=noeud3->get_coord();
255  xyz4=noeud4->get_coord();
256  MG_NOEUD* noeudtmp1=new MG_NOEUD(NULL,xyz1[0],xyz1[1],xyz1[2],MAGIC::ORIGINE::IMPOSE);
257  MG_NOEUD* noeudtmp2=new MG_NOEUD(NULL,xyz2[0],xyz2[1],xyz2[2],MAGIC::ORIGINE::IMPOSE);
258  MG_NOEUD* noeudtmp3=new MG_NOEUD(NULL,xyz3[0],xyz3[1],xyz3[2],MAGIC::ORIGINE::IMPOSE);
259  MG_NOEUD* noeudtmp4=new MG_NOEUD(NULL,xyz4[0],xyz4[1],xyz4[2],MAGIC::ORIGINE::IMPOSE);
260  MG_TETRA* tetra=new MG_TETRA(NULL,noeudtmp1,noeudtmp2,noeudtmp3,noeudtmp4,NULL,NULL,NULL,NULL,MAGIC::ORIGINE::IMPOSE);
261  lsttet.ajouter(tetra);
262  }
266  if (activelog) m3d.active_log(nomlog);
267  m3d.maille(vol,NULL,&lsttet);
268  nb_tet=lsttet.get_nb();
269  for (int j=0;j<nb_tet;j++)
270  {
271  MG_TETRA* tet=lsttet.get(0);
272  MG_NOEUD* noeud1=tet->get_noeud1();
273  MG_NOEUD* noeud2=tet->get_noeud2();
274  MG_NOEUD* noeud3=tet->get_noeud3();
275  MG_NOEUD* noeud4=tet->get_noeud4();
276  lsttet.supprimer(tet);
277  delete tet;
278  delete noeud1;
279  delete noeud2;
280  delete noeud3;
281  delete noeud4;
282  }
283 
284  }
285 
286 affiche((char*)" Fin de l'adaptation de maillage");
287 return OK;
288 }
289 
290 
291 
293 {
294 activelog=1;
295 nomlog=nomfile;
296 }
297 
299 {
300 activelog=0;
301 }
302 
303 
MAILLEUR3D::active_log
virtual void active_log(char *nomfile)
Definition: mailleur3d.cpp:453
MG_SEGMENT
Definition: mg_segment.h:38
MG_TETRA::get_noeud2
virtual MG_NOEUD * get_noeud2(void)
Definition: mg_tetra.cpp:148
MG_MAILLAGE::get_premier_noeud
MG_NOEUD * get_premier_noeud(LISTE_MG_NOEUD::iterator &it)
Definition: mg_maillage.cpp:548
fct_taille.h
gestionversion.h
MG_ELEMENT_MAILLAGE::get_element_reference
virtual MG_ELEMENT_MAILLAGE * get_element_reference(void)
Definition: mg_element_maillage.cpp:97
MAGIC_AFFICHE::active_affichage
virtual void active_affichage(fonction_affiche *fonc)
Definition: magic_affiche.cpp:49
MAILLEUR_ADAPTATIF::activelog
int activelog
Definition: mailleur_adaptatif.h:45
MG_MAILLAGE::ajouter_mg_segment
MG_SEGMENT * ajouter_mg_segment(MG_ELEMENT_TOPOLOGIQUE *topo, class MG_NOEUD *mgnoeud1, class MG_NOEUD *mgnoeud2, int origine, double longue=0.0, unsigned long num=0)
Definition: mg_maillage.cpp:565
mg_gestionnaire.h
MG_SEGMENT::get_noeud2
virtual MG_NOEUD * get_noeud2(void)
Definition: mg_segment.cpp:113
mailleur2d.h
MAILLEUR_ADAPTATIF::metrique
FCT_TAILLE * metrique
Definition: mailleur_adaptatif.h:43
MG_NOEUD::get_z
virtual double get_z(void)
Definition: mg_noeud.cpp:87
MG_IDENTIFICATEUR::get_id
unsigned long get_id()
Definition: mg_identificateur.cpp:53
MG_TETRA::get_noeud1
virtual MG_NOEUD * get_noeud1(void)
Definition: mg_tetra.cpp:143
MAILLEUR_ADAPTATIF::desactive_log
void desactive_log(void)
Definition: mailleur_adaptatif.cpp:298
MG_GEOMETRIE::get_nb_mg_arete
unsigned int get_nb_mg_arete(void)
Definition: mg_geometrie.cpp:813
MG_MAILLAGE::get_premier_tetra
MG_TETRA * get_premier_tetra(LISTE_MG_TETRA::iterator &it)
Definition: mg_maillage.cpp:1374
MG_MAILLAGE::get_mg_segmentid
MG_SEGMENT * get_mg_segmentid(unsigned long num)
Definition: mg_maillage.cpp:595
MG_ELEMENT_MAILLAGE::change_element_reference
virtual void change_element_reference(MG_ELEMENT_MAILLAGE *ele)
Definition: mg_element_maillage.cpp:102
MAILLEUR_ADAPTATIF::nomlog
char * nomlog
Definition: mailleur_adaptatif.h:46
MAILLEUR3D::maille
virtual int maille(MG_GROUPE_TOPOLOGIQUE *mggt=NULL)
Definition: mailleur3d.cpp:55
MG_SOLUTION
Definition: mg_solution.h:46
MAGIC_AFFICHE::affiche
virtual void affiche(char *mess)
Definition: magic_affiche.cpp:43
MG_GEOMETRIE::get_mg_sommet
MG_SOMMET * get_mg_sommet(unsigned int num)
Definition: mg_geometrie.cpp:539
OK
const int OK
Definition: mg_definition.h:38
MG_TRIANGLE
Definition: mg_triangle.h:38
FCT_TAILLE
Definition: fct_taille.h:30
MG_VOLUME
Definition: mg_volume.h:33
MG_MAILLAGE::get_premier_segment
MG_SEGMENT * get_premier_segment(LISTE_MG_SEGMENT::iterator &)
Definition: mg_maillage.cpp:630
MAILLEUR3D
Definition: mailleur3d.h:51
MAILLEUR::pas
int pas
Definition: mailleur.h:56
MG_TETRA
Definition: mg_tetra.h:37
MAILLEUR2D
Definition: mailleur2d.h:49
MAILLEUR1D
Definition: mailleur1d.h:36
MAGIC_AFFICHE::affiche2
fonction_affiche * affiche2
Definition: magic_affiche.h:41
MAILLEUR0D
Definition: mailleur0d.h:34
MAILLEUR_ADAPTATIF::maille
int maille(class MG_GROUPE_TOPOLOGIQUE *mggt=NULL)
Definition: mailleur_adaptatif.cpp:48
MG_ELEMENT_TOPOLOGIQUE::get_lien_maillage
virtual TPL_SET< MG_ELEMENT_MAILLAGE * > * get_lien_maillage(void)
Definition: mg_element_topologique.cpp:62
MG_MAILLAGE::get_suivant_tetra
MG_TETRA * get_suivant_tetra(LISTE_MG_TETRA::iterator &it)
Definition: mg_maillage.cpp:1382
MG_MAILLAGE::calculer_carte_taille_reelle
class MG_SOLUTION * calculer_carte_taille_reelle(char *nomfichier)
Definition: mg_maillage.cpp:2629
MAILLEUR_ADAPTATIF::~MAILLEUR_ADAPTATIF
~MAILLEUR_ADAPTATIF()
Definition: mailleur_adaptatif.cpp:44
MG_ELEMENT_MAILLAGE::get_nouveau_numero
virtual int get_nouveau_numero(void)
Definition: mg_element_maillage.cpp:81
MG_MAILLAGE::get_premier_triangle
MG_TRIANGLE * get_premier_triangle(LISTE_MG_TRIANGLE::iterator &it)
Definition: mg_maillage.cpp:912
MG_SEGMENT::get_noeud1
virtual MG_NOEUD * get_noeud1(void)
Definition: mg_segment.cpp:108
MAILLEUR_ADAPTATIF::active_log
void active_log(char *nomfile)
Definition: mailleur_adaptatif.cpp:292
MG_NOEUD
Definition: mg_noeud.h:41
TPL_SET::get_nb
int get_nb(void)
Definition: tpl_set.h:78
MAILLEUR_ADAPTATIF::nv_maillage
MG_MAILLAGE * nv_maillage
Definition: mailleur_adaptatif.h:42
MG_GEOMETRIE::get_mg_arete
MG_ARETE * get_mg_arete(unsigned int num)
Definition: mg_geometrie.cpp:800
MAGIC::ORIGINE::IMPOSE
@ IMPOSE
Definition: mg_definition.h:79
MG_MAILLAGE::get_suivant_segment
MG_SEGMENT * get_suivant_segment(LISTE_MG_SEGMENT::iterator &)
Definition: mg_maillage.cpp:638
mailleur1d.h
TPL_LISTE_ENTITE::ajouter
virtual void ajouter(X x)
Definition: tpl_liste_entite.h:38
MG_NOEUD::get_coord
virtual double * get_coord(void)
Definition: mg_noeud.cpp:92
MG_SOLUTION::active_solution
void active_solution(int num)
Definition: mg_solution.cpp:358
MAILLEUR::change_pas_integration
void change_pas_integration(int val)
Definition: mailleur.cpp:92
TPL_LISTE_ENTITE::get_nb
virtual int get_nb(void)
Definition: tpl_liste_entite.h:67
MAILLEUR1D::adapte
void adapte(void)
Definition: mailleur1d.cpp:244
MG_TRIANGLE::get_noeud2
virtual MG_NOEUD * get_noeud2(void)
Definition: mg_triangle.cpp:131
MG_GEOMETRIE::get_mg_face
MG_FACE * get_mg_face(unsigned int num)
Definition: mg_geometrie.cpp:1251
MAILLEUR_ADAPTATIF::mg_maillage
MG_MAILLAGE * mg_maillage
Definition: mailleur_adaptatif.h:41
TPL_LISTE_ENTITE::get
virtual X get(int num)
Definition: tpl_liste_entite.h:72
MG_MAILLAGE::get_mg_noeudid
MG_NOEUD * get_mg_noeudid(unsigned long num)
Definition: mg_maillage.cpp:451
MG_GEOMETRIE::get_nb_mg_face
unsigned int get_nb_mg_face(void)
Definition: mg_geometrie.cpp:1264
MG_NOEUD::get_x
virtual double get_x(void)
Definition: mg_noeud.cpp:77
MG_GEOMETRIE::get_nb_mg_volume
unsigned int get_nb_mg_volume(void)
Definition: mg_geometrie.cpp:1712
TPL_SET::get
X get(int num)
Definition: tpl_set.h:84
MG_TRIANGLE::get_noeud1
virtual MG_NOEUD * get_noeud1(void)
Definition: mg_triangle.cpp:126
mg_maillage.h
MG_TETRA::get_noeud4
virtual MG_NOEUD * get_noeud4(void)
Definition: mg_tetra.cpp:158
mailleur3d.h
sqrt
double2 sqrt(double2 &val)
Definition: ot_doubleprecision.cpp:345
MG_MAILLAGE::get_mg_geometrie
MG_GEOMETRIE * get_mg_geometrie(void)
Definition: mg_maillage.cpp:410
MG_GROUPE_TOPOLOGIQUE
Definition: mg_groupe_topologique.h:31
MAILLEUR2D::maille
int maille(MG_GROUPE_TOPOLOGIQUE *mggt=NULL)
Definition: mailleur2d.cpp:49
NONDETRUIT
#define NONDETRUIT
Definition: mailleur_adaptatif.cpp:37
MG_TRIANGLE::get_noeud3
virtual MG_NOEUD * get_noeud3(void)
Definition: mg_triangle.cpp:137
MG_TETRA::get_noeud3
virtual MG_NOEUD * get_noeud3(void)
Definition: mg_tetra.cpp:153
mailleur_adaptatif.h
MAILLEUR
Definition: mailleur.h:33
MG_MAILLAGE::get_mg_tetraid
MG_TETRA * get_mg_tetraid(unsigned long num)
Definition: mg_maillage.cpp:1201
MG_MAILLAGE::get_suivant_triangle
MG_TRIANGLE * get_suivant_triangle(LISTE_MG_TRIANGLE::iterator &it)
Definition: mg_maillage.cpp:920
MG_MAILLAGE
Definition: mg_maillage.h:62
TPL_LISTE_ENTITE< MG_TRIANGLE * >
MAILLEUR0D::adapte
void adapte(void)
Definition: mailleur0d.cpp:85
DETRUIT
#define DETRUIT
Definition: mailleur_adaptatif.cpp:36
MG_ARETE
Definition: mg_arete.h:36
MG_FACE
Definition: mg_face.h:34
MG_MAILLAGE::get_mg_triangleid
MG_TRIANGLE * get_mg_triangleid(unsigned long num)
Definition: mg_maillage.cpp:772
MG_SOMMET
Definition: mg_sommet.h:35
MAILLEUR_ADAPTATIF::limite
double limite
Definition: mailleur_adaptatif.h:44
TPL_LISTE_ENTITE::supprimer
virtual void supprimer(X x)
Definition: tpl_liste_entite.h:42
MAILLEUR_ADAPTATIF::MAILLEUR_ADAPTATIF
MAILLEUR_ADAPTATIF(class MG_MAILLAGE *mai, class MG_MAILLAGE *nvmai, class FCT_TAILLE *carte, double coef=0.25)
Definition: mailleur_adaptatif.cpp:40
MG_MAILLAGE::get_suivant_noeud
MG_NOEUD * get_suivant_noeud(LISTE_MG_NOEUD::iterator &it)
Definition: mg_maillage.cpp:556
MG_GEOMETRIE::get_mg_volume
MG_VOLUME * get_mg_volume(unsigned int num)
Definition: mg_geometrie.cpp:1683
FCT_TAILLE::evaluer
virtual void evaluer(double *param, double *resultat)=0
mailleur0d.h
mg_solution.h
MG_GEOMETRIE::get_nb_mg_sommet
unsigned int get_nb_mg_sommet(void)
Definition: mg_geometrie.cpp:552
MG_NOEUD::get_y
virtual double get_y(void)
Definition: mg_noeud.cpp:82
MG_MAILLAGE::ajouter_mg_noeud
MG_NOEUD * ajouter_mg_noeud(MG_ELEMENT_TOPOLOGIQUE *topo, double xx, double yy, double zz, int origine, unsigned long num=0)
Definition: mg_maillage.cpp:421