7.0
general 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-2021 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 #include "cs_field.h"
36 
37 /*----------------------------------------------------------------------------*/
38 
40 
41 /*=============================================================================
42  * Macro definitions
43  *============================================================================*/
44 
45 /* Macro used for scoping of field pointer enums */
46 
47 #define CS_ENUMF_(e) CS_FIELD_POINTER_ ## e
48 
49 /* Macro used to return a field pointer by its enumerated value */
50 
51 #define CS_F_(e) cs_glob_field_pointers[CS_FIELD_POINTER_ ## e].f
52 
53 #define CS_FI_(e, i) cs_glob_field_pointers[CS_FIELD_POINTER_ ## e].p[i]
54 
55 /*============================================================================
56  * Type definitions
57  *============================================================================*/
58 
61 typedef enum {
62 
63  /* Base variables and properties */
64 
119  /* Specific physics variables and properties */
120 
204  /* Cooling tower fields */
214  /* NCFD fields */
250  /* Added variables (scalars) */
253  /* User-defined arrays */
255 
256  /* End of attributes */
257 
259 
261 
267 };
268 
269 /*============================================================================
270  * Global variables
271  *============================================================================*/
272 
273 /* Pointers */
274 
276 
277 /*=============================================================================
278  * Public function prototypes
279  *============================================================================*/
280 
281 /*----------------------------------------------------------------------------
282  * Ensure field pointer array is initialized.
283  *----------------------------------------------------------------------------*/
284 
285 void
287 
288 /*----------------------------------------------------------------------------
289  * Free all field pointer data.
290  *----------------------------------------------------------------------------*/
291 
292 void
294 
295 /*----------------------------------------------------------------------------
296  * Map a simple field to an enumerated pointer.
297  *
298  * The associated field pointer may then be retreived using \ref CS_F_(e).
299  *
300  * parameters:
301  * e <-- field enumerator value
302  * f <-- pointer to field structure
303  *----------------------------------------------------------------------------*/
304 
305 void
307  cs_field_t *f);
308 
309 /*----------------------------------------------------------------------------
310  * Map a field to an (enumerated pointer, index) couple.
311  *
312  * This sort of mapping may be used for sets of fields whose size
313  * is not known in advance.
314  *
315  * The associated field pointer may then be retreived using \ref CS_F_(e, i).
316  *
317  * parameters:
318  * e <-- field enumerator value
319  * index <-- field enumerator index
320  * f <-- pointer to field structure
321  *----------------------------------------------------------------------------*/
322 
323 void
325  int index,
326  cs_field_t *f);
327 
328 /*----------------------------------------------------------------------------
329  * Map base fields to enumerated pointers.
330  *----------------------------------------------------------------------------*/
331 
332 void
334 
335 /*----------------------------------------------------------------------------
336  * Map some boundary fields to enumerated pointers.
337  *----------------------------------------------------------------------------*/
338 
339 void
341 
342 /*----------------------------------------------------------------------------
343  * Map base fields to enumerated pointers for atmospheric models
344  *
345  * parameters:
346  * n_chem_species <-- number of chemical species
347  * species_f_if <-- field id for each chemical species
348  *----------------------------------------------------------------------------*/
349 
350 void
351 cs_field_pointer_map_atmospheric(int n_chem_species,
352  const int species_f_id[]);
353 
354 /*----------------------------------------------------------------------------
355  * Map base fields to enumerated pointers for atmospheric models
356  *
357  * parameters:
358  * n_coals <-- number of coals
359  * n_classes <-- number of coal classes
360  *----------------------------------------------------------------------------*/
361 
362 void
364  int n_classes);
365 
366 /*----------------------------------------------------------------------------*
367  * Map base fields to enumerated pointers for compressible model
368  *----------------------------------------------------------------------------*/
369 
370 void
372 
373 /*----------------------------------------------------------------------------*
374  * Map base fields to enumerated pointers for gas mix model
375  *----------------------------------------------------------------------------*/
376 
377 void
379 
380 /*----------------------------------------------------------------------------
381  * Map base fields to enumerated pointers for gas combustion.
382  *----------------------------------------------------------------------------*/
383 
384 void
386 
387 /*----------------------------------------------------------------------------*/
388 /*
389  * Map base fields to enumerated pointers for groundwater flows
390  *----------------------------------------------------------------------------*/
391 
392 void
394 
395 /*----------------------------------------------------------------------------*/
396 
398 
399 #endif /* __CS_FIELD_POINTER_H__ */
Definition: cs_field_pointer.h:70
Definition: cs_field_pointer.h:247
Definition: cs_field_pointer.h:170
Definition: cs_field_pointer.h:202
Definition: cs_field_pointer.h:230
Definition: cs_field_pointer.h:171
Definition: cs_field_pointer.h:166
Definition: cs_field_pointer.h:181
Definition: cs_field_pointer.h:210
void cs_field_pointer_map_base(void)
Map base fields to enumerated pointers.
Definition: cs_field_pointer.c:277
Definition: cs_field_pointer.h:198
Definition: cs_field_pointer.h:110
Definition: cs_field_pointer.h:156
Definition: cs_field_pointer.h:175
Definition: cs_field_pointer.h:145
Definition: cs_field_pointer.h:172
Field descriptor.
Definition: cs_field.h:125
Definition: cs_field_pointer.h:178
Definition: cs_field_pointer.h:112
Definition: cs_field_pointer.h:149
Definition: cs_field_pointer.h:83
void cs_field_pointer_ensure_init(void)
Ensure field pointer array is initialized.
Definition: cs_field_pointer.c:173
Definition: cs_field_pointer.h:235
void cs_field_pointer_destroy_all(void)
Free all field pointer data.
Definition: cs_field_pointer.c:186
Definition: cs_field_pointer.h:233
Definition: cs_field_pointer.h:221
Definition: cs_field_pointer.h:208
Definition: cs_field_pointer.h:157
Definition: cs_field_pointer.h:167
Definition: cs_field_pointer.h:90
Definition: cs_field_pointer.h:243
#define BEGIN_C_DECLS
Definition: cs_defs.h:495
Definition: cs_field_pointer.h:130
Definition: cs_field_pointer.h:222
Definition: cs_field_pointer.h:234
Definition: cs_field_pointer.h:79
#define CS_ENUMF_(e)
Macro used for scoping of field pointer enums.
Definition: cs_field_pointer.h:47
Definition: cs_field_pointer.h:185
Definition: cs_field_pointer.h:139
Definition: cs_field_pointer.h:168
Definition: cs_field_pointer.h:236
Definition: cs_field_pointer.h:237
cs_field_t * f
Definition: cs_field_pointer.h:265
void cs_field_pointer_map_boundary(void)
Map some boundary fields to enumerated pointers.
Definition: cs_field_pointer.c:353
Definition: cs_field_pointer.h:220
Definition: cs_field_pointer.h:132
Definition: cs_field_pointer.h:151
void cs_field_pointer_map_gas_mix(void)
Map base fields to enumerated pointers for gas mix model.
Definition: cs_field_pointer.c:503
Definition: cs_field_pointer.h:67
Definition: cs_field_pointer.h:184
Definition: cs_field_pointer.h:106
void cs_field_pointer_map_compressible(void)
Map base fields to enumerated pointers for compressible model.
Definition: cs_field_pointer.c:466
Definition: cs_field_pointer.h:142
Definition: cs_field_pointer.h:218
Definition: cs_field_pointer.h:78
Definition: cs_field_pointer.h:223
Definition: cs_field_pointer.h:206
Definition: cs_field_pointer.h:245
Definition: cs_field_pointer.h:229
Definition: cs_field_pointer.h:148
Definition: cs_field_pointer.h:68
Definition: cs_field_pointer.h:160
Definition: cs_field_pointer.h:159
Definition: cs_field_pointer.h:240
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:399
Definition: cs_field_pointer.h:115
Definition: cs_field_pointer.h:183
Definition: cs_field_pointer.h:165
Definition: cs_field_pointer.h:194
Definition: cs_field_pointer.h:113
Definition: cs_field_pointer.h:258
void cs_field_pointer_map_groundwater(void)
Map base fields to enumerated pointers for groundwater flows.
Definition: cs_field_pointer.c:550
Definition: cs_field_pointer.h:212
Definition: cs_field_pointer.h:101
cs_field_t ** p
Definition: cs_field_pointer.h:266
struct cs_field_pointer_array_t * cs_glob_field_pointers
Definition: cs_field_pointer.c:130
Definition: cs_field_pointer.h:134
Definition: cs_field_pointer.h:121
Definition: cs_field_pointer.h:104
Definition: cs_field_pointer.h:207
Definition: cs_field_pointer.h:182
Definition: cs_field_pointer.h:224
Definition: cs_field_pointer.h:228
Definition: cs_field_pointer.h:209
Definition: cs_field_pointer.h:129
Definition: cs_field_pointer.h:216
Definition: cs_field_pointer.h:215
Definition: cs_field_pointer.h:173
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:232
Definition: cs_field_pointer.h:158
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:210
Definition: cs_field_pointer.h:97
Definition: cs_field_pointer.h:191
Definition: cs_field_pointer.h:65
Definition: cs_field_pointer.h:147
Definition: cs_field_pointer.h:99
Definition: cs_field_pointer.h:232
Definition: cs_field_pointer.h:254
Definition: cs_field_pointer.h:95
Definition: cs_field_pointer.h:227
Definition: cs_field_pointer.h:196
Definition: cs_field_pointer.h:244
Definition: cs_field_pointer.h:87
Definition: cs_field_pointer.h:126
Definition: cs_field_pointer.h:231
Definition: cs_field_pointer.h:200
Definition: cs_field_pointer.h:117
Definition: cs_field_pointer.h:107
Definition: cs_field_pointer.h:100
Definition: cs_field_pointer.h:188
Definition: cs_field_pointer.h:219
Definition: cs_field_pointer.h:225
Definition: cs_field_pointer.h:239
Definition: cs_field_pointer.h:187
Definition: cs_field_pointer.h:205
Definition: cs_field_pointer.h:150
Definition: cs_field_pointer.h:189
Definition: cs_field_pointer.h:75
Definition: cs_field_pointer.h:176
Definition: cs_field_pointer.h:162
Definition: cs_field_pointer.h:241
Definition: cs_field_pointer.h:238
Definition: cs_field_pointer.h:143
Definition: cs_field_pointer.h:86
Definition: cs_field_pointer.h:77
Definition: cs_field_pointer.h:251
Definition: cs_field_pointer.h:192
Definition: cs_field_pointer.h:264
#define END_C_DECLS
Definition: cs_defs.h:496
Definition: cs_field_pointer.h:152
Definition: cs_field_pointer.h:73
Definition: cs_field_pointer.h:81
Definition: cs_field_pointer.h:211
Definition: cs_field_pointer.h:137
Definition: cs_field_pointer.h:169
Definition: cs_field_pointer.h:163
Definition: cs_field_pointer.h:153
Definition: cs_field_pointer.h:127
Definition: cs_field_pointer.h:154
Definition: cs_field_pointer.h:141
Definition: cs_field_pointer.h:155
Definition: cs_field_pointer.h:195
Definition: cs_field_pointer.h:217
Definition: cs_field_pointer.h:103
Definition: cs_field_pointer.h:98
Definition: cs_field_pointer.h:197
Definition: cs_field_pointer.h:74
Definition: cs_field_pointer.h:109
Definition: cs_field_pointer.h:135
cs_field_pointer_id_t
Definition: cs_field_pointer.h:61
Definition: cs_field_pointer.h:131
Definition: cs_field_pointer.h:246
Definition: cs_field_pointer.h:94
Definition: cs_field_pointer.h:161
Definition: cs_field_pointer.h:193
Definition: cs_field_pointer.h:116
Definition: cs_field_pointer.h:71
Definition: cs_field_pointer.h:174
Definition: cs_field_pointer.h:226
Definition: cs_field_pointer.h:125
Definition: cs_field_pointer.h:248
Definition: cs_field_pointer.h:179
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:372
Definition: cs_field_pointer.h:92
Definition: cs_field_pointer.h:138
Definition: cs_field_pointer.h:146
Definition: cs_field_pointer.h:82
Definition: cs_field_pointer.h:242
Definition: cs_field_pointer.h:190
Definition: cs_field_pointer.h:76
void cs_field_pointer_map_gas_combustion(void)
Map base fields to enumerated pointers for gas combustion.
Definition: cs_field_pointer.c:516
Definition: cs_field_pointer.h:123