1
#ifndef _ECS_MAILLAGE_H_
2
#define _ECS_MAILLAGE_H_
4
/*============================================================================
5
* Prototypes des fonctions de base
6
* associees a la structure `ecs_maillage_t' decrivant un maillage
7
*============================================================================*/
10
This file is part of Code_Saturne, a general-purpose CFD tool.
12
Copyright (C) 1998-2011 EDF S.A.
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
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
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.
29
/*----------------------------------------------------------------------------*/
32
/*============================================================================
34
*============================================================================*/
37
/*----------------------------------------------------------------------------
38
* Fichiers `include' librairie standard C
39
*----------------------------------------------------------------------------*/
42
/*----------------------------------------------------------------------------
43
* Fichiers `include' publics du paquetage global "Utilitaire"
44
*----------------------------------------------------------------------------*/
47
#include "ecs_tab_glob.h"
50
/*----------------------------------------------------------------------------
51
* Fichiers `include' publics du paquetage global "Post-Traitement"
52
*----------------------------------------------------------------------------*/
57
/*----------------------------------------------------------------------------
58
* Fichiers `include' publics des paquetages visibles
59
*----------------------------------------------------------------------------*/
61
#include "ecs_famille.h"
64
/*----------------------------------------------------------------------------
65
* Fichiers `include' publics du paquetage courant
66
*----------------------------------------------------------------------------*/
69
/*============================================================================
70
* Déclaration de la structure
71
*============================================================================*/
73
typedef struct _ecs_maillage_t ecs_maillage_t;
78
ECS_ENTMAIL_NONE = -1,
85
/*============================================================================
86
* Prototypes de fonctions publiques
87
*============================================================================*/
89
/*----------------------------------------------------------------------------
90
* Define a new empty mesh structure with nodal connectivity.
91
*----------------------------------------------------------------------------*/
94
ecs_maillage__cree_nodal(void);
96
/*----------------------------------------------------------------------------
97
* Free a mesh structure.
98
*----------------------------------------------------------------------------*/
101
ecs_maillage__detruit(ecs_maillage_t **this_maillage);
103
/*----------------------------------------------------------------------------
104
* Fonction imprimant le contenu d'une structure `ecs_maillage_t' donnee
105
* dans le fichier preprocessor_dump.txt
106
*----------------------------------------------------------------------------*/
109
ecs_maillage__imprime(const ecs_maillage_t *maillage,
112
/*----------------------------------------------------------------------------
113
* Fonction qui retourne le type d'éntité de plus grande dimension
114
* contenue dans une structure `ecs_maillage_t'
115
*----------------------------------------------------------------------------*/
118
ecs_maillage__ret_entmail_max(const ecs_maillage_t *maillage);
120
/*----------------------------------------------------------------------------
121
* Fonction qui renvoie la taille en octets d'une structure `ecs_maillage_t'
122
*----------------------------------------------------------------------------*/
125
ecs_maillage__ret_taille(const ecs_maillage_t *maillage);
127
/*----------------------------------------------------------------------------
128
* Suppression des sommets ne participant pas à la connectivité
129
* et fusion des éléments surfaciques confondus éventuels
130
*----------------------------------------------------------------------------*/
133
ecs_maillage__nettoie_nodal(ecs_maillage_t *maillage);
135
/*----------------------------------------------------------------------------
136
* Correction si nécessaire de l'orientation des éléments en
137
* connectivité nodale.
139
* La liste de cellules avec erreur est optionnelle.
140
*----------------------------------------------------------------------------*/
143
ecs_maillage__orient_nodal(ecs_maillage_t *maillage,
144
ecs_tab_int_t *liste_cel_err,
147
/*----------------------------------------------------------------------------
148
* Fonction qui assigne la tete de la liste chainee des familles donnee
149
* a la structure de maillage donnee
150
*----------------------------------------------------------------------------*/
153
ecs_maillage__definit_famille(ecs_maillage_t *maillage,
154
ecs_famille_t *vect_famille[2]);
156
/*----------------------------------------------------------------------------
157
* Fonction realisant, a partir d'une connectivite de maillage donnee,
158
* la connectivite descendante du maillage
159
*----------------------------------------------------------------------------*/
162
ecs_maillage__connect_descend(ecs_maillage_t * maillage);
164
/*----------------------------------------------------------------------------
165
* Fonction realisant le tri des elements suivant leur type geometrique
166
* La fonction affiche le nombre d'elements par type geometrique
167
*----------------------------------------------------------------------------*/
170
ecs_maillage__trie_typ_geo(ecs_maillage_t *maillage);
173
/*----------------------------------------------------------------------------
174
* Fonction qui définit un nouveau maillage
175
* par extraction d'une partie du maillage donné
177
* Les éléments à extraire doivent être tous de même dimension :
178
* cellules ou faces ou arêtes ou sommets
179
*----------------------------------------------------------------------------*/
182
ecs_maillage__extrait(ecs_maillage_t *maillage,
183
ecs_entmail_t entmail_sel,
184
const ecs_tab_int_t *liste_filtre);
186
/*----------------------------------------------------------------------------
187
* Fonction qui concatène dans un maillage récepteur donné,
188
* un maillage à concaténer donné.
190
* Le maillage à concaténer est détruit.
191
*----------------------------------------------------------------------------*/
194
ecs_maillage__concatene_nodal(ecs_maillage_t *maillage_recept,
195
ecs_maillage_t *maillage_concat);
197
/*----------------------------------------------------------------------------
198
* Fonction qui construit la liste des cellules attachées à une liste
199
* de faces fournie en argument.
200
*----------------------------------------------------------------------------*/
203
ecs_maillage__liste_cel_fac(ecs_maillage_t *maillage,
204
const ecs_tab_int_t liste_fac);
206
/*----------------------------------------------------------------------------
207
* Fonction qui calcule les coordonnées min et max du domaine
208
*----------------------------------------------------------------------------*/
211
ecs_maillage__calc_coo_ext(ecs_maillage_t *maillage);
213
/*----------------------------------------------------------------------------
214
* Fonction qui construit les familles
215
*----------------------------------------------------------------------------*/
218
ecs_maillage__cree_famille(ecs_maillage_t *maillage);
220
/*----------------------------------------------------------------------------
221
* Fonction qui detruit les familles
222
*----------------------------------------------------------------------------*/
225
ecs_maillage__detruit_famille(ecs_maillage_t *maillage);
227
/*----------------------------------------------------------------------------
228
* Fonction qui construit les attributs "groupe" a partir des familles
229
*----------------------------------------------------------------------------*/
232
ecs_maillage__cree_attributs(ecs_maillage_t *maillage);
234
/*----------------------------------------------------------------------------
235
* Fonction qui supprime les attributs "groupe"
236
*----------------------------------------------------------------------------*/
239
ecs_maillage__supprime_attributs(ecs_maillage_t *maillage);
241
/*----------------------------------------------------------------------------
242
* Vérification d'un maillage et calcul de critères de qualité
243
*----------------------------------------------------------------------------*/
246
ecs_maillage__verif(ecs_maillage_t *maillage,
247
ecs_post_t *cas_post);
249
/*----------------------------------------------------------------------------*/
251
#endif /* _ECS_MAILLAGE_H_ */