My Project
programmer's documentation
fvm_nodal_extrude.h
Go to the documentation of this file.
1 #ifndef __FVM_NODAL_EXTRUDE_H__
2 #define __FVM_NODAL_EXTRUDE_H__
3 
4 /*============================================================================
5  * Extrusion of a nodal representation associated with a mesh
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 #include "cs_defs.h"
31 
32 /*----------------------------------------------------------------------------
33  * Local headers
34  *----------------------------------------------------------------------------*/
35 
36 #include "fvm_defs.h"
37 #include "fvm_nodal.h"
38 
39 /*----------------------------------------------------------------------------*/
40 
42 
43 /*=============================================================================
44  * Public function prototypes
45  *============================================================================*/
46 
47 /*----------------------------------------------------------------------------
48  * Extrude nodal mesh.
49  *
50  * Vertex and element parent numbering is removed if present.
51 
52  * Note: layout of new elements in memory is such that the definitions
53  * of all elements extruded from a same ancestor are contiguous.
54  * that is, {e_1, e_2, ..., e_n} leads to
55  * {e_1_layer_1, ..., e_1_layer_m, e_2_layer_1, ... e_n_layer_m}
56  *
57  * parameters:
58  * this_nodal <-> pointer to structure that should be extruded
59  * n_layers <-> number of extruded layers
60  * extrusion_vectors <-> length and direction of extrusion for each vertex;
61  * size: mesh_spatial_dim . n_vertices
62  * distribution <-> optional distribution of resulting vertices
63  * along each extrusion vector (size: n_layers + 1)
64  * with values ranging from 0 to 1, or NULL for
65  * a regular distribution.
66  *----------------------------------------------------------------------------*/
67 
68 void
69 fvm_nodal_extrude(fvm_nodal_t *this_nodal,
70  const cs_lnum_t n_layers,
71  const cs_coord_t extrusion_vectors[],
72  const cs_coord_t distribution[]);
73 
74 /*----------------------------------------------------------------------------*/
75 
77 
78 #endif /* __FVM_NODAL_EXTRUDE_H__ */
cs_defs.h
END_C_DECLS
#define END_C_DECLS
Definition: cs_defs.h:468
BEGIN_C_DECLS
#define BEGIN_C_DECLS
Definition: cs_defs.h:467
cs_lnum_t
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:298
fvm_nodal_extrude
void fvm_nodal_extrude(fvm_nodal_t *this_nodal, const cs_lnum_t n_layers, const cs_coord_t extrusion_vectors[], const cs_coord_t distribution[])
Definition: fvm_nodal_extrude.c:221
fvm_nodal.h
cs_coord_t
double cs_coord_t
Definition: cs_defs.h:299
fvm_defs.h