9.1
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-2025 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 "base/cs_defs.h"
35#include "base/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
61typedef enum {
62
63 /* Base variables and properties */
64
116 /* Specific physics variables and properties */
117
178 /* Cooling tower fields */
188 /* NCFD fields */
236 /* Added variables (scalars) */
239 /* User-defined arrays */
241
242 /* End of attributes */
243
245
247
253};
254
255/*============================================================================
256 * Global variables
257 *============================================================================*/
258
259/* Pointers */
260
262
263/*=============================================================================
264 * Public function prototypes
265 *============================================================================*/
266
267/*----------------------------------------------------------------------------
268 * Ensure field pointer array is initialized.
269 *----------------------------------------------------------------------------*/
270
271void
273
274/*----------------------------------------------------------------------------
275 * Free all field pointer data.
276 *----------------------------------------------------------------------------*/
277
278void
280
281/*----------------------------------------------------------------------------
282 * Map a simple field to an enumerated pointer.
283 *
284 * The associated field pointer may then be retreived using \ref CS_F_(e).
285 *
286 * parameters:
287 * e <-- field enumerator value
288 * f <-- pointer to field structure
289 *----------------------------------------------------------------------------*/
290
291void
293 cs_field_t *f);
294
295/*----------------------------------------------------------------------------
296 * Map a field to an (enumerated pointer, index) couple.
297 *
298 * This sort of mapping may be used for sets of fields whose size
299 * is not known in advance.
300 *
301 * The associated field pointer may then be retreived using \ref CS_F_(e, i).
302 *
303 * parameters:
304 * e <-- field enumerator value
305 * index <-- field enumerator index
306 * f <-- pointer to field structure
307 *----------------------------------------------------------------------------*/
308
309void
311 int index,
312 cs_field_t *f);
313
314/*----------------------------------------------------------------------------
315 * Map base fields to enumerated pointers.
316 *----------------------------------------------------------------------------*/
317
318void
320
321/*----------------------------------------------------------------------------
322 * Map some boundary fields to enumerated pointers.
323 *----------------------------------------------------------------------------*/
324
325void
327
328/*----------------------------------------------------------------------------
329 * Map base fields to enumerated pointers for atmospheric models
330 *
331 * parameters:
332 * n_chem_species <-- number of chemical species
333 * species_f_if <-- field id for each chemical species
334 *----------------------------------------------------------------------------*/
335
336void
337cs_field_pointer_map_atmospheric(int n_chem_species,
338 const int species_f_id[]);
339
340/*----------------------------------------------------------------------------*/
341
343
344#endif /* __CS_FIELD_POINTER_H__ */
#define BEGIN_C_DECLS
Definition: cs_defs.h:554
#define END_C_DECLS
Definition: cs_defs.h:555
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:317
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:333
void cs_field_pointer_ensure_init(void)
Ensure field pointer array is initialized.
Definition: cs_field_pointer.cpp:173
#define CS_ENUMF_(e)
Macro used for scoping of field pointer enums.
Definition: cs_field_pointer.h:47
cs_field_pointer_id_t
Definition: cs_field_pointer.h:61
@ t
Definition: cs_field_pointer.h:95
@ mass_f
Definition: cs_field_pointer.h:123
@ vel_mean
Definition: cs_field_pointer.h:218
@ user
Definition: cs_field_pointer.h:240
@ head
Definition: cs_field_pointer.h:176
@ volume_f
Definition: cs_field_pointer.h:122
@ alp_bl
Definition: cs_field_pointer.h:79
@ drift_vel
Definition: cs_field_pointer.h:216
@ npm
Definition: cs_field_pointer.h:134
@ qfpzx
Definition: cs_field_pointer.h:198
@ p
Definition: cs_field_pointer.h:67
@ radiance
Definition: cs_field_pointer.h:152
@ gamma_lwfm
Definition: cs_field_pointer.h:227
@ eps_wia
Definition: cs_field_pointer.h:234
@ ym_w
Definition: cs_field_pointer.h:180
@ d32
Definition: cs_field_pointer.h:204
@ xlam
Definition: cs_field_pointer.h:162
@ energy_f
Definition: cs_field_pointer.h:124
@ mol_mass
Definition: cs_field_pointer.h:174
@ elefl
Definition: cs_field_pointer.h:148
@ rad_energy
Definition: cs_field_pointer.h:150
@ pgr
Definition: cs_field_pointer.h:68
@ gamma
Definition: cs_field_pointer.h:201
@ qfpxx
Definition: cs_field_pointer.h:192
@ ti_lwfm
Definition: cs_field_pointer.h:230
@ qfp
Definition: cs_field_pointer.h:191
@ elast
Definition: cs_field_pointer.h:223
@ nusa
Definition: cs_field_pointer.h:83
@ thermal_diff_l
Definition: cs_field_pointer.h:185
@ k
Definition: cs_field_pointer.h:72
@ tau12_t
Definition: cs_field_pointer.h:211
@ pot_t
Definition: cs_field_pointer.h:126
@ h_tot
Definition: cs_field_pointer.h:98
@ vel_rel
Definition: cs_field_pointer.h:219
@ emissivity
Definition: cs_field_pointer.h:164
@ mu
Definition: cs_field_pointer.h:106
@ rad_ck_up
Definition: cs_field_pointer.h:170
@ vsucplus_lwfm
Definition: cs_field_pointer.h:231
@ qfpzy
Definition: cs_field_pointer.h:199
@ eps
Definition: cs_field_pointer.h:73
@ radsc
Definition: cs_field_pointer.h:142
@ ntdrp
Definition: cs_field_pointer.h:127
@ rad_est
Definition: cs_field_pointer.h:154
@ add_var
Definition: cs_field_pointer.h:237
@ cv
Definition: cs_field_pointer.h:104
@ magfl
Definition: cs_field_pointer.h:147
@ fp2m
Definition: cs_field_pointer.h:131
@ flux_b
Definition: cs_field_pointer.h:224
@ lift
Definition: cs_field_pointer.h:212
@ hybrid_blend
Definition: cs_field_pointer.h:86
@ t_poro
Definition: cs_field_pointer.h:114
@ curre
Definition: cs_field_pointer.h:144
@ joulp
Definition: cs_field_pointer.h:141
@ qfpyz
Definition: cs_field_pointer.h:197
@ qinci
Definition: cs_field_pointer.h:160
@ t_kelvin
Definition: cs_field_pointer.h:118
@ ygfm
Definition: cs_field_pointer.h:135
@ yh_l_pack
Definition: cs_field_pointer.h:182
@ dt_dp
Definition: cs_field_pointer.h:220
@ disp_t
Definition: cs_field_pointer.h:213
@ curim
Definition: cs_field_pointer.h:145
@ surf_tens
Definition: cs_field_pointer.h:214
@ potva
Definition: cs_field_pointer.h:139
@ drho_dp
Definition: cs_field_pointer.h:209
@ ycoel
Definition: cs_field_pointer.h:140
@ vel
Definition: cs_field_pointer.h:70
@ mesh_disp
Definition: cs_field_pointer.h:89
@ wlubr
Definition: cs_field_pointer.h:207
@ cp
Definition: cs_field_pointer.h:103
@ poti
Definition: cs_field_pointer.h:138
@ humid
Definition: cs_field_pointer.h:179
@ qinsp
Definition: cs_field_pointer.h:161
@ psi_fs
Definition: cs_field_pointer.h:215
@ qfpxy
Definition: cs_field_pointer.h:193
@ h
Definition: cs_field_pointer.h:94
@ drho_dh
Definition: cs_field_pointer.h:210
@ qp
Definition: cs_field_pointer.h:190
@ e_tot
Definition: cs_field_pointer.h:97
@ th_diff_t
Definition: cs_field_pointer.h:208
@ rad_ck_down
Definition: cs_field_pointer.h:171
@ pack_zone_id
Definition: cs_field_pointer.h:186
@ poro
Definition: cs_field_pointer.h:112
@ rij_wia
Definition: cs_field_pointer.h:232
@ rad_cak
Definition: cs_field_pointer.h:158
@ delta_lwfm
Definition: cs_field_pointer.h:228
@ vism
Definition: cs_field_pointer.h:120
@ rad_abs
Definition: cs_field_pointer.h:156
@ rad_emi
Definition: cs_field_pointer.h:157
@ rad_ist
Definition: cs_field_pointer.h:155
@ fdown
Definition: cs_field_pointer.h:169
@ omg
Definition: cs_field_pointer.h:82
@ fsm
Definition: cs_field_pointer.h:133
@ fnet
Definition: cs_field_pointer.h:165
@ tf_b
Definition: cs_field_pointer.h:225
@ rho
Definition: cs_field_pointer.h:100
@ drag
Definition: cs_field_pointer.h:205
@ yplus
Definition: cs_field_pointer.h:217
@ epa
Definition: cs_field_pointer.h:163
@ coldiff
Definition: cs_field_pointer.h:222
@ rij
Definition: cs_field_pointer.h:75
@ yf_ncond
Definition: cs_field_pointer.h:189
@ potr
Definition: cs_field_pointer.h:137
@ exch_b
Definition: cs_field_pointer.h:226
@ laplf
Definition: cs_field_pointer.h:146
@ rho_b
Definition: cs_field_pointer.h:101
@ hconv
Definition: cs_field_pointer.h:167
@ elech
Definition: cs_field_pointer.h:143
@ kindiff
Definition: cs_field_pointer.h:221
@ thermal_diff_h
Definition: cs_field_pointer.h:184
@ x2
Definition: cs_field_pointer.h:203
@ phi
Definition: cs_field_pointer.h:77
@ fup
Definition: cs_field_pointer.h:168
@ dt
Definition: cs_field_pointer.h:65
@ if_poro
Definition: cs_field_pointer.h:113
@ CS_FIELD_N_POINTERS
Definition: cs_field_pointer.h:244
@ f_bar
Definition: cs_field_pointer.h:78
@ y_l_pack
Definition: cs_field_pointer.h:183
@ t_b
Definition: cs_field_pointer.h:96
@ chemistry
Definition: cs_field_pointer.h:128
@ mu_t
Definition: cs_field_pointer.h:107
@ rad_q
Definition: cs_field_pointer.h:151
@ taui_lwfm
Definition: cs_field_pointer.h:229
@ rij_pwf
Definition: cs_field_pointer.h:233
@ void_f
Definition: cs_field_pointer.h:91
@ ad_mass
Definition: cs_field_pointer.h:206
@ t_l_pack
Definition: cs_field_pointer.h:181
@ vol_f
Definition: cs_field_pointer.h:92
@ lambda
Definition: cs_field_pointer.h:109
@ pfr
Definition: cs_field_pointer.h:69
@ qfpxz
Definition: cs_field_pointer.h:194
@ fm
Definition: cs_field_pointer.h:130
@ th_diff
Definition: cs_field_pointer.h:110
@ qfpyy
Definition: cs_field_pointer.h:196
@ qfpzz
Definition: cs_field_pointer.h:200
@ ia
Definition: cs_field_pointer.h:202
@ fconv
Definition: cs_field_pointer.h:166
@ mesh_u
Definition: cs_field_pointer.h:88
@ qfpyx
Definition: cs_field_pointer.h:195
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:280
struct cs_field_pointer_array_t * cs_glob_field_pointers
Definition: cs_field_pointer.cpp:130
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:250
cs_field_t * f
Definition: cs_field_pointer.h:251
cs_field_t ** p
Definition: cs_field_pointer.h:252
Field descriptor.
Definition: cs_field.h:156