Code_Saturne
CFD tool
 All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
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-2012 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 "fvm_defs.h"
35 #include "fvm_nodal.h"
36 
37 /*----------------------------------------------------------------------------*/
38 
39 #ifdef __cplusplus
40 extern "C" {
41 #if 0
42 } /* Fake brace to force back Emacs auto-indentation back to column 0 */
43 #endif
44 #endif /* __cplusplus */
45 
46 /*=============================================================================
47  * Public function prototypes
48  *============================================================================*/
49 
50 /*----------------------------------------------------------------------------
51  * Extrude nodal mesh.
52  *
53  * Vertex and element parent numbering is removed if present.
54 
55  * Note: layout of new elements in memory is such that the definitions
56  * of all elements extruded from a same ancestor are contiguous.
57  * that is, {e_1, e_2, ..., e_n} leads to
58  * {e_1_layer_1, ..., e_1_layer_m, e_2_layer_1, ... e_n_layer_m}
59  *
60  * parameters:
61  * this_section <-> pointer to structure that should be extruded
62  * n_layers <-> number of extruded layers
63  * extrusion_vectors <-> length and direction of extrusion for each vertex;
64  * size: mesh_spatial_dim . n_vertices
65  * distribution <-> optional distribution of resulting vertices
66  * along each extrusion vector (size: n_layers + 1)
67  * with values ranging from 0 to 1, or NULL for
68  * a regular distribution.
69  *----------------------------------------------------------------------------*/
70 
71 void
72 fvm_nodal_extrude(fvm_nodal_t *this_nodal,
73  const cs_lnum_t n_layers,
74  const cs_coord_t extrusion_vectors[],
75  const cs_coord_t distribution[]);
76 
77 /*----------------------------------------------------------------------------*/
78 
79 #ifdef __cplusplus
80 }
81 #endif /* __cplusplus */
82 
83 #endif /* __FVM_NODAL_EXTRUDE_H__ */
Definition: fvm_nodal_priv.h:152
double cs_coord_t
Definition: cs_defs.h:261
int cs_lnum_t
Definition: cs_defs.h:260
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