~ubuntu-branches/ubuntu/precise/code-saturne/precise

« back to all changes in this revision

Viewing changes to preprocessor/base/ecs_maillage.h

  • Committer: Package Import Robot
  • Author(s): Sylvestre Ledru
  • Date: 2011-11-24 00:00:08 UTC
  • mfrom: (6.1.9 sid)
  • Revision ID: package-import@ubuntu.com-20111124000008-2vo99e38267942q5
Tags: 2.1.0-3
Install a missing file

Show diffs side-by-side

added added

removed removed

Lines of Context:
 
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-2011 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_glob.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
 
 
73
typedef struct _ecs_maillage_t ecs_maillage_t;
 
74
 
 
75
 
 
76
typedef enum {
 
77
 
 
78
  ECS_ENTMAIL_NONE = -1,
 
79
  ECS_ENTMAIL_FAC,
 
80
  ECS_ENTMAIL_CEL,
 
81
  ECS_N_ENTMAIL
 
82
 
 
83
} ecs_entmail_t;
 
84
 
 
85
/*============================================================================
 
86
 *                       Prototypes de fonctions publiques
 
87
 *============================================================================*/
 
88
 
 
89
/*----------------------------------------------------------------------------
 
90
 * Define a new empty mesh structure with nodal connectivity.
 
91
 *----------------------------------------------------------------------------*/
 
92
 
 
93
ecs_maillage_t *
 
94
ecs_maillage__cree_nodal(void);
 
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
 
 
117
ecs_entmail_t
 
118
ecs_maillage__ret_entmail_max(const ecs_maillage_t  *maillage);
 
119
 
 
120
/*----------------------------------------------------------------------------
 
121
 *  Fonction qui renvoie la taille en octets d'une structure `ecs_maillage_t'
 
122
 *----------------------------------------------------------------------------*/
 
123
 
 
124
float
 
125
ecs_maillage__ret_taille(const ecs_maillage_t  *maillage);
 
126
 
 
127
/*----------------------------------------------------------------------------
 
128
 *  Suppression des sommets ne participant pas à la connectivité
 
129
 *   et fusion des éléments surfaciques confondus éventuels
 
130
 *----------------------------------------------------------------------------*/
 
131
 
 
132
void
 
133
ecs_maillage__nettoie_nodal(ecs_maillage_t  *maillage);
 
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
 
143
ecs_maillage__orient_nodal(ecs_maillage_t    *maillage,
 
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
 
153
ecs_maillage__definit_famille(ecs_maillage_t   *maillage,
 
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
 
162
ecs_maillage__connect_descend(ecs_maillage_t * maillage);
 
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
 
170
ecs_maillage__trie_typ_geo(ecs_maillage_t  *maillage);
 
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
 
 
181
ecs_maillage_t *
 
182
ecs_maillage__extrait(ecs_maillage_t       *maillage,
 
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
 
194
ecs_maillage__concatene_nodal(ecs_maillage_t  *maillage_recept,
 
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
 
 
202
ecs_tab_int_t
 
203
ecs_maillage__liste_cel_fac(ecs_maillage_t       *maillage,
 
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
 
211
ecs_maillage__calc_coo_ext(ecs_maillage_t  *maillage);
 
212
 
 
213
/*----------------------------------------------------------------------------
 
214
 *  Fonction qui construit les familles
 
215
 *----------------------------------------------------------------------------*/
 
216
 
 
217
void
 
218
ecs_maillage__cree_famille(ecs_maillage_t  *maillage);
 
219
 
 
220
/*----------------------------------------------------------------------------
 
221
 *  Fonction qui detruit les familles
 
222
 *----------------------------------------------------------------------------*/
 
223
 
 
224
void
 
225
ecs_maillage__detruit_famille(ecs_maillage_t  *maillage);
 
226
 
 
227
/*----------------------------------------------------------------------------
 
228
 *  Fonction qui construit les attributs "groupe" a partir des familles
 
229
 *----------------------------------------------------------------------------*/
 
230
 
 
231
void
 
232
ecs_maillage__cree_attributs(ecs_maillage_t  *maillage);
 
233
 
 
234
/*----------------------------------------------------------------------------
 
235
 *  Fonction qui supprime les attributs "groupe"
 
236
 *----------------------------------------------------------------------------*/
 
237
 
 
238
void
 
239
ecs_maillage__supprime_attributs(ecs_maillage_t  *maillage);
 
240
 
 
241
/*----------------------------------------------------------------------------
 
242
 *  Vérification d'un maillage et calcul de critères de qualité
 
243
 *----------------------------------------------------------------------------*/
 
244
 
 
245
bool
 
246
ecs_maillage__verif(ecs_maillage_t  *maillage,
 
247
                    ecs_post_t      *cas_post);
 
248
 
 
249
/*----------------------------------------------------------------------------*/
 
250
 
 
251
#endif /* _ECS_MAILLAGE_H_ */