Code_Saturne
CFD tool
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros
ecs_maillage.h
Go to the documentation of this file.
1 #ifndef _ECS_MAILLAGE_H_
2 #define _ECS_MAILLAGE_H_
3 
4 /*============================================================================
5  * Prototypes des fonctions de base
6  * associees a la structure `ecs_maillage_t' decrivant un maillage
7  *============================================================================*/
8 
9 /*
10  This file is part of Code_Saturne, a general-purpose CFD tool.
11 
12  Copyright (C) 1998-2012 EDF S.A.
13 
14  This program is free software; you can redistribute it and/or modify it under
15  the terms of the GNU General Public License as published by the Free Software
16  Foundation; either version 2 of the License, or (at your option) any later
17  version.
18 
19  This program is distributed in the hope that it will be useful, but WITHOUT
20  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
21  FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
22  details.
23 
24  You should have received a copy of the GNU General Public License along with
25  this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
26  Street, Fifth Floor, Boston, MA 02110-1301, USA.
27 */
28 
29 /*----------------------------------------------------------------------------*/
30 
31 
32 /*============================================================================
33  * Visibilite
34  *============================================================================*/
35 
36 
37 /*----------------------------------------------------------------------------
38  * Fichiers `include' librairie standard C
39  *----------------------------------------------------------------------------*/
40 
41 
42 /*----------------------------------------------------------------------------
43  * Fichiers `include' publics du paquetage global "Utilitaire"
44  *----------------------------------------------------------------------------*/
45 
46 #include "ecs_def.h"
47 #include "ecs_tab.h"
48 
49 
50 /*----------------------------------------------------------------------------
51  * Fichiers `include' publics du paquetage global "Post-Traitement"
52  *----------------------------------------------------------------------------*/
53 
54 #include "ecs_post.h"
55 
56 
57 /*----------------------------------------------------------------------------
58  * Fichiers `include' publics des paquetages visibles
59  *----------------------------------------------------------------------------*/
60 
61 #include "ecs_famille.h"
62 
63 
64 /*----------------------------------------------------------------------------
65  * Fichiers `include' publics du paquetage courant
66  *----------------------------------------------------------------------------*/
67 
68 
69 /*============================================================================
70  * Déclaration de la structure
71  *============================================================================*/
72 
74 
75 
76 typedef enum {
77 
82 
84 
85 /*============================================================================
86  * Prototypes de fonctions publiques
87  *============================================================================*/
88 
89 /*----------------------------------------------------------------------------
90  * Define a new empty mesh structure with nodal connectivity.
91  *----------------------------------------------------------------------------*/
92 
95 
96 /*----------------------------------------------------------------------------
97  * Free a mesh structure.
98  *----------------------------------------------------------------------------*/
99 
100 void
101 ecs_maillage__detruit(ecs_maillage_t **this_maillage);
102 
103 /*----------------------------------------------------------------------------
104  * Fonction imprimant le contenu d'une structure `ecs_maillage_t' donnee
105  * dans le fichier preprocessor_dump.txt
106  *----------------------------------------------------------------------------*/
107 
108 void
109 ecs_maillage__imprime(const ecs_maillage_t *maillage,
110  ecs_int_t nbr_imp);
111 
112 /*----------------------------------------------------------------------------
113  * Fonction qui retourne le type d'éntité de plus grande dimension
114  * contenue dans une structure `ecs_maillage_t'
115  *----------------------------------------------------------------------------*/
116 
119 
120 /*----------------------------------------------------------------------------
121  * Fonction qui renvoie la taille en octets d'une structure `ecs_maillage_t'
122  *----------------------------------------------------------------------------*/
123 
124 float
126 
127 /*----------------------------------------------------------------------------
128  * Suppression des sommets ne participant pas à la connectivité
129  * et fusion des éléments surfaciques confondus éventuels
130  *----------------------------------------------------------------------------*/
131 
132 void
134 
135 /*----------------------------------------------------------------------------
136  * Correction si nécessaire de l'orientation des éléments en
137  * connectivité nodale.
138  *
139  * La liste de cellules avec erreur est optionnelle.
140  *----------------------------------------------------------------------------*/
141 
142 void
144  ecs_tab_int_t *liste_cel_err,
145  bool correc_orient);
146 
147 /*----------------------------------------------------------------------------
148  * Fonction qui assigne la tete de la liste chainee des familles donnee
149  * a la structure de maillage donnee
150  *----------------------------------------------------------------------------*/
151 
152 void
154  ecs_famille_t *vect_famille[2]);
155 
156 /*----------------------------------------------------------------------------
157  * Fonction realisant, a partir d'une connectivite de maillage donnee,
158  * la connectivite descendante du maillage
159  *----------------------------------------------------------------------------*/
160 
161 void
163 
164 /*----------------------------------------------------------------------------
165  * Fonction realisant le tri des elements suivant leur type geometrique
166  * La fonction affiche le nombre d'elements par type geometrique
167  *----------------------------------------------------------------------------*/
168 
169 void
171 
172 
173 /*----------------------------------------------------------------------------
174  * Fonction qui définit un nouveau maillage
175  * par extraction d'une partie du maillage donné
176  *
177  * Les éléments à extraire doivent être tous de même dimension :
178  * cellules ou faces ou arêtes ou sommets
179  *----------------------------------------------------------------------------*/
180 
183  ecs_entmail_t entmail_sel,
184  const ecs_tab_int_t *liste_filtre);
185 
186 /*----------------------------------------------------------------------------
187  * Fonction qui concatène dans un maillage récepteur donné,
188  * un maillage à concaténer donné.
189  *
190  * Le maillage à concaténer est détruit.
191  *----------------------------------------------------------------------------*/
192 
193 void
195  ecs_maillage_t *maillage_concat);
196 
197 /*----------------------------------------------------------------------------
198  * Fonction qui construit la liste des cellules attachées à une liste
199  * de faces fournie en argument.
200  *----------------------------------------------------------------------------*/
201 
204  const ecs_tab_int_t liste_fac);
205 
206 /*----------------------------------------------------------------------------
207  * Fonction qui calcule les coordonnées min et max du domaine
208  *----------------------------------------------------------------------------*/
209 
210 void
212 
213 /*----------------------------------------------------------------------------
214  * Fonction qui construit les familles
215  *----------------------------------------------------------------------------*/
216 
217 void
219 
220 /*----------------------------------------------------------------------------
221  * Fonction qui detruit les familles
222  *----------------------------------------------------------------------------*/
223 
224 void
226 
227 /*----------------------------------------------------------------------------
228  * Fonction qui construit les attributs "groupe" a partir des familles
229  *----------------------------------------------------------------------------*/
230 
231 void
233 
234 /*----------------------------------------------------------------------------
235  * Fonction qui supprime les attributs "groupe"
236  *----------------------------------------------------------------------------*/
237 
238 void
240 
241 /*----------------------------------------------------------------------------
242  * Vérification d'un maillage et calcul de critères de qualité
243  *----------------------------------------------------------------------------*/
244 
245 bool
247  ecs_post_t *cas_post);
248 
249 /*----------------------------------------------------------------------------*/
250 
251 #endif /* _ECS_MAILLAGE_H_ */
ecs_maillage_t * ecs_maillage__extrait(ecs_maillage_t *maillage, ecs_entmail_t entmail_sel, const ecs_tab_int_t *liste_filtre)
Definition: ecs_maillage.c:1408
ecs_entmail_t ecs_maillage__ret_entmail_max(const ecs_maillage_t *maillage)
Definition: ecs_maillage.c:1087
int ecs_int_t
Definition: ecs_def.h:131
void ecs_maillage__calc_coo_ext(ecs_maillage_t *maillage)
Definition: ecs_maillage.c:1571
float ecs_maillage__ret_taille(const ecs_maillage_t *maillage)
Definition: ecs_maillage.c:1107
void ecs_maillage__imprime(const ecs_maillage_t *maillage, ecs_int_t nbr_imp)
Definition: ecs_maillage.c:921
void ecs_maillage__orient_nodal(ecs_maillage_t *maillage, ecs_tab_int_t *liste_cel_err, bool correc_orient)
Definition: ecs_maillage.c:1217
void ecs_maillage__definit_famille(ecs_maillage_t *maillage, ecs_famille_t *vect_famille[2])
Definition: ecs_maillage.c:1239
ecs_maillage_t * ecs_maillage__cree_nodal(void)
Definition: ecs_maillage.c:846
void ecs_maillage__detruit(ecs_maillage_t **this_maillage)
Definition: ecs_maillage.c:886
void ecs_maillage__connect_descend(ecs_maillage_t *maillage)
Definition: ecs_maillage.c:1258
void ecs_maillage__trie_typ_geo(ecs_maillage_t *maillage)
Definition: ecs_maillage.c:1341
void ecs_maillage__cree_attributs(ecs_maillage_t *maillage)
Definition: ecs_maillage.c:1704
void ecs_maillage__supprime_attributs(ecs_maillage_t *maillage)
Definition: ecs_maillage.c:1759
Definition: ecs_maillage.h:78
void ecs_maillage__concatene_nodal(ecs_maillage_t *maillage_recept, ecs_maillage_t *maillage_concat)
Definition: ecs_maillage.c:1451
Definition: ecs_maillage_priv.h:79
void ecs_maillage__cree_famille(ecs_maillage_t *maillage)
Definition: ecs_maillage.c:1623
Definition: ecs_maillage.h:81
Definition: ecs_famille_priv.h:70
Definition: ecs_maillage.h:79
Definition: ecs_tab.h:39
void ecs_maillage__nettoie_nodal(ecs_maillage_t *maillage)
Definition: ecs_maillage.c:1146
void ecs_maillage__detruit_famille(ecs_maillage_t *maillage)
Definition: ecs_maillage.c:1682
ecs_entmail_t
Definition: ecs_maillage.h:76
bool ecs_maillage__verif(ecs_maillage_t *maillage, ecs_post_t *cas_post)
Definition: ecs_maillage.c:1777
ecs_tab_int_t ecs_maillage__liste_cel_fac(ecs_maillage_t *maillage, const ecs_tab_int_t liste_fac)
Definition: ecs_maillage.c:1547
Definition: ecs_post.h:83
Definition: ecs_maillage.h:80