My Project
programmer's documentation
cs_mesh_extrude.h
Go to the documentation of this file.
1 #ifndef __CS_MESH_EXTRUDE_H__
2 #define __CS_MESH_EXTRUDE_H__
3 
4 /*============================================================================
5  * Mesh extrusion.
6  *============================================================================*/
7 
8 /*
9  This file is part of Code_Saturne, a general-purpose CFD tool.
10 
11  Copyright (C) 1998-2019 EDF S.A.
12 
13  This program is free software; you can redistribute it and/or modify it under
14  the terms of the GNU General Public License as published by the Free Software
15  Foundation; either version 2 of the License, or (at your option) any later
16  version.
17 
18  This program is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
20  FOR A PARTICULAR PURPOSE. See the GNU General Public License for more
21  details.
22 
23  You should have received a copy of the GNU General Public License along with
24  this program; if not, write to the Free Software Foundation, Inc., 51 Franklin
25  Street, Fifth Floor, Boston, MA 02110-1301, USA.
26 */
27 
28 /*----------------------------------------------------------------------------*/
29 
30 /*----------------------------------------------------------------------------
31  * Local headers
32  *----------------------------------------------------------------------------*/
33 
34 #include "cs_base.h"
35 #include "cs_mesh.h"
36 
37 /*----------------------------------------------------------------------------*/
38 
40 
41 /*============================================================================
42  * Macro definitions
43  *============================================================================*/
44 
45 /*============================================================================
46  * Type definitions
47  *============================================================================*/
48 
54 typedef struct {
55 
71 
78 typedef struct {
79 
87  float *distribution;
93 
94 /*=============================================================================
95  * Public function prototypes
96  *============================================================================*/
97 
98 /*----------------------------------------------------------------------------*/
112 /*----------------------------------------------------------------------------*/
113 
114 void
116  const cs_mesh_extrude_vectors_t *e,
117  bool interior_gc);
118 
119 /*----------------------------------------------------------------------------*/
135 /*----------------------------------------------------------------------------*/
136 
137 void
139  bool interior_gc,
140  cs_lnum_t n_layers,
141  double thickness,
142  double expansion_factor,
143  cs_lnum_t n_faces,
144  const cs_lnum_t faces[]);
145 
146 /*----------------------------------------------------------------------------*/
154 /*----------------------------------------------------------------------------*/
155 
158 
159 /*----------------------------------------------------------------------------*/
165 /*----------------------------------------------------------------------------*/
166 
167 void
169 
170 /*----------------------------------------------------------------------------*/
183 /*----------------------------------------------------------------------------*/
184 
185 void
187  int n_layers,
188  double distance,
189  float expansion_factor,
190  const cs_lnum_t n_faces,
191  const cs_lnum_t face_ids[]);
192 
193 /*----------------------------------------------------------------------------*/
205 /*----------------------------------------------------------------------------*/
206 
209 
210 /*----------------------------------------------------------------------------*/
217 /*----------------------------------------------------------------------------*/
218 
219 void
221 
222 /*----------------------------------------------------------------------------*/
223 
225 
226 #endif /* __CS_MESH_EXTRUDE_H__ */
cs_mesh_extrude_face_info_t::thickness_s
cs_real_t * thickness_s
Definition: cs_mesh_extrude.h:65
cs_mesh_extrude_vectors_t::distribution_idx
cs_lnum_t * distribution_idx
Definition: cs_mesh_extrude.h:86
cs_mesh_extrude_face_info_t::distance
cs_real_t * distance
Definition: cs_mesh_extrude.h:59
cs_mesh_extrude_face_info_t::thickness_e
cs_real_t * thickness_e
Definition: cs_mesh_extrude.h:67
cs_mesh_extrude_set_info_by_zone
void cs_mesh_extrude_set_info_by_zone(cs_mesh_extrude_face_info_t *efi, int n_layers, double distance, float expansion_factor, const cs_lnum_t n_faces, const cs_lnum_t face_ids[])
Set face extrusion information by zone.
Definition: cs_mesh_extrude.c:2278
END_C_DECLS
#define END_C_DECLS
Definition: cs_defs.h:468
cs_mesh_extrude_vectors_create
cs_mesh_extrude_vectors_t * cs_mesh_extrude_vectors_create(const cs_mesh_extrude_face_info_t *efi)
Create and build a mesh extrusion vectors definition.
Definition: cs_mesh_extrude.c:2325
cs_mesh_extrude_constant
void cs_mesh_extrude_constant(cs_mesh_t *m, bool interior_gc, cs_lnum_t n_layers, double thickness, double expansion_factor, cs_lnum_t n_faces, const cs_lnum_t faces[])
Extrude mesh boundary faces in the normal direction by a constant thickness.
Definition: cs_mesh_extrude.c:2170
cs_mesh_extrude_vectors_t::n_faces
cs_lnum_t n_faces
Definition: cs_mesh_extrude.h:80
cs_real_t
double cs_real_t
Floating-point value.
Definition: cs_defs.h:302
cs_mesh_extrude_vectors_t
Definition: cs_mesh_extrude.h:78
BEGIN_C_DECLS
#define BEGIN_C_DECLS
Definition: cs_defs.h:467
cs_mesh_extrude_face_info_t::expansion_factor
float * expansion_factor
Definition: cs_mesh_extrude.h:63
cs_coord_3_t
double cs_coord_3_t[3]
Definition: cs_defs.h:311
cs_mesh_extrude_vectors_t::vertex_ids
cs_lnum_t * vertex_ids
Definition: cs_mesh_extrude.h:83
cs_mesh_extrude_vectors_t::n_vertices
cs_lnum_t n_vertices
Definition: cs_mesh_extrude.h:81
cs_mesh.h
cs_mesh_extrude
void cs_mesh_extrude(cs_mesh_t *m, const cs_mesh_extrude_vectors_t *e, bool interior_gc)
Extrude mesh boundary faces in the normal direction.
Definition: cs_mesh_extrude.c:1946
cs_mesh_extrude_face_info_t
Definition: cs_mesh_extrude.h:54
cs_mesh_extrude_vectors_destroy
void cs_mesh_extrude_vectors_destroy(cs_mesh_extrude_vectors_t **e)
Destroy a mesh extrusion vectors definition.
Definition: cs_mesh_extrude.c:2356
cs_mesh_extrude_face_info_create
cs_mesh_extrude_face_info_t * cs_mesh_extrude_face_info_create(const cs_mesh_t *m)
Create a mesh extrusion face information structure.
Definition: cs_mesh_extrude.c:2213
cs_lnum_t
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:298
cs_mesh_extrude_vectors_t::face_ids
cs_lnum_t * face_ids
Definition: cs_mesh_extrude.h:82
cs_mesh_extrude_face_info_destroy
void cs_mesh_extrude_face_info_destroy(cs_mesh_extrude_face_info_t **efi)
Destroy a mesh extrusion face information structure.
Definition: cs_mesh_extrude.c:2247
cs_mesh_extrude_vectors_t::coord_shift
cs_coord_3_t * coord_shift
Definition: cs_mesh_extrude.h:85
cs_mesh_extrude_vectors_t::distribution
float * distribution
Definition: cs_mesh_extrude.h:87
cs_mesh_extrude_face_info_t::n_layers
cs_lnum_t * n_layers
Definition: cs_mesh_extrude.h:56
cs_mesh_t
Definition: cs_mesh.h:63
cs_base.h
cs_mesh_extrude_vectors_t::n_layers
cs_lnum_t * n_layers
Definition: cs_mesh_extrude.h:84