8.3
general 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-2024 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
68void
69fvm_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__ */
#define BEGIN_C_DECLS
Definition: cs_defs.h:542
double cs_coord_t
Definition: cs_defs.h:340
#define END_C_DECLS
Definition: cs_defs.h:543
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:335
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.cpp:221