8.3
general documentation
cs_volume_zone.h
Go to the documentation of this file.
1#ifndef __CS_VOLUME_ZONE_H__
2#define __CS_VOLUME_ZONE_H__
3
4/*============================================================================
5 * Volume zones handling.
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 * Standard C library headers
32 *----------------------------------------------------------------------------*/
33
34/*----------------------------------------------------------------------------
35 * Local headers
36 *----------------------------------------------------------------------------*/
37
38#include "cs_base.h"
39#include "cs_mesh_location.h"
40#include "cs_zone.h"
41
42/*----------------------------------------------------------------------------*/
43
45
46/*============================================================================
47 * Macro definitions
48 *============================================================================*/
49
56/*
57 * Zone type
58 */
59
61#define CS_VOLUME_ZONE_INITIALIZATION (1 << 0)
62
64#define CS_VOLUME_ZONE_POROSITY (1 << 1)
65
67#define CS_VOLUME_ZONE_HEAD_LOSS (1 << 2)
68
70#define CS_VOLUME_ZONE_SOURCE_TERM (1 << 3)
71
73#define CS_VOLUME_ZONE_MASS_SOURCE_TERM (1 << 4)
74
76#define CS_VOLUME_ZONE_GWF_SOIL (1 << 5)
77
79#define CS_VOLUME_ZONE_SOLID (1 << 6)
80
82#define CS_VOLUME_ZONE_PHYSICAL_PROPERTIES (1 << 7)
83
86/*============================================================================
87 * Type definitions
88 *============================================================================*/
89
90/*=============================================================================
91 * Global variables
92 *============================================================================*/
93
94/*============================================================================
95 * Public function prototypes
96 *============================================================================*/
97
98/*----------------------------------------------------------------------------*/
106/*----------------------------------------------------------------------------*/
107
108void
110
111/*----------------------------------------------------------------------------*/
115/*----------------------------------------------------------------------------*/
116
117void
119
120/*----------------------------------------------------------------------------*/
124/*----------------------------------------------------------------------------*/
125
126int
128
129/*----------------------------------------------------------------------------*/
135/*----------------------------------------------------------------------------*/
136
137int
139
140/*----------------------------------------------------------------------------*/
148/*----------------------------------------------------------------------------*/
149
150void
151cs_volume_zone_build_all(bool mesh_modified);
152
153/*----------------------------------------------------------------------------*/
163/*----------------------------------------------------------------------------*/
164
165int
166cs_volume_zone_define(const char *name,
167 const char *criteria,
168 int type_flag);
169
170/*----------------------------------------------------------------------------*/
188/*----------------------------------------------------------------------------*/
189
190int
191cs_volume_zone_define_by_func(const char *name,
193 void *input,
194 int type_flag);
195
196/*----------------------------------------------------------------------------*/
206/*----------------------------------------------------------------------------*/
207
208const cs_zone_t *
210
211/*----------------------------------------------------------------------------*/
221/*----------------------------------------------------------------------------*/
222
223const cs_zone_t *
224cs_volume_zone_by_name(const char *name);
225
226/*----------------------------------------------------------------------------*/
236/*----------------------------------------------------------------------------*/
237
238const cs_zone_t *
239cs_volume_zone_by_name_try(const char *name);
240
241/*----------------------------------------------------------------------------*/
251/*----------------------------------------------------------------------------*/
252
253int
254cs_volume_zone_id_by_name(const char *z_name);
255
256/*----------------------------------------------------------------------------*/
263/*----------------------------------------------------------------------------*/
264
265void
267 int type_flag);
268
269/*----------------------------------------------------------------------------*/
276/*----------------------------------------------------------------------------*/
277
278void
280 bool time_varying);
281
282/*----------------------------------------------------------------------------*/
289/*----------------------------------------------------------------------------*/
290
291void
293 bool allow_overlay)
294;
295/*----------------------------------------------------------------------------*/
302/*----------------------------------------------------------------------------*/
303
304const int *
306
307/*----------------------------------------------------------------------------*/
313/*----------------------------------------------------------------------------*/
314
315void
317
318/*----------------------------------------------------------------------------*/
322/*----------------------------------------------------------------------------*/
323
324void
326
327/*----------------------------------------------------------------------------*/
336/*----------------------------------------------------------------------------*/
337
338int
339cs_volume_zone_n_type_zones(int type_flag);
340
341/*----------------------------------------------------------------------------*/
353/*----------------------------------------------------------------------------*/
354
356cs_volume_zone_n_type_cells(int type_flag);
357
358/*----------------------------------------------------------------------------*/
369/*----------------------------------------------------------------------------*/
370
371void
373 cs_lnum_t cell_ids[]);
374
375/*----------------------------------------------------------------------------*/
387/*----------------------------------------------------------------------------*/
388
389void
390cs_volume_zone_tag_cell_type(int zone_type_flag,
391 int tag_value,
392 int tag[]);
393
394/*----------------------------------------------------------------------------*/
398/*----------------------------------------------------------------------------*/
399
400void
402
403/*----------------------------------------------------------------------------*/
404
406
407#endif /* __CS_VOLUME_ZONE_H__ */
#define BEGIN_C_DECLS
Definition: cs_defs.h:542
#define END_C_DECLS
Definition: cs_defs.h:543
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:335
void() cs_mesh_location_select_t(void *input, const cs_mesh_t *m, int location_id, cs_lnum_t *n_elts, cs_lnum_t **elt_ids)
Definition: cs_mesh_location.h:110
int cs_volume_zone_n_zones_time_varying(void)
Return number of volume zones which may vary in time.
Definition: cs_volume_zone.cpp:442
void cs_volume_zone_tag_cell_type(int zone_type_flag, int tag_value, int tag[])
Tag cells of a given zone type.
Definition: cs_volume_zone.cpp:1041
void cs_volume_zone_finalize(void)
Free all volume zone structures.
Definition: cs_volume_zone.cpp:404
void cs_volume_zone_set_type(int id, int type_flag)
Set type flag for a given volume zone.
Definition: cs_volume_zone.cpp:756
int cs_volume_zone_id_by_name(const char *z_name)
Retrieve the volume zone id from its zone name. If the zone name is equal to NULL or has an empty len...
Definition: cs_volume_zone.cpp:727
void cs_volume_zone_set_time_varying(int id, bool time_varying)
Set time varying behavior for a given volume zone.
Definition: cs_volume_zone.cpp:774
cs_lnum_t cs_volume_zone_n_type_cells(int type_flag)
Return number of volume zone cells associated with a given zone flag.
Definition: cs_volume_zone.cpp:974
const int * cs_volume_zone_cell_zone_id(void)
Return pointer to zone id associated with each cell.
Definition: cs_volume_zone.cpp:810
int cs_volume_zone_define(const char *name, const char *criteria, int type_flag)
Define a new volume zone using a selection criteria string.
Definition: cs_volume_zone.cpp:574
const cs_zone_t * cs_volume_zone_by_name_try(const char *name)
Return a pointer to a volume zone based on its name if present.
Definition: cs_volume_zone.cpp:703
void cs_volume_zone_initialize(void)
Initialize volume zone structures.
Definition: cs_volume_zone.cpp:378
const cs_zone_t * cs_volume_zone_by_id(int id)
Return a pointer to a volume zone based on its id.
Definition: cs_volume_zone.cpp:653
int cs_volume_zone_n_type_zones(int type_flag)
Return number of volume zones associated with a given zone flag.
Definition: cs_volume_zone.cpp:947
void cs_volume_zone_log_info(const cs_zone_t *z)
Print info relative to a given volume zone to log file.
Definition: cs_volume_zone.cpp:824
int cs_volume_zone_define_by_func(const char *name, cs_mesh_location_select_t *func, void *input, int type_flag)
Define a new mesh location with an associated selection function.
Definition: cs_volume_zone.cpp:618
void cs_volume_zone_log_setup(void)
Log setup information relative to defined volume zones.
Definition: cs_volume_zone.cpp:921
void cs_volume_zone_select_type_cells(int type_flag, cs_lnum_t cell_ids[])
Select cells associated with volume zones of a given type.
Definition: cs_volume_zone.cpp:1000
void cs_volume_zone_set_overlay(int id, bool allow_overlay)
Set overlay behavior for a given volume zone.
Definition: cs_volume_zone.cpp:792
int cs_volume_zone_n_zones(void)
Return number of volume zones defined.
Definition: cs_volume_zone.cpp:428
const cs_zone_t * cs_volume_zone_by_name(const char *name)
Return a pointer to a volume zone based on its name if present.
Definition: cs_volume_zone.cpp:677
void cs_volume_zone_print_info(void)
Print volume zones information to listing file.
Definition: cs_volume_zone.cpp:1071
void cs_volume_zone_build_all(bool mesh_modified)
Update association of volume zones with a mesh.
Definition: cs_volume_zone.cpp:465
Definition: cs_zone.h:55