9.2
general documentation
fvm_group.h
Go to the documentation of this file.
1#ifndef FVM_GROUP_H
2#define FVM_GROUP_H
3
4/*============================================================================
5 * Definition of entity groups
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#include "base/cs_defs.h"
31
32/*----------------------------------------------------------------------------
33 * Local headers
34 *----------------------------------------------------------------------------*/
35
36#include "fvm/fvm_defs.h"
37
38/*=============================================================================
39 * Macro definitions
40 *============================================================================*/
41
42/*============================================================================
43 * Type definitions
44 *============================================================================*/
45
46/*----------------------------------------------------------------------------
47 * Structure defining (equivalence) classes of groups
48 *----------------------------------------------------------------------------*/
49
50/*
51 Pointer to opaque group class and group class set objects.
52 The structure contents are private, and are defined in fvm_group.c
53*/
54
55typedef struct _fvm_group_class_t fvm_group_class_t;
56typedef struct _fvm_group_class_set_t fvm_group_class_set_t;
57
58/*=============================================================================
59 * Static global variables
60 *============================================================================*/
61
62/*=============================================================================
63 * Public function prototypes
64 *============================================================================*/
65
66/*----------------------------------------------------------------------------
67 * Return the number of groups of a group class.
68 *
69 * parameters:
70 * this_group_class <-- pointer to group class structure
71 *
72 * returns:
73 * number of groups in group class
74 *----------------------------------------------------------------------------*/
75
76int
77fvm_group_class_get_n_groups(const fvm_group_class_t *this_group_class);
78
79/*----------------------------------------------------------------------------
80 * Return the array of group names of a group class.
81 *
82 * parameters:
83 * this_group_class <-- pointer to group class structure
84 *
85 * returns:
86 * pointer to array of group names in group class
87 *----------------------------------------------------------------------------*/
88
89const char **
91
92/*----------------------------------------------------------------------------
93 * Creation of a group class set structure.
94 *
95 * returns:
96 * pointer to created group class set structure
97 *----------------------------------------------------------------------------*/
98
101
102/*----------------------------------------------------------------------------
103 * Add a group class to a set.
104 *
105 * parameters:
106 * this_group_class_set <-> pointer to group class set structure
107 * n_groups <-- number of groups in class
108 * group_names <-- array of group names
109 *----------------------------------------------------------------------------*/
110
111void
113 int n_groups,
114 const char **group_names);
115
116/*----------------------------------------------------------------------------
117 * Destruction of a group class set structure.
118 *
119 * parameters:
120 * this_class_set <-- pointer to structure which should be destroyed
121 *
122 * returns:
123 * null pointer
124 *----------------------------------------------------------------------------*/
125
128
129/*----------------------------------------------------------------------------
130 * Return number of classes in a group class set.
131 *
132 * parameters:
133 * this_group_class_set <-> pointer to group class set structure
134 *
135 * returns:
136 * number of classes in a group class set
137 *----------------------------------------------------------------------------*/
138
139int
140fvm_group_class_set_size(const fvm_group_class_set_t *this_group_class_set);
141
142/*----------------------------------------------------------------------------
143 * Return pointer to a given group class in a group class set.
144 *
145 * parameters:
146 * this_group_class_set <-- pointer to group class set structure
147 * group_class_id <-- index of group class in set (0 to n-1)
148 *
149 * returns:
150 * pointer to group class structure
151 *----------------------------------------------------------------------------*/
152
153const fvm_group_class_t *
154fvm_group_class_set_get(const fvm_group_class_set_t *this_group_class_set,
155 int group_class_id);
156
157/*----------------------------------------------------------------------------
158 * Copy a group class set, optionally with a renumbering array.
159 *
160 * parameters:
161 * this_class_set <-- pointer to group class set to be copied
162 * n_renums <-- number of group classes
163 * renum <-- group class renumbering (1 to n), or NULL
164 *
165 * returns:
166 * pointer to new copy of group class set
167 *----------------------------------------------------------------------------*/
168
170fvm_group_class_set_copy(const fvm_group_class_set_t *this_group_class_set,
171 int n_renums,
172 int renum[]);
173
174/*----------------------------------------------------------------------------
175 * Dump printout of a group class set
176 *
177 * parameters:
178 * this_class_set <-- pointer to group class set to be dumped
179 *----------------------------------------------------------------------------*/
180
181void
182fvm_group_class_set_dump(const fvm_group_class_set_t *this_group_class_set);
183
184/*----------------------------------------------------------------------------*/
185
186#endif /* FVM_GROUP_H */
fvm_group_class_set_t * fvm_group_class_set_copy(const fvm_group_class_set_t *this_group_class_set, int n_renums, int renum[])
Definition: fvm_group.cpp:522
struct _fvm_group_class_t fvm_group_class_t
Definition: fvm_group.h:55
struct _fvm_group_class_set_t fvm_group_class_set_t
Definition: fvm_group.h:56
int fvm_group_class_set_size(const fvm_group_class_set_t *this_group_class_set)
Definition: fvm_group.cpp:474
const fvm_group_class_t * fvm_group_class_set_get(const fvm_group_class_set_t *this_group_class_set, int group_class_id)
Definition: fvm_group.cpp:496
void fvm_group_class_set_add(fvm_group_class_set_t *this_group_class_set, int n_groups, const char **group_names)
Definition: fvm_group.cpp:392
fvm_group_class_set_t * fvm_group_class_set_destroy(fvm_group_class_set_t *this_class_set)
Definition: fvm_group.cpp:440
int fvm_group_class_get_n_groups(const fvm_group_class_t *this_group_class)
Definition: fvm_group.cpp:326
fvm_group_class_set_t * fvm_group_class_set_create(void)
Definition: fvm_group.cpp:367
void fvm_group_class_set_dump(const fvm_group_class_set_t *this_group_class_set)
Definition: fvm_group.cpp:560
const char ** fvm_group_class_get_group_names(const fvm_group_class_t *this_group_class)
Definition: fvm_group.cpp:348