src/mesh/cs_mesh_connect.h Source File

| programmer's documentation

- Main Page
- Related Pages
- Modules
- Data Structures
- Files

- File List
- Globals

All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
cs_mesh_connect.h
Go to the documentation of this file.
1 #ifndef __CS_MESH_CONNECT_H__
2 #define __CS_MESH_CONNECT_H__
3
4 /*============================================================================
5 * Extract nodal connectivity mesh representations from a native mesh.
6 *============================================================================*/
7
8 /*
9 This file is part of Code_Saturne, a general-purpose CFD tool.
10
11 Copyright (C) 1998-2013 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_nodal.h"
35
36 #include "cs_base.h"
37 #include "cs_mesh.h"
38
39 /*----------------------------------------------------------------------------*/
40
41 BEGIN_C_DECLS
42
43 /*=============================================================================
44 * Macro definitions
45 *============================================================================*/
46
47 /*============================================================================
48 * Type definitions
49 *============================================================================*/
50
51 /*============================================================================
52 * Static global variables
53 *============================================================================*/
54
55 /*=============================================================================
56 * Public function prototypes
57 *============================================================================*/
58
59 /*----------------------------------------------------------------------------
60 * Extract a mesh's "cells -> faces" connectivity.
61 *
62 * We consider a common numbering for internal and boundary faces, in which
63 * boundary faces are defined first. The common id for the i-th boundary
64 * face is thus i, and that of the j-th interior face is n_b_faces + j.
65 *
66 * If ind_cel_extr != NULL, then:
67 * --- ind_cel_extr[cell_id] = id in the list to extract (0 to n-1)
68 * if cell cell_id should be extracted
69 * --- ind_cel_extr[cell_id] = -1 if cells cell_id should be ignored
70 *
71 * parameters:
72 * mesh <-- pointer to mesh structure
73 * extr_cell_size <-- size of extr_cell_id[] array
74 * extr_cell_id <-- extr_cell_id = ids of extracted cells, or -1
75 * p_cell_faces_idx --> cells -> faces index
76 * p_cell_faces_val --> cells -> faces connectivity
77 *----------------------------------------------------------------------------*/
78
79 void
80 cs_mesh_connect_get_cell_faces(const cs_mesh_t *mesh,
81 cs_lnum_t extr_cell_size,
82 const cs_lnum_t extr_cell_id[],
83 cs_lnum_t **const p_cell_faces_idx,
84 cs_lnum_t **const p_cell_faces_val);
85
86 /*----------------------------------------------------------------------------
87 * Build a nodal connectivity structure from a subset of a mesh's cells.
88 *
89 * The list of cells to extract is optional (if none is given, all cells
90 * faces are extracted by default); it does not need to be ordered on input,
91 * but is always ordered on exit (as cells are extracted by increasing number
92 * traversal, the list is reordered to ensure the coherency of the extracted
93 * mesh's link to its parent cells, built using this list).
94 *
95 * parameters:
96 * mesh <-- base mesh
97 * name <-- extracted mesh name
98 * include_families <-- include family info if true
99 * cell_list_size <-- size of cell_list[] array
100 * cell_list <-> list of cells (1 to n), or NULL
101 *
102 * returns:
103 * pointer to extracted nodal mesh
104 *----------------------------------------------------------------------------*/
105
106 fvm_nodal_t *
107 cs_mesh_connect_cells_to_nodal(const cs_mesh_t *mesh,
108 const char *name,
109 bool include_families,
110 cs_lnum_t cell_list_size,
111 cs_lnum_t cell_list[]);
112
113 /*----------------------------------------------------------------------------
114 * Build a nodal connectivity structure from a subset of a mesh's faces.
115 *
116 * The lists of faces to extract are optional (if none is given, boundary
117 * faces are extracted by default); they do not need to be ordered on input,
118 * but they are always ordered on exit (as faces are extracted by increasing
119 * number traversal, the lists are reordered to ensure the coherency of
120 * the extracted mesh's link to its parent faces, built using these lists).
121 *
122 * parameters:
123 * mesh <-- base mesh
124 * name <-- extracted mesh name
125 * include_families <-- include family info if true
126 * i_face_list_size <-- size of i_face_list[] array
127 * b_face_list_size <-- size of b_face_list[] array
128 * i_face_list <-> list of interior faces (1 to n), or NULL
129 * b_face_list <-> list of boundary faces (1 to n), or NULL
130 *
131 * returns:
132 * pointer to extracted nodal mesh
133 *----------------------------------------------------------------------------*/
134
135 fvm_nodal_t *
136 cs_mesh_connect_faces_to_nodal(const cs_mesh_t *mesh,
137 const char *name,
138 bool include_families,
139 cs_lnum_t i_face_list_size,
140 cs_lnum_t b_face_list_size,
141 cs_lnum_t i_face_list[],
142 cs_lnum_t b_face_list[]);
143
144 /*----------------------------------------------------------------------------*/
145
146 END_C_DECLS
147
148 #endif /* __CS_MESH_CONNECT_H__ */