programmer's documentation
 All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Groups Pages
cs_selector.h
Go to the documentation of this file.
1 #ifndef __CS_SELECTOR_H__
2 #define __CS_SELECTOR_H__
3 
4 /*============================================================================
5  * Build selection lists for faces or cells
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 #include "cs_base.h"
31 
32 /*----------------------------------------------------------------------------*/
33 
35 
36 /*============================================================================
37  * Public function prototypes for Fortran API
38  *============================================================================*/
39 
40 /*----------------------------------------------------------------------------
41  * Build a list of boundary faces verifying a given selection criteria.
42  *----------------------------------------------------------------------------*/
43 
44 void CS_PROCF(csgfbr, CSGFBR)
45 (
46  const char *const fstr, /* <-- Fortran string */
47  cs_int_t *const len, /* <-- String Length */
48  cs_int_t *const n_faces, /* --> number of faces */
49  cs_int_t *const face_list /* --> face list */
51 );
52 
53 /*----------------------------------------------------------------------------
54  * Build a list of interior faces verifying a given selection criteria.
55  *----------------------------------------------------------------------------*/
56 
57 void CS_PROCF(csgfac, CSGFAC)
58 (
59  const char *const fstr, /* <-- Fortran string */
60  cs_int_t *const len, /* <-- String Length */
61  cs_int_t *const n_faces, /* --> number of faces */
62  cs_int_t *const face_list /* --> face list */
64 );
65 
66 /*----------------------------------------------------------------------------
67  * Build a list of cells verifying a given selection criteria.
68  *----------------------------------------------------------------------------*/
69 
70 void CS_PROCF(csgcel, CSGCEL)
71 (
72  const char *const fstr, /* <-- Fortran string */
73  cs_int_t *const len, /* <-- String Length */
74  cs_int_t *const n_cells, /* --> number of cells */
75  cs_int_t *const cell_list /* --> cell list */
77 );
78 
79 /*----------------------------------------------------------------------------
80  * Build a list of cells verifying a given selection criteria.
81  *----------------------------------------------------------------------------*/
82 
83 void CS_PROCF(csgceb, CSGCEB)
84 (
85  const char *const fstr, /* <-- Fortran string */
86  cs_int_t *const len, /* <-- String Length */
87  cs_int_t *const n_i_faces, /* --> number of interior faces */
88  cs_int_t *const n_b_faces, /* --> number of boundary faces */
89  cs_int_t *const i_face_list, /* --> interior face list */
90  cs_int_t *const b_face_list /* --> boundary face list */
92 );
93 
94 /*----------------------------------------------------------------------------
95  * Build a list of interior faces belonging to a given periodicity.
96  *----------------------------------------------------------------------------*/
97 
98 void CS_PROCF(getfpe, GETFPE)
99 (
100  cs_int_t *const perio_num, /* <-- Periodicity number */
101  cs_int_t *const n_faces, /* --> number of faces */
102  cs_int_t *const face_list /* --> face list */
104 );
105 
106 /*----------------------------------------------------------------------------
107  * Build a list of families verifying a given selection criteria.
108  *----------------------------------------------------------------------------*/
109 
110 void CS_PROCF(csgfam, CSGFAM)
111 (
112  const char *const fstr, /* <-- Fortran string */
113  cs_int_t *const len, /* <-- String Length */
114  cs_int_t *const n_families, /* --> number of families */
115  cs_int_t *const family_list /* --> family list */
117 );
118 
119 /*=============================================================================
120  * Public function prototypes
121  *============================================================================*/
122 
123 /*----------------------------------------------------------------------------
124  * Fill a list of boundary faces verifying a given selection criteria.
125  *
126  * parameters:
127  * criteria <-- selection criteria string
128  * n_b_faces --> number of selected interior faces
129  * b_face_list --> list of selected boundary faces
130  * (1 to n, preallocated to cs_glob_mesh->n_b_faces)
131  *----------------------------------------------------------------------------*/
132 
133 void
134 cs_selector_get_b_face_list(const char *criteria,
135  cs_lnum_t *n_b_faces,
136  cs_lnum_t b_face_list[]);
137 
138 /*----------------------------------------------------------------------------
139  * Fill a list of interior faces verifying a given selection criteria.
140  *
141  * parameters:
142  * criteria <-- selection criteria string
143  * n_i_faces --> number of selected interior faces
144  * i_face_list --> list of selected interior faces
145  * (1 to n, preallocated to cs_glob_mesh->n_i_faces)
146  *----------------------------------------------------------------------------*/
147 
148 void
149 cs_selector_get_i_face_list(const char *criteria,
150  cs_lnum_t *n_i_faces,
151  cs_lnum_t i_face_list[]);
152 
153 /*----------------------------------------------------------------------------
154  * Fill a list of cells verifying a given selection criteria.
155  *
156  * parameters:
157  * criteria <-- selection criteria string
158  * n_cells --> number of selected cells
159  * cell_list --> list of selected cells
160  * (1 to n, preallocated to cs_glob_mesh->n_cells)
161  *----------------------------------------------------------------------------*/
162 
163 void
164 cs_selector_get_cell_list(const char *criteria,
165  cs_lnum_t *n_cells,
166  cs_lnum_t cell_list[]);
167 
168 /*----------------------------------------------------------------------------
169  * Fill lists of faces at the boundary of a set of cells verifying a given
170  * selection criteria.
171  *
172  * parameters:
173  * criteria <-- selection criteria string
174  * n_i_faces --> number of selected interior faces
175  * n_b_faces --> number of selected interior faces
176  * i_face_list --> list of selected interior faces
177  * (1 to n, preallocated to cs_glob_mesh->n_i_faces)
178  * b_face_list --> list of selected boundary faces
179  * (1 to n, preallocated to cs_glob_mesh->n_b_faces)
180  *----------------------------------------------------------------------------*/
181 
182 void
183 cs_selector_get_cells_boundary(const char *criteria,
184  cs_lnum_t *n_i_faces,
185  cs_lnum_t *n_b_faces,
186  cs_lnum_t i_face_list[],
187  cs_lnum_t b_face_list[]);
188 
189 /*----------------------------------------------------------------------------
190  * Fill a list of interior faces belonging to a given periodicity.
191  *
192  * parameters:
193  * perio_num <-- periodicity number
194  * n_i_faces --> number of selected interior faces
195  * i_face_list --> list of selected interior faces
196  * (1 to n, preallocated to cs_glob_mesh->n_i_faces)
197  *----------------------------------------------------------------------------*/
198 
199 void
200 cs_selector_get_perio_face_list(int perio_num,
201  cs_lnum_t *n_i_faces,
202  cs_lnum_t i_face_list[]);
203 
204 /*----------------------------------------------------------------------------
205  * Fill a list of families verifying a given selection criteria.
206  *
207  * parameters:
208  * criteria <-- selection criteria string
209  * n_families --> number of selected families
210  * family_list --> list of selected families
211  * (0 to n, preallocated to cs_glob_mesh->n_families + 1)
212  *----------------------------------------------------------------------------*/
213 
214 void
215 cs_selector_get_family_list(const char *criteria,
216  cs_lnum_t *n_families,
217  cs_int_t family_list[]);
218 
219 /*----------------------------------------------------------------------------*/
220 
222 
223 #endif /* __CS_SELECTOR_H__ */