MAGiC  V5.0
Mailleurs Automatiques de Géometries intégrés à la Cao
mailleur3d_optimisation.h
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 //####// mailleur3d_optimisation.h
15 //####//
16 //####//------------------------------------------------------------
17 //####//------------------------------------------------------------
18 //####// COPYRIGHT 2000-2024
19 //####// jeu 13 jun 2024 11:58:55 EDT
20 //####//------------------------------------------------------------
21 //####//------------------------------------------------------------
22 
23 #ifndef mailleur3d_optimisationH
24 #define mailleur3d_optimisationH
25 
26 
27 
28 
29 
30 
31 #include <map>
32 #include <vector>
33 #include "mg_maillage.h"
34 #include "mg_geometrie.h"
35 #include "mg_volume.h"
36 #include "tpl_octree.h"
37 #include "mailleur.h"
38 
39 
40 
41 
42 
44 {
45 public:
46 typedef std::multimap<double,class M3D_TETRA*,std::less<double> > ORDRE_TETRA;
47 typedef std::map<unsigned long,ORDRE_TETRA::iterator,std::less<unsigned long> > ORDRE_TETRA_PARID;
48 
49 MAILLEUR3D_OPTIMISATION(MG_MAILLAGE* mgmai,int niv);
50 virtual ~MAILLEUR3D_OPTIMISATION();
51 virtual void change_niveau_optimisation(int num);
52 virtual int get_niveau_optimisation(void);
53 
54 
55 virtual void optimise(MG_VOLUME* mgvol);
56 virtual int maille(MG_GROUPE_TOPOLOGIQUE* mggt) {return OK;} ;
57 
58 protected:
59 virtual void optimise(MG_VOLUME* mgvol,int& nbmauvais);
60 virtual int bouge_point(MG_VOLUME* mgvol,class MG_NOEUD* noeud,double& crit,double& x,double& y, double& z);
61 
62 
63 virtual void remaille_coquille(MG_NOEUD* noeud1,MG_NOEUD* noeud2, double& crit, class COQUILLE& coque);
64 virtual void ajouter_ordre_tetra(M3D_TETRA* tet,int num=1);
65 virtual void supprimer_ordre_tetra(M3D_TETRA* tet);
66 virtual double get_volume(MG_TETRA* tet);
67 virtual double get_volume(double *xyz1,double *xyz2,double *xyz3,double *xyz4);
68 
72 
73 virtual class MG_TRIANGLE* insere_triangle(class MG_VOLUME* mgvol,MG_NOEUD* noeud1,MG_NOEUD* noeud2,MG_NOEUD* noeud3,int origine);
75 virtual MG_SEGMENT* cree_segment(class MG_VOLUME* mgvol,MG_NOEUD* noeud1,MG_NOEUD* noeud2,int origine);
76 
77 
79 virtual void o3d_data(void);
80 virtual void o3d_data2(void);
81 int tab_solution[7][1430][8];
82 int tab_face[7][120][3];
83 };
84 
85 
86 
87 
88 class COQUILLE
89  {
90  public:
91  COQUILLE():volume(0) {};
92  ~COQUILLE() {};
93 
94  int taille;
95  MG_TETRA* tet[10];
97  double volume;
98  };
99 
100 
101 
102 
103 
104 
105 
106 
107 
108 
109 
110 
111 #endif
MAILLEUR3D_OPTIMISATION::cree_segment
virtual MG_SEGMENT * cree_segment(class MG_VOLUME *mgvol, MG_NOEUD *noeud1, MG_NOEUD *noeud2, int origine)
Definition: mailleur3d_optimisation.cpp:665
MG_SEGMENT
Definition: mg_segment.h:38
mg_geometrie.h
COQUILLE::taille
int taille
Definition: mailleur3d_optimisation.h:92
COQUILLE::COQUILLE
COQUILLE()
Definition: mailleur3d_optimisation.h:91
MAILLEUR3D_OPTIMISATION::insere_triangle
virtual class MG_TRIANGLE * insere_triangle(class MG_VOLUME *mgvol, MG_NOEUD *noeud1, MG_NOEUD *noeud2, MG_NOEUD *noeud3, int origine)
Definition: mailleur3d_optimisation.cpp:637
MAILLEUR3D_OPTIMISATION::mg_maillage
MG_MAILLAGE * mg_maillage
Definition: mailleur3d_optimisation.h:78
MAILLEUR3D_OPTIMISATION::ajouter_ordre_tetra
virtual void ajouter_ordre_tetra(M3D_TETRA *tet, int num=1)
Definition: mailleur3d_optimisation.cpp:600
MAILLEUR3D_OPTIMISATION
Definition: mailleur3d_optimisation.h:43
MAILLEUR3D_OPTIMISATION::lst_tetra
ORDRE_TETRA lst_tetra[2]
Definition: mailleur3d_optimisation.h:69
MAILLEUR3D_OPTIMISATION::maille
virtual int maille(MG_GROUPE_TOPOLOGIQUE *mggt)
Definition: mailleur3d_optimisation.h:56
MAILLEUR3D_OPTIMISATION::supprimer_ordre_tetra
virtual void supprimer_ordre_tetra(M3D_TETRA *tet)
Definition: mailleur3d_optimisation.cpp:610
COQUILLE::volume
double volume
Definition: mailleur3d_optimisation.h:97
MAILLEUR3D_OPTIMISATION::tab_solution
int tab_solution[7][1430][8]
Definition: mailleur3d_optimisation.h:81
MAILLEUR3D_OPTIMISATION::remaille_coquille
virtual void remaille_coquille(MG_NOEUD *noeud1, MG_NOEUD *noeud2, double &crit, class COQUILLE &coque)
Definition: mailleur3d_optimisation.cpp:408
OK
const int OK
Definition: mg_definition.h:38
MG_TRIANGLE
Definition: mg_triangle.h:38
MG_VOLUME
Definition: mg_volume.h:33
MG_TRIANGLE::noeud3
class MG_NOEUD * noeud3
Definition: mg_triangle.h:76
MG_TETRA
Definition: mg_tetra.h:37
MAILLEUR3D_OPTIMISATION::MAILLEUR3D_OPTIMISATION
MAILLEUR3D_OPTIMISATION(MG_MAILLAGE *mgmai, int niv)
Definition: mailleur3d_optimisation.cpp:36
MAILLEUR3D_OPTIMISATION::get_niveau_optimisation
virtual int get_niveau_optimisation(void)
Definition: mailleur3d_optimisation.cpp:630
MAILLEUR3D_OPTIMISATION::bouge_point
virtual int bouge_point(MG_VOLUME *mgvol, class MG_NOEUD *noeud, double &crit, double &x, double &y, double &z)
Definition: mailleur3d_optimisation.cpp:274
MAILLEUR3D_OPTIMISATION::lst_tetraid
ORDRE_TETRA_PARID lst_tetraid[2]
Definition: mailleur3d_optimisation.h:70
MAILLEUR3D_OPTIMISATION::change_niveau_optimisation
virtual void change_niveau_optimisation(int num)
Definition: mailleur3d_optimisation.cpp:625
mailleur.h
MG_NOEUD
Definition: mg_noeud.h:41
MAILLEUR3D_OPTIMISATION::cree_triangle
virtual MG_TRIANGLE * cree_triangle(class MG_VOLUME *mgvol, MG_NOEUD *noeud1, MG_NOEUD *noeud2, MG_NOEUD *noeud3, MG_SEGMENT *segment1, MG_SEGMENT *segment2, MG_SEGMENT *segment3, int origine)
Definition: mailleur3d_optimisation.cpp:656
M3D_TETRA
Definition: m3d_tetra.h:31
MG_TRIANGLE::noeud2
class MG_NOEUD * noeud2
Definition: mg_triangle.h:75
MG_TRIANGLE::segment3
class MG_SEGMENT * segment3
Definition: mg_triangle.h:80
MAILLEUR3D_OPTIMISATION::~MAILLEUR3D_OPTIMISATION
virtual ~MAILLEUR3D_OPTIMISATION()
Definition: mailleur3d_optimisation.cpp:58
MG_TRIANGLE::segment1
class MG_SEGMENT * segment1
Definition: mg_triangle.h:78
tpl_octree.h
mg_maillage.h
MAILLEUR3D_OPTIMISATION::ORDRE_TETRA_PARID
std::map< unsigned long, ORDRE_TETRA::iterator, std::less< unsigned long > > ORDRE_TETRA_PARID
Definition: mailleur3d_optimisation.h:47
MG_GROUPE_TOPOLOGIQUE
Definition: mg_groupe_topologique.h:31
MAILLEUR3D_OPTIMISATION::ORDRE_TETRA
std::multimap< double, class M3D_TETRA *, std::less< double > > ORDRE_TETRA
Definition: mailleur3d_optimisation.h:46
MAILLEUR
Definition: mailleur.h:33
MG_MAILLAGE
Definition: mg_maillage.h:62
COQUILLE::tet
MG_TETRA * tet[10]
Definition: mailleur3d_optimisation.h:95
MG_TRIANGLE::noeud1
class MG_NOEUD * noeud1
Definition: mg_triangle.h:74
COQUILLE::~COQUILLE
~COQUILLE()
Definition: mailleur3d_optimisation.h:92
COQUILLE
Definition: mailleur3d_optimisation.h:88
MAILLEUR3D_OPTIMISATION::get_volume
virtual double get_volume(MG_TETRA *tet)
Definition: mailleur3d_optimisation.cpp:64
MG_TRIANGLE::segment2
class MG_SEGMENT * segment2
Definition: mg_triangle.h:79
MAILLEUR3D_OPTIMISATION::niveau_optimisation
int niveau_optimisation
Definition: mailleur3d_optimisation.h:71
MAILLEUR3D_OPTIMISATION::tab_face
int tab_face[7][120][3]
Definition: mailleur3d_optimisation.h:82
MAILLEUR3D_OPTIMISATION::o3d_data2
virtual void o3d_data2(void)
Definition: mailleur3d_data2.cpp:31
MAILLEUR3D_OPTIMISATION::o3d_data
virtual void o3d_data(void)
Definition: mailleur3d_data.cpp:30
COQUILLE::new_tetra
MG_NOEUD * new_tetra[64]
Definition: mailleur3d_optimisation.h:96
MAILLEUR3D_OPTIMISATION::optimise
virtual void optimise(MG_VOLUME *mgvol)
Definition: mailleur3d_optimisation.cpp:88
mg_volume.h