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