ViewVC Help
View File | Revision Log | Show Annotations | View Changeset | Root Listing
root/REPOS_ERICCA/magic/lib/mtu/src/ot_geometrie.h
Revision: 968
Committed: Sun Sep 16 15:27:49 2018 UTC (6 years, 9 months ago) by couturad
Content type: text/plain
Original Path: magic/lib/geometrie/src/ot_geometrie.h
File size: 8765 byte(s)
Log Message:
Ajout d'une condition de sortie et d'un renvoi d'erreur pour le mailleur FEM.
Subdivision des fichiers mstruct_analyse.h/.cpp en sous fichiers pour une meilleure lisibilite.
Ajout d'une analyse des modules d'elasticite.
Ajout d'une analyse de l'energie.
Reconfiguration du main de microstructure.exe (suppression d'actions obsolètes).
Reconfiguration des fichiers generer_nb_ves, post_process.

File Contents

# User Rev Content
1 couturad 907 //------------------------------------------------------------
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     // mg_element_geometrique.h
16     //
17     //------------------------------------------------------------
18     //------------------------------------------------------------
19     // COPYRIGHT 2000
20     // Version du 02/03/2006 � 11H22
21     //------------------------------------------------------------
22     //------------------------------------------------------------
23    
24    
25    
26     #ifndef _OT_GEOMETRIE_
27     #define _OT_GEOMETRIE_
28    
29     #ifdef WINDOWS_VERSION
30     #ifdef BUILT_DLL_GEOMETRIE
31     #define DLLPORTGEOMETRIE __declspec(dllexport)
32     #else
33     #define DLLPORTGEOMETRIE __declspec(dllimport)
34     #endif
35     #else
36     #define DLLPORTGEOMETRIE
37     #endif
38    
39     #include <vector>
40    
41     #include "mg_point.h"
42     #include "mg_sommet.h"
43     #include "mg_arete.h"
44     #include "mg_face.h"
45     #include "mg_volume.h"
46    
47     #ifdef ALL_OCC
48     #include "occ_point.h"
49     #include "occ_courbe.h"
50     #include "occ_surface.h"
51     #include "occ_sommet.h"
52     #include "occ_arete.h"
53     #include "occ_boucle.h"
54     #include "occ_face.h"
55     #include "occ_coquille.h"
56     #include "occ_volume.h"
57     //#include "occ_volume.h"
58     #endif
59    
60     class DLLPORTGEOMETRIE OT_GEOMETRIE
61     {
62     public:
63     OT_GEOMETRIE();
64     ~OT_GEOMETRIE();
65 couturad 951 enum TYPE_LIEN_TOPOLOGIQUE{AUCUN=0,SOMMET=1,ARETE=2,FACE=3,VOLUME=4};
66 couturad 968
67     static BOITE_3D get_boite_3D(MG_VOLUME* mgvolume);
68 couturad 951 static int get_lien_topologique(MG_ELEMENT_TOPOLOGIQUE *mgeletopo1,MG_ELEMENT_TOPOLOGIQUE *mgeletopo2);
69 couturad 934
70     static int declage_mg_face_mg_face(MG_FACE* mgface1,MG_FACE* mgface2,double &moyenne_distance,double &ecart_type_distance,int nb_pas=32,double eps=0.000001);
71 couturad 907 static int projection_orthogonale_sur_mg_arete(double *xyz,MG_ARETE* mgarete,double &t);
72     static int projection_orthogonale_sur_mg_face(double *xyz,MG_FACE* mgface,double* xyz2);
73 couturad 911 static int projection_au_plus_pres_sur_mg_face(double *xyz1,MG_FACE* mgface1,MG_FACE* mgface2,double* xyz2);
74     static int projection_au_plus_pres_sur_mg_arete(double *xyz,MG_ARETE* mgarete,double* xyz2);
75 couturad 907 static void get_param_face(MG_FACE* mgface,double &umin,double &umax,double &vmin,double &vmax);
76    
77 couturad 951 static int get_distance_min_mg_eletopo_mg_eletopo(MG_ELEMENT_TOPOLOGIQUE *mgeletopo1,MG_ELEMENT_TOPOLOGIQUE *mgeletopo2,double &distance);
78 couturad 907 static int get_distance_min_mg_volume_mg_volume(MG_VOLUME* mgvolume1,MG_VOLUME* mgvolume2,double &distance);
79     static int get_distance_min_mg_face_mg_volume(MG_FACE* mgface,MG_VOLUME* mgvolume,double &distance);
80 couturad 911 static int get_distance_min_mg_face_mg_face(MG_FACE* mgface1,MG_FACE* mgface2,double &distance);
81 couturad 966 static int get_distance_min_mg_face_mg_face_echantillonnage(MG_FACE* mgface1,MG_FACE* mgface2,double &distance,int nb_pas=32);
82 couturad 911 static int get_distance_min_liste_mg_face_mg_volume(TPL_MAP_ENTITE<MG_FACE*> &map_face,MG_VOLUME* mgvolume,double &distance);
83     static int get_distance_min_mg_arete_mg_arete(MG_ARETE* mgarete1,MG_ARETE* mgarete2,double &distance);
84 couturad 907
85 couturad 951 static double get_volume_intersection(MG_VOLUME* mgvolume1,MG_VOLUME* mgvolume2,double eps=0.001);
86 couturad 919 static double get_volume(MG_VOLUME* mgvolume,double eps=0.001);
87 couturad 911 static double get_longueur(MG_ARETE* mgarete);
88 couturad 919 static double get_aire(MG_FACE* mgface,double eps=0.001);
89 couturad 911
90 couturad 951 static int est_dans_mg_face(double *xyz,MG_FACE* mgface);
91     static void get_map_mg_ele_topo_sous_jacent(MG_ELEMENT_TOPOLOGIQUE *mgeletopo,TPL_MAP_ENTITE<MG_SOMMET*> &map_sommet,TPL_MAP_ENTITE<MG_ARETE*> &map_arete,TPL_MAP_ENTITE<MG_FACE*> &map_face);
92 couturad 907 static void get_map_mg_sommet_sous_jacent(MG_ELEMENT_TOPOLOGIQUE *mgeletopo,TPL_MAP_ENTITE<MG_SOMMET*> &map_sommet);
93     static void get_map_mg_arete_sous_jacent(MG_ELEMENT_TOPOLOGIQUE *mgeletopo,TPL_MAP_ENTITE<MG_ARETE*> &map_arete);
94     static void get_map_mg_face_sous_jacent(MG_ELEMENT_TOPOLOGIQUE *mgeletopo,TPL_MAP_ENTITE<MG_FACE*> &map_face);
95    
96     static void get_map_mg_point_sous_jacent(MG_ELEMENT_TOPOLOGIQUE *mgeletopo,TPL_MAP_ENTITE<MG_POINT*> &map_point);
97     static void get_map_mg_courbe_sous_jacent(MG_ELEMENT_TOPOLOGIQUE *mgeletopo,TPL_MAP_ENTITE<MG_COURBE*> &map_courbe);
98     static void get_map_mg_surface_sous_jacent(MG_ELEMENT_TOPOLOGIQUE *mgeletopo,TPL_MAP_ENTITE<MG_SURFACE*> &map_surface);
99    
100     static void get_map_mg_element_sous_jacent(MG_SOMMET* sommet,
101     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
102     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
103     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
104     static void get_map_mg_element_sous_jacent(MG_COSOMMET* cosommet,
105     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
106     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
107     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
108     static void get_map_mg_element_sous_jacent(MG_ARETE* arete,
109     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
110     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
111     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
112     static void get_map_mg_element_sous_jacent(MG_COARETE* coarete,
113     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
114     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
115     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
116     static void get_map_mg_element_sous_jacent(MG_BOUCLE* boucle,
117     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
118     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
119     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
120     static void get_map_mg_element_sous_jacent(MG_POUTRE* poutre,
121     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
122     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
123     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
124     static void get_map_mg_element_sous_jacent(MG_FACE* face,
125     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
126     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
127     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
128     static void get_map_mg_element_sous_jacent(MG_COFACE* coface,
129     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
130     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
131     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
132     static void get_map_mg_element_sous_jacent(MG_COQUILLE* coquille,
133     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
134     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
135     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
136     static void get_map_mg_element_sous_jacent(MG_VOLUME* volume,
137     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
138     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
139     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
140     static void get_map_mg_element_sous_jacent(MG_COQUE* coque,
141     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
142     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
143     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
144     static void get_map_mg_element_sous_jacent(MG_ELEMENT_TOPOLOGIQUE* mg_element_topologique,
145     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
146     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
147     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
148     static void get_map_mg_element_sous_jacent(MG_ELEMENT_COTOPOLOGIQUE* mg_element_cotopologique,
149     TPL_MAP_ENTITE<MG_ELEMENT_TOPOLOGIQUE*> *map_mg_element_topologique,
150     TPL_MAP_ENTITE<MG_ELEMENT_COTOPOLOGIQUE*> *map_mg_element_cotopologique,
151     TPL_MAP_ENTITE<MG_ELEMENT_GEOMETRIQUE*> *map_mg_element_geometrique);
152    
153    
154     private:
155     };
156    
157     #endif