programmer's documentation
cs_field_pointer.h
Go to the documentation of this file.
1 #ifndef __CS_FIELD_POINTER_H__
2 #define __CS_FIELD_POINTER_H__
3 
4 /*============================================================================
5  * Field pointers and ids for standard and model fields
6  *============================================================================*/
7 
8 /*
9  This file is part of Code_Saturne, a general-purpose CFD tool.
10 
11  Copyright (C) 1998-2015 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 "cs_defs.h"
35 
36 /*----------------------------------------------------------------------------*/
37 
39 
40 /*=============================================================================
41  * Macro definitions
42  *============================================================================*/
43 
44 /* Macro used for scoping of field pointer enums */
45 
46 #define CS_ENUMF_(e) CS_FIELD_POINTER_ ## e
47 
48 /* Macro used to return a field pointer by its enumerated value */
49 
50 #define CS_F_(e) cs_glob_field_pointers[CS_FIELD_POINTER_ ## e].f
51 
52 #define CS_FI_(e, i) cs_glob_field_pointers[CS_FIELD_POINTER_ ## e].a->p[i]
53 
54 /*============================================================================
55  * Type definitions
56  *============================================================================*/
57 
60 typedef enum {
61 
62  /* Base variables and properties */
63 
109  /* Specific physics variables and properties */
110 
173  /* End of attributes */
174 
176 
178 
182  int n;
184 };
185 
191 };
192 
193 /*============================================================================
194  * Global variables
195  *============================================================================*/
196 
197 /* Pointers */
198 
200 
201 /*=============================================================================
202  * Public function prototypes
203  *============================================================================*/
204 
205 /*----------------------------------------------------------------------------
206  * Free all field pointer data.
207  *----------------------------------------------------------------------------*/
208 
209 void
211 
212 /*----------------------------------------------------------------------------
213  * Map a simple field to an enumerated pointer.
214  *
215  * The associated field pointer may then be retreived using \ref CS_F_(e).
216  *
217  * parameters:
218  * e <-- field enumerator value
219  * f <-- pointer to field structure
220  *----------------------------------------------------------------------------*/
221 
222 void
224  cs_field_t *f);
225 
226 /*----------------------------------------------------------------------------
227  * Map a field to an (enumerated pointer, index) couple.
228  *
229  * This sort of mapping may be used for sets of fields whose size
230  * is not known in advance.
231  *
232  * The associated field pointer may then be retreived using \ref CS_F_(e, i).
233  *
234  * parameters:
235  * e <-- field enumerator value
236  * index <-- field enumerator index
237  * f <-- pointer to field structure
238  *----------------------------------------------------------------------------*/
239 
240 void
242  int index,
243  cs_field_t *f);
244 
245 /*----------------------------------------------------------------------------
246  * Map base fields to enumerated pointers.
247  *----------------------------------------------------------------------------*/
248 
249 void
251 
252 /*----------------------------------------------------------------------------
253  * Map some boundary fields to enumerated pointers.
254  *----------------------------------------------------------------------------*/
255 
256 void
258 
259 /*----------------------------------------------------------------------------
260  * Map base fields to enumerated pointers for atmospheric models
261  *
262  * parameters:
263  * n_chem_species <-- number of chemical species
264  * species_f_if <-- field id for each chemical species
265  *----------------------------------------------------------------------------*/
266 
267 void
268 cs_field_pointer_map_atmospheric(int n_chem_species,
269  const int species_f_id[]);
270 
271 /*----------------------------------------------------------------------------
272  * Map base fields to enumerated pointers for atmospheric models
273  *
274  * parameters:
275  * n_coals <-- number of coals
276  * n_classes <-- number of coal classes
277  *----------------------------------------------------------------------------*/
278 
279 void
281  int n_classes);
282 
283 /*----------------------------------------------------------------------------*
284  * Map base fields to enumerated pointers for compressible model
285  *----------------------------------------------------------------------------*/
286 
287 void
289 
290 /*----------------------------------------------------------------------------*
291  * Map base fields to enumerated pointers for gas mix model
292  *----------------------------------------------------------------------------*/
293 
294 void
296 
297 /*----------------------------------------------------------------------------
298  * Map base fields to enumerated pointers for electric arcs
299  *
300  * parameters:
301  * n_gasses <-- number of gasses
302  *----------------------------------------------------------------------------*/
303 
304 void
306 
307 /*----------------------------------------------------------------------------
308  * Map base fields to enumerated pointers for gas combustion.
309  *----------------------------------------------------------------------------*/
310 
311 void
313 
314 /*----------------------------------------------------------------------------
315  * Map base fields to enumerated pointers for radiation module
316  *
317  * parameters:
318  * n_r_phases <-- number of radiating phases: 1 + possibly
319  * number of combustible classes (coal, fuel)
320  *----------------------------------------------------------------------------*/
321 
322 void
323 cs_field_pointer_map_radiation(int n_r_phases);
324 
325 /*----------------------------------------------------------------------------*/
326 
328 
329 #endif /* __CS_FIELD_POINTER_H__ */
Definition: cs_field_pointer.h:69
Definition: cs_field_pointer.h:150
Definition: cs_field_pointer.h:188
void cs_field_pointer_map_base(void)
Map base fields to enumerated pointers.
Definition: cs_field_pointer.c:289
Definition: cs_field_pointer.h:104
Definition: cs_field_pointer.h:140
Definition: cs_field_pointer.h:129
Field descriptor.
Definition: cs_field.h:99
Definition: cs_field_pointer.h:154
Definition: cs_field_pointer.h:133
void cs_field_pointer_destroy_all(void)
Free all field pointer data.
Definition: cs_field_pointer.c:172
Definition: cs_field_pointer.h:141
Definition: cs_field_pointer.h:151
#define BEGIN_C_DECLS
Definition: cs_defs.h:429
Definition: cs_field_pointer.h:114
cs_field_t * f
Definition: cs_field_pointer.h:189
Definition: cs_field_pointer.h:82
Definition: cs_field_pointer.h:78
#define CS_ENUMF_(e)
Macro used for scoping of field pointer enums.
Definition: cs_field_pointer.h:46
Definition: cs_field_pointer.h:161
Definition: cs_field_pointer.h:123
Definition: cs_field_pointer.h:157
Definition: cs_field_pointer.h:152
void cs_field_pointer_map_boundary(void)
Map some boundary fields to enumerated pointers.
Definition: cs_field_pointer.c:354
Definition: cs_field_pointer.h:116
Definition: cs_field_pointer.h:135
void cs_field_pointer_map_gas_mix(void)
Map base fields to enumerated pointers for gas mix model.
Definition: cs_field_pointer.c:491
Definition: cs_field_pointer.h:66
Definition: cs_field_pointer.h:160
Definition: cs_field_pointer.h:100
void cs_field_pointer_map_compressible(void)
Map base fields to enumerated pointers for compressible model.
Definition: cs_field_pointer.c:467
Definition: cs_field_pointer.h:126
int n
Definition: cs_field_pointer.h:182
Definition: cs_field_pointer.h:95
Definition: cs_field_pointer.h:77
Definition: cs_field_pointer.h:132
Definition: cs_field_pointer.h:144
Definition: cs_field_pointer.h:143
Definition: cs_field_pointer.h:67
void cs_field_pointer_map_coal_combustion(int n_coals, int n_classes)
Map base fields to enumerated pointers for coal combustion.
Definition: cs_field_pointer.c:400
Definition: cs_field_pointer.h:106
Definition: cs_field_pointer.h:159
Definition: cs_field_pointer.h:149
Definition: cs_field_pointer.h:169
Definition: cs_field_pointer.h:175
Definition: cs_field_pointer.h:118
Definition: cs_field_pointer.h:111
Definition: cs_field_pointer.h:98
void cs_field_pointer_map_electric_arcs(int n_gasses)
Map base fields to enumerated pointers for electric arcs.
Definition: cs_field_pointer.c:506
Definition: cs_field_pointer.h:113
void cs_field_pointer_map_indexed(cs_field_pointer_id_t e, int index, cs_field_t *f)
Map a field to an (enumerated pointer, index) couple.
Definition: cs_field_pointer.c:225
Definition: cs_field_pointer.h:142
void cs_field_pointer_map(cs_field_pointer_id_t e, cs_field_t *f)
Map a simple field to an enumerated pointer.
Definition: cs_field_pointer.c:196
Definition: cs_field_pointer.h:92
Definition: cs_field_pointer.h:166
Definition: cs_field_pointer.h:64
Definition: cs_field_pointer.h:131
Definition: cs_field_pointer.h:94
Definition: cs_field_pointer.h:86
void cs_field_pointer_map_radiation(int n_r_phases)
Map base fields to enumerated pointers for radiation module.
Definition: cs_field_pointer.c:568
Definition: cs_field_pointer.h:171
Definition: cs_field_pointer.h:107
Definition: cs_field_pointer.h:101
Definition: cs_field_pointer.h:163
Definition: cs_field_pointer.h:134
Definition: cs_field_pointer.h:164
Definition: cs_field_pointer.h:74
Definition: cs_field_pointer.h:146
struct cs_field_pointer_array_t * a
Definition: cs_field_pointer.h:190
Definition: cs_field_pointer.h:127
Definition: cs_field_pointer.h:85
Definition: cs_field_pointer.h:76
Definition: cs_field_pointer.h:167
Definition: cs_field_pointer.h:181
#define END_C_DECLS
Definition: cs_defs.h:430
Definition: cs_field_pointer.h:136
Definition: cs_field_pointer.h:72
Definition: cs_field_pointer.h:80
Definition: cs_field_pointer.h:121
Definition: cs_field_pointer.h:147
Definition: cs_field_pointer.h:137
Definition: cs_field_pointer.h:138
Definition: cs_field_pointer.h:125
Definition: cs_field_pointer.h:139
Definition: cs_field_pointer.h:97
Definition: cs_field_pointer.h:93
Definition: cs_field_pointer.h:73
Definition: cs_field_pointer.h:103
Definition: cs_field_pointer.h:158
Definition: cs_field_pointer.h:119
cs_field_pointer_id_t
Definition: cs_field_pointer.h:60
Definition: cs_field_pointer.h:115
Definition: cs_field_pointer.h:90
Definition: cs_field_pointer.h:145
Definition: cs_field_pointer.h:168
Definition: cs_field_pointer.h:70
Definition: cs_field_pointer.h:155
void cs_field_pointer_map_atmospheric(int n_chem_species, const int species_f_id[])
Map base fields to enumerated pointers for atmospheric models.
Definition: cs_field_pointer.c:373
cs_field_t * p[]
Definition: cs_field_pointer.h:183
Definition: cs_field_pointer.h:88
Definition: cs_field_pointer.h:122
Definition: cs_field_pointer.h:130
Definition: cs_field_pointer.h:81
Definition: cs_field_pointer.h:165
Definition: cs_field_pointer.h:75
void cs_field_pointer_map_gas_combustion(void)
Map base fields to enumerated pointers for gas combustion.
Definition: cs_field_pointer.c:531
union cs_field_pointer_val_t * cs_glob_field_pointers
Definition: cs_field_pointer.c:130