8.3
general documentation
Loading...
Searching...
No Matches
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-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/*----------------------------------------------------------------------------
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
60
61typedef enum {
62
63 /* Base variables and properties */
64
66
71
74
76
81
85
87
89
92
98
101
104
107
110
114
115 /* Specific physics variables and properties */
116
118
120
124
128
131
135
139
159
172
176
182
196
198
200
201 /* Cooling tower fields */
210
211 /* NCFD fields */
250
251 /* Added variables (scalars) */
253
254 /* User-defined arrays */
256
257 /* End of attributes */
258
260
262
264
269
270/*============================================================================
271 * Global variables
272 *============================================================================*/
273
274/* Pointers */
275
277
278/*=============================================================================
279 * Public function prototypes
280 *============================================================================*/
281
282/*----------------------------------------------------------------------------
283 * Ensure field pointer array is initialized.
284 *----------------------------------------------------------------------------*/
285
286void
288
289/*----------------------------------------------------------------------------
290 * Free all field pointer data.
291 *----------------------------------------------------------------------------*/
292
293void
295
296/*----------------------------------------------------------------------------
297 * Map a simple field to an enumerated pointer.
298 *
299 * The associated field pointer may then be retreived using \ref CS_F_(e).
300 *
301 * parameters:
302 * e <-- field enumerator value
303 * f <-- pointer to field structure
304 *----------------------------------------------------------------------------*/
305
306void
308 cs_field_t *f);
309
310/*----------------------------------------------------------------------------
311 * Map a field to an (enumerated pointer, index) couple.
312 *
313 * This sort of mapping may be used for sets of fields whose size
314 * is not known in advance.
315 *
316 * The associated field pointer may then be retreived using \ref CS_F_(e, i).
317 *
318 * parameters:
319 * e <-- field enumerator value
320 * index <-- field enumerator index
321 * f <-- pointer to field structure
322 *----------------------------------------------------------------------------*/
323
324void
326 int index,
327 cs_field_t *f);
328
329/*----------------------------------------------------------------------------
330 * Map base fields to enumerated pointers.
331 *----------------------------------------------------------------------------*/
332
333void
335
336/*----------------------------------------------------------------------------
337 * Map some boundary fields to enumerated pointers.
338 *----------------------------------------------------------------------------*/
339
340void
342
343/*----------------------------------------------------------------------------
344 * Map base fields to enumerated pointers for atmospheric models
345 *
346 * parameters:
347 * n_chem_species <-- number of chemical species
348 * species_f_if <-- field id for each chemical species
349 *----------------------------------------------------------------------------*/
350
351void
352cs_field_pointer_map_atmospheric(int n_chem_species,
353 const int species_f_id[]);
354
355/*----------------------------------------------------------------------------
356 * Map base fields to enumerated pointers for atmospheric models
357 *
358 * parameters:
359 * n_coals <-- number of coals
360 * n_classes <-- number of coal classes
361 *----------------------------------------------------------------------------*/
362
363void
365 int n_classes);
366
367/*----------------------------------------------------------------------------*
368 * Map base fields to enumerated pointers for gas mix model
369 *----------------------------------------------------------------------------*/
370
371void
373
374/*----------------------------------------------------------------------------
375 * Map base fields to enumerated pointers for gas combustion.
376 *----------------------------------------------------------------------------*/
377
378void
380
381/*----------------------------------------------------------------------------*/
382
384
385#endif /* __CS_FIELD_POINTER_H__ */
#define BEGIN_C_DECLS
Definition cs_defs.h:542
#define END_C_DECLS
Definition cs_defs.h:543
struct cs_field_pointer_array_t * cs_glob_field_pointers
Definition cs_field_pointer.cpp:130
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.cpp:232
void cs_field_pointer_map_boundary(void)
Map some boundary fields to enumerated pointers.
Definition cs_field_pointer.cpp:314
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.cpp:330
#define CS_ENUMF_(e)
Macro used for scoping of field pointer enums.
Definition cs_field_pointer.h:47
void cs_field_pointer_map_gas_combustion(void)
Map base fields to enumerated pointers for gas combustion.
Definition cs_field_pointer.cpp:437
void cs_field_pointer_ensure_init(void)
Ensure field pointer array is initialized.
Definition cs_field_pointer.cpp:173
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.cpp:357
cs_field_pointer_id_t
Definition cs_field_pointer.h:61
@ t
Definition cs_field_pointer.h:94
@ mass_f
Definition cs_field_pointer.h:122
@ vel_mean
Definition cs_field_pointer.h:243
@ user
Definition cs_field_pointer.h:255
@ head
Definition cs_field_pointer.h:199
@ volume_f
Definition cs_field_pointer.h:121
@ alp_bl
Definition cs_field_pointer.h:79
@ drift_vel
Definition cs_field_pointer.h:241
@ npm
Definition cs_field_pointer.h:133
@ qfpzx
Definition cs_field_pointer.h:221
@ ynh3
Definition cs_field_pointer.h:157
@ f1m
Definition cs_field_pointer.h:145
@ p
Definition cs_field_pointer.h:67
@ radiance
Definition cs_field_pointer.h:175
@ ym_w
Definition cs_field_pointer.h:203
@ f4m
Definition cs_field_pointer.h:147
@ d32
Definition cs_field_pointer.h:227
@ xlam
Definition cs_field_pointer.h:185
@ coyfp
Definition cs_field_pointer.h:138
@ energy_f
Definition cs_field_pointer.h:123
@ mol_mass
Definition cs_field_pointer.h:197
@ elefl
Definition cs_field_pointer.h:171
@ rad_energy
Definition cs_field_pointer.h:173
@ pgr
Definition cs_field_pointer.h:68
@ gamma
Definition cs_field_pointer.h:224
@ yfm
Definition cs_field_pointer.h:136
@ qfpxx
Definition cs_field_pointer.h:215
@ f2m
Definition cs_field_pointer.h:146
@ qfp
Definition cs_field_pointer.h:214
@ elast
Definition cs_field_pointer.h:248
@ nusa
Definition cs_field_pointer.h:83
@ thermal_diff_l
Definition cs_field_pointer.h:208
@ k
Definition cs_field_pointer.h:72
@ tau12_t
Definition cs_field_pointer.h:234
@ pot_t
Definition cs_field_pointer.h:125
@ h_tot
Definition cs_field_pointer.h:97
@ vel_rel
Definition cs_field_pointer.h:244
@ emissivity
Definition cs_field_pointer.h:187
@ mu
Definition cs_field_pointer.h:105
@ rad_ck_up
Definition cs_field_pointer.h:193
@ yno
Definition cs_field_pointer.h:156
@ qfpzy
Definition cs_field_pointer.h:222
@ eps
Definition cs_field_pointer.h:73
@ radsc
Definition cs_field_pointer.h:165
@ xch
Definition cs_field_pointer.h:141
@ xwt
Definition cs_field_pointer.h:143
@ ntdrp
Definition cs_field_pointer.h:126
@ rad_est
Definition cs_field_pointer.h:177
@ add_var
Definition cs_field_pointer.h:252
@ c_alpha
Definition cs_field_pointer.h:249
@ cv
Definition cs_field_pointer.h:103
@ magfl
Definition cs_field_pointer.h:170
@ fp2m
Definition cs_field_pointer.h:130
@ lift
Definition cs_field_pointer.h:235
@ hybrid_blend
Definition cs_field_pointer.h:86
@ f8m
Definition cs_field_pointer.h:151
@ t_poro
Definition cs_field_pointer.h:113
@ curre
Definition cs_field_pointer.h:167
@ joulp
Definition cs_field_pointer.h:164
@ qfpyz
Definition cs_field_pointer.h:220
@ qinci
Definition cs_field_pointer.h:183
@ t_kelvin
Definition cs_field_pointer.h:117
@ ygfm
Definition cs_field_pointer.h:134
@ yh_l_pack
Definition cs_field_pointer.h:205
@ dt_dp
Definition cs_field_pointer.h:245
@ disp_t
Definition cs_field_pointer.h:236
@ curim
Definition cs_field_pointer.h:168
@ surf_tens
Definition cs_field_pointer.h:237
@ potva
Definition cs_field_pointer.h:162
@ drho_dp
Definition cs_field_pointer.h:232
@ ycoel
Definition cs_field_pointer.h:163
@ vel
Definition cs_field_pointer.h:70
@ wlubr
Definition cs_field_pointer.h:230
@ cp
Definition cs_field_pointer.h:102
@ poti
Definition cs_field_pointer.h:161
@ xck
Definition cs_field_pointer.h:142
@ humid
Definition cs_field_pointer.h:202
@ qinsp
Definition cs_field_pointer.h:184
@ qfpxy
Definition cs_field_pointer.h:216
@ h
Definition cs_field_pointer.h:93
@ drho_dh
Definition cs_field_pointer.h:233
@ f9m
Definition cs_field_pointer.h:152
@ qp
Definition cs_field_pointer.h:213
@ e_tot
Definition cs_field_pointer.h:96
@ th_diff_t
Definition cs_field_pointer.h:231
@ rad_ck_down
Definition cs_field_pointer.h:194
@ pack_zone_id
Definition cs_field_pointer.h:209
@ poro
Definition cs_field_pointer.h:111
@ rad_cak
Definition cs_field_pointer.h:181
@ np
Definition cs_field_pointer.h:140
@ yco2
Definition cs_field_pointer.h:154
@ fj
Definition cs_field_pointer.h:240
@ f7m
Definition cs_field_pointer.h:150
@ vism
Definition cs_field_pointer.h:119
@ rad_abs
Definition cs_field_pointer.h:179
@ rad_emi
Definition cs_field_pointer.h:180
@ rad_ist
Definition cs_field_pointer.h:178
@ fdown
Definition cs_field_pointer.h:192
@ omg
Definition cs_field_pointer.h:82
@ f5m
Definition cs_field_pointer.h:148
@ fsm
Definition cs_field_pointer.h:132
@ fnet
Definition cs_field_pointer.h:188
@ rho
Definition cs_field_pointer.h:99
@ f6m
Definition cs_field_pointer.h:149
@ drag
Definition cs_field_pointer.h:228
@ yplus
Definition cs_field_pointer.h:242
@ sl_corr
Definition cs_field_pointer.h:238
@ epa
Definition cs_field_pointer.h:186
@ coldiff
Definition cs_field_pointer.h:247
@ rij
Definition cs_field_pointer.h:75
@ yf_ncond
Definition cs_field_pointer.h:212
@ yfp2m
Definition cs_field_pointer.h:137
@ potr
Definition cs_field_pointer.h:160
@ h2
Definition cs_field_pointer.h:144
@ fi
Definition cs_field_pointer.h:239
@ laplf
Definition cs_field_pointer.h:169
@ yhcn
Definition cs_field_pointer.h:155
@ rho_b
Definition cs_field_pointer.h:100
@ hconv
Definition cs_field_pointer.h:190
@ elech
Definition cs_field_pointer.h:166
@ kindiff
Definition cs_field_pointer.h:246
@ thermal_diff_h
Definition cs_field_pointer.h:207
@ x2
Definition cs_field_pointer.h:226
@ phi
Definition cs_field_pointer.h:77
@ fup
Definition cs_field_pointer.h:191
@ dt
Definition cs_field_pointer.h:65
@ if_poro
Definition cs_field_pointer.h:112
@ CS_FIELD_N_POINTERS
Definition cs_field_pointer.h:259
@ f_bar
Definition cs_field_pointer.h:78
@ y_l_pack
Definition cs_field_pointer.h:206
@ t_b
Definition cs_field_pointer.h:95
@ chemistry
Definition cs_field_pointer.h:127
@ mu_t
Definition cs_field_pointer.h:106
@ rad_q
Definition cs_field_pointer.h:174
@ void_f
Definition cs_field_pointer.h:90
@ ad_mass
Definition cs_field_pointer.h:229
@ fvp2m
Definition cs_field_pointer.h:153
@ t_l_pack
Definition cs_field_pointer.h:204
@ vol_f
Definition cs_field_pointer.h:91
@ lambda
Definition cs_field_pointer.h:108
@ pfr
Definition cs_field_pointer.h:69
@ qfpxz
Definition cs_field_pointer.h:217
@ fm
Definition cs_field_pointer.h:129
@ th_diff
Definition cs_field_pointer.h:109
@ qfpyy
Definition cs_field_pointer.h:219
@ qfpzz
Definition cs_field_pointer.h:223
@ ia
Definition cs_field_pointer.h:225
@ fconv
Definition cs_field_pointer.h:189
@ mesh_u
Definition cs_field_pointer.h:88
@ qfpyx
Definition cs_field_pointer.h:218
@ hox
Definition cs_field_pointer.h:158
void cs_field_pointer_destroy_all(void)
Free all field pointer data.
Definition cs_field_pointer.cpp:186
void cs_field_pointer_map_base(void)
Map base fields to enumerated pointers.
Definition cs_field_pointer.cpp:277
void cs_field_pointer_map_gas_mix(void)
Map base fields to enumerated pointers for gas mix model.
Definition cs_field_pointer.cpp:424
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.cpp:210
Definition cs_field_pointer.h:265
cs_field_t * f
Definition cs_field_pointer.h:266
cs_field_t ** p
Definition cs_field_pointer.h:267
Field descriptor.
Definition cs_field.h:131