8.3
general documentation
fvm_nodal.h
Go to the documentation of this file.
1#ifndef __FVM_NODAL_H__
2#define __FVM_NODAL_H__
3
4/*============================================================================
5 * Main structure for a nodal representation associated with a mesh
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#include "cs_defs.h"
31
32/*----------------------------------------------------------------------------
33 * Local headers
34 *----------------------------------------------------------------------------*/
35
36#include "cs_mesh.h"
37#include "fvm_defs.h"
38#include "fvm_group.h"
39#include "fvm_io_num.h"
40
41/*----------------------------------------------------------------------------*/
42
44
45/*=============================================================================
46 * Macro definitions
47 *============================================================================*/
48
49/*============================================================================
50 * Type definitions
51 *============================================================================*/
52
53/*----------------------------------------------------------------------------
54 * Structure defining a mesh in nodal definition
55 *----------------------------------------------------------------------------*/
56
57typedef struct _fvm_nodal_t fvm_nodal_t;
58
59/*=============================================================================
60 * Static global variables
61 *============================================================================*/
62
63/* Number of vertices associated with each "nodal" element type */
64
65extern const int fvm_nodal_n_vertices_element[];
66
67/*=============================================================================
68 * Public function prototypes
69 *============================================================================*/
70
71/*----------------------------------------------------------------------------
72 * Creation of a nodal mesh representation structure.
73 *
74 * parameters:
75 * name <-- name that should be assigned to the nodal mesh
76 * dim <-- spatial dimension
77 *
78 * returns:
79 * pointer to created nodal mesh representation structure
80 *----------------------------------------------------------------------------*/
81
82fvm_nodal_t *
83fvm_nodal_create(const char *name,
84 int dim);
85
86/*----------------------------------------------------------------------------
87 * Destruction of a nodal mesh representation structure.
88 *
89 * parameters:
90 * this_nodal <-> pointer to structure that should be destroyed
91 *
92 * returns:
93 * null pointer
94 *----------------------------------------------------------------------------*/
95
96fvm_nodal_t *
97fvm_nodal_destroy(fvm_nodal_t *this_nodal);
98
99/*----------------------------------------------------------------------------
100 * Copy a nodal mesh representation structure, sharing arrays with the
101 * original structure.
102 *
103 * parameters:
104 * this_nodal <-> pointer to structure that should be copied
105 *
106 * returns:
107 * pointer to created nodal mesh representation structure
108 *----------------------------------------------------------------------------*/
109
110fvm_nodal_t *
111fvm_nodal_copy(const fvm_nodal_t *this_nodal);
112
113/*----------------------------------------------------------------------------
114 * Reduction of a nodal mesh representation structure: only the associations
115 * (numberings) necessary to redistribution of fields for output are
116 * conserved, the full connectivity being in many cases no longer useful
117 * once it has been output. If the del_vertex_num value is set
118 * to true, vertex-based values may not be output in parallel mode
119 * after this function is called.
120 *
121 * parameters:
122 * this_nodal <-> pointer to structure that should be reduced
123 * del_vertex_num <-- indicates if vertex parent indirection and
124 * I/O numbering are destroyed (1) or not (0)
125 *----------------------------------------------------------------------------*/
126
127void
128fvm_nodal_reduce(fvm_nodal_t *this_nodal,
129 int del_vertex_num);
130
131/*----------------------------------------------------------------------------
132 * Change entity parent numbering; this is useful when entities of the
133 * parent mesh have been renumbered after a nodal mesh representation
134 * structure's creation.
135 *
136 * parameters:
137 * this_nodal <-- nodal mesh structure
138 * new_parent_id <-- pointer to local parent renumbering array
139 * ({0, ..., n-1} <-- {0, ..., n-1})
140 * entity_dim <-- 3 for cells, 2 for faces, 1 for edges,
141 * and 0 for vertices
142 *----------------------------------------------------------------------------*/
143
144void
145fvm_nodal_change_parent_id(fvm_nodal_t *this_nodal,
146 const cs_lnum_t new_parent_id[],
147 int entity_dim);
148
149/*----------------------------------------------------------------------------
150 * Remove entity parent numbering; this is useful for example when we
151 * want to assign coordinates or fields to an extracted mesh using
152 * arrays relative to the mesh, and not to its parent.
153 *
154 * This is equivalent to calling fvm_nodal_change_parent_id(), with
155 * 'trivial' (1 o n) new_parent_id[] values.
156 *
157 * parameters:
158 * this_nodal <-- nodal mesh structure
159 * entity_dim <-- 3 for cells, 2 for faces, 1 for edges,
160 * and 0 for vertices
161 *----------------------------------------------------------------------------*/
162
163void
164fvm_nodal_remove_parent_id(fvm_nodal_t *this_nodal,
165 int entity_dim);
166
167/*----------------------------------------------------------------------------
168 * Build external numbering for entities based on global numbers.
169 *
170 * parameters:
171 * this_nodal <-- nodal mesh structure
172 * parent_global_number <-- pointer to list of global (i.e. domain splitting
173 * independent) parent entity numbers
174 * entity_dim <-- 3 for cells, 2 for faces, 1 for edges,
175 * and 0 for vertices
176 *----------------------------------------------------------------------------*/
177
178void
179fvm_nodal_init_io_num(fvm_nodal_t *this_nodal,
180 const cs_gnum_t parent_global_numbers[],
181 int entity_dim);
182
183/*----------------------------------------------------------------------------
184 * Transfer an existing global numbering structure to a nodal mesh.
185 *
186 * This assumes the local number of vertices is identical to that of
187 * the numberign structure.
188 *
189 * The argument pointer to the global numbering structure is set to NULL
190 * so the caller does not spuriously modify the structure after this call.
191 *
192 * A call to this function may be used instead of fvm_nodal_init_io_num
193 * (for vertices only).
194 *
195 * parameters:
196 * this_nodal <-- nodal mesh structure
197 * io_num <-> pointer to external numbering structure
198 * whose property is transferred to the mesh
199 * independent) parent entity numbers
200 *----------------------------------------------------------------------------*/
201
202void
203fvm_nodal_transfer_vertex_io_num(fvm_nodal_t *this_nodal,
204 fvm_io_num_t **io_num);
205
206/*----------------------------------------------------------------------------
207 * Set entity tags (for non-vertex entities).
208 *
209 * The number of entities of the given dimension may be obtained
210 * through fvm_nodal_get_n_entities(), the tag[] array is populated
211 * in local section order, section by section).
212 *
213 * parameters:
214 * this_nodal <-- nodal mesh structure
215 * tag <-- tag values to assign
216 * entity_dim <-- 3 for cells, 2 for faces, 1 for edges
217 *----------------------------------------------------------------------------*/
218
219void
220fvm_nodal_set_tag(fvm_nodal_t *this_nodal,
221 const int tag[],
222 int entity_dim);
223
224/*----------------------------------------------------------------------------
225 * Remove entity tags.
226 *
227 * parameters:
228 * this_nodal <-- nodal mesh structure
229 * entity_dim <-- 3 for cells, 2 for faces, 1 for edges
230 *----------------------------------------------------------------------------*/
231
232void
233fvm_nodal_remove_tag(fvm_nodal_t *this_nodal,
234 int entity_dim);
235
236/*----------------------------------------------------------------------------
237 * Preset number and list of vertices to assign to a nodal mesh.
238 *
239 * If the parent_vertex_id argument is NULL, the list is assumed to
240 * be {0, 1, ..., n-1}. If parent_vertex_id is given, it specifies a
241 * list of n vertices from a larger set (0 to n-1 numbering).
242 *
243 * Ownership of the given parent vertex numbering array is
244 * transferred to the nodal mesh representation structure.
245 *
246 * This function should be called before fvm_nodal_set_shared_vertices()
247 * or fvm_nodal_transfer_vertices() if we want to force certain
248 * vertices to appear in the mesh (especially if we want to define
249 * a mesh containing only vertices).
250 *
251 * parameters:
252 * this_nodal <-> nodal mesh structure
253 * n_vertices <-- number of vertices to assign
254 * parent_vertex_id <-- parent ids of vertices to assign
255 *----------------------------------------------------------------------------*/
256
257void
258fvm_nodal_define_vertex_list(fvm_nodal_t *this_nodal,
261
262/*----------------------------------------------------------------------------
263 * Assign shared vertex coordinates to an extracted nodal mesh,
264 * renumbering vertex numbers based on those really referenced,
265 * and updating connectivity arrays in accordance.
266 *
267 * This function should be called once all element sections have
268 * been added to a nodal mesh representation.
269 *
270 * parameters:
271 * this_nodal <-> nodal mesh structure
272 * vertex_coords <-- coordinates of parent vertices (interlaced)
273 *----------------------------------------------------------------------------*/
274
275void
276fvm_nodal_set_shared_vertices(fvm_nodal_t *this_nodal,
277 const cs_coord_t vertex_coords[]);
278
279/*----------------------------------------------------------------------------
280 * Assign private vertex coordinates to a nodal mesh,
281 * renumbering vertex numbers based on those really referenced,
282 * and updating connectivity arrays in accordance.
283 *
284 * Ownership of the given coordinates array is transferred to
285 * the nodal mesh representation structure.
286 *
287 * This function should only be called once all element sections
288 * have been added to a nodal mesh representation.
289 *
290 * parameters:
291 * this_nodal <-> nodal mesh structure
292 * vertex_coords <-- coordinates of parent vertices (interlaced)
293 *
294 * returns:
295 * updated pointer to vertex_coords (may be different from initial
296 * argument if vertices were renumbered).
297 *----------------------------------------------------------------------------*/
298
300fvm_nodal_transfer_vertices(fvm_nodal_t *this_nodal,
302
303/*----------------------------------------------------------------------------
304 * Make vertex coordinates of a nodal mesh private.
305 *
306 * If vertex coordinates were previously shared, those coordinates that
307 * are actually references are copied, and the relation to parent vertices
308 * is discarded.
309 *
310 * If vertices were already private, the mesh is not modified.
311 *
312 * parameters:
313 * this_nodal <-> nodal mesh structure
314 *----------------------------------------------------------------------------*/
315
316void
317fvm_nodal_make_vertices_private(fvm_nodal_t *this_nodal);
318
319/*----------------------------------------------------------------------------
320 * Assign group class set descriptions to a nodal mesh.
321 *
322 * The structure builds its own copy of the group class sets,
323 * renumbering them so as to discard those not referenced.
324 * Empty group classes are also renumbered to zero.
325 *
326 * This function should only be called once all element sections
327 * have been added to a nodal mesh representation.
328 *
329 * parameters:
330 * this_nodal <-> nodal mesh structure
331 * gc_set <-- group class set descriptions
332 *----------------------------------------------------------------------------*/
333
334void
335fvm_nodal_set_group_class_set(fvm_nodal_t *this_nodal,
337
338/*----------------------------------------------------------------------------
339 * Assign global vertex labels to a nodal mesh.
340 *
341 * As these are expected to be used only for small sets (i.e. probes)
342 * where the point set is built from a global definition and data movement
343 * would add complexity and overhead, the labels refer to a global view
344 * on rank 0.
345 *
346 * The size of the labels pointers array should be the same as that
347 * returned by fvm_nodal_n_g_vertices();
348 *
349 * This function should only be called once the nodal mesh representation
350 * has been completed, as most functions modifying its vertex definitions
351 * will remove these labels.
352 *
353 * parameters:
354 * this_nodal <-> nodal mesh structure
355 * g_labels <-- global vertex labels, or NULL
356 *----------------------------------------------------------------------------*/
357
358void
359fvm_nodal_transfer_global_vertex_labels(fvm_nodal_t *this_nodal,
360 char *g_labels[]);
361
362/*----------------------------------------------------------------------------
363 * Obtain the name of a nodal mesh.
364 *
365 * parameters:
366 * this_nodal <-- pointer to nodal mesh structure
367 *
368 * returns:
369 * pointer to constant string containing the mesh name
370 *----------------------------------------------------------------------------*/
371
372const char *
373fvm_nodal_get_name(const fvm_nodal_t *this_nodal);
374
375/*----------------------------------------------------------------------------
376 * Return spatial dimension of the nodal mesh.
377 *
378 * parameters:
379 * this_nodal <-- pointer to nodal mesh structure
380 *
381 * returns:
382 * spatial dimension
383 *----------------------------------------------------------------------------*/
384
385int
386fvm_nodal_get_dim(const fvm_nodal_t *this_nodal);
387
388/*----------------------------------------------------------------------------
389 * Return maximum dimension of entities in a nodal mesh.
390 *
391 * parameters:
392 * this_nodal <-- pointer to nodal mesh structure
393 *
394 * returns:
395 * maximum dimension of entities in mesh (0 to 3)
396 *----------------------------------------------------------------------------*/
397
398int
399fvm_nodal_get_max_entity_dim(const fvm_nodal_t *this_nodal);
400
401/*----------------------------------------------------------------------------
402 * Return number of entities of a given dimension in a nodal mesh.
403 *
404 * parameters:
405 * this_nodal <-- pointer to nodal mesh structure
406 * entity_dim <-- dimension of entities we want to count (0 to 3)
407 *
408 * returns:
409 * number of entities of given dimension in mesh
410 *----------------------------------------------------------------------------*/
411
413fvm_nodal_get_n_entities(const fvm_nodal_t *this_nodal,
414 int entity_dim);
415
416/*----------------------------------------------------------------------------
417 * Return global number of vertices associated with nodal mesh.
418 *
419 * parameters:
420 * this_nodal <-- pointer to nodal mesh structure
421 *
422 * returns:
423 * global number of vertices associated with nodal mesh
424 *----------------------------------------------------------------------------*/
425
427fvm_nodal_get_n_g_vertices(const fvm_nodal_t *this_nodal);
428
429/*----------------------------------------------------------------------------
430 * Return global number of elements of a given type associated with nodal mesh.
431 *
432 * parameters:
433 * this_nodal <-- pointer to nodal mesh structure
434 * element_type <-- type of elements for query
435 *
436 * returns:
437 * global number of elements of the given type associated with nodal mesh
438 *----------------------------------------------------------------------------*/
439
441fvm_nodal_get_n_g_elements(const fvm_nodal_t *this_nodal,
442 fvm_element_t element_type);
443
444/*----------------------------------------------------------------------------
445 * Return local number of elements of a given type associated with nodal mesh.
446 *
447 * parameters:
448 * this_nodal <-- pointer to nodal mesh structure
449 * element_type <-- type of elements for query
450 *
451 * returns:
452 * local number of elements of the given type associated with nodal mesh
453 *----------------------------------------------------------------------------*/
454
456fvm_nodal_get_n_elements(const fvm_nodal_t *this_nodal,
457 fvm_element_t element_type);
458
459/*----------------------------------------------------------------------------
460 * Return local parent numbering array for all entities of a given
461 * dimension in a nodal mesh.
462 *
463 * The number of entities of the given dimension may be obtained
464 * through fvm_nodal_get_n_entities(), the parent_num[] array is populated
465 * with the parent entity numbers of those entities, in order (i.e. in
466 * local section order, section by section).
467 *
468 * This function is similar to fvm_nodal_get_parent_num(), but returns
469 * numbers (1 to n) instead of ids (0 to n-1).
470 *
471 * parameters:
472 * this_nodal <-- pointer to nodal mesh structure
473 * entity_dim <-- dimension of entities we are interested in (0 to 3)
474 * parent_num --> entity parent numbering (array must be pre-allocated)
475 *----------------------------------------------------------------------------*/
476
477void
478fvm_nodal_get_parent_num(const fvm_nodal_t *this_nodal,
479 int entity_dim,
480 cs_lnum_t parent_num[]);
481
482/*----------------------------------------------------------------------------
483 * Return local parent id array for all entities of a given
484 * dimension in a nodal mesh.
485 *
486 * The number of entities of the given dimension may be obtained
487 * through fvm_nodal_get_n_entities(), the parent_num[] array is populated
488 * with the parent entity numbers of those entities, in order (i.e. in
489 * local section order, section by section).
490 *
491 * parameters:
492 * this_nodal <-- pointer to nodal mesh structure
493 * entity_dim <-- dimension of entities we are interested in (0 to 3)
494 * parent_id --> entity parent id (array must be pre-allocated)
495 *----------------------------------------------------------------------------*/
496
497void
498fvm_nodal_get_parent_id(const fvm_nodal_t *this_nodal,
499 int entity_dim,
500 cs_lnum_t parent_id[]);
501
502/*----------------------------------------------------------------------------
503 * Return pointer to global vertex labels of a nodal mesh.
504 *
505 * As these are expected to be used only for small sets (i.e. probes)
506 * where the point set is built from a global definition and data movement
507 * would adds complexity and overhead, the labels refer to a global view
508 * on rank 0; for the same reason, only shared labels are needed.
509 *
510 * The size of the labels pointers array returned should be the same
511 * as that returned by fvm_nodal_n_g_vertices();
512 *
513 * parameters:
514 * this_nodal <-> nodal mesh structure
515 *
516 * returns:
517 * pointer to global vertex labels, or NULL
518 *----------------------------------------------------------------------------*/
519
520const char **
521fvm_nodal_get_global_vertex_labels(const fvm_nodal_t *this_nodal);
522
523/*----------------------------------------------------------------------------
524 * Return a const pointer to a nodal mesh representation's parent mesh.
525 *
526 * parameters:
527 * this_nodal <-> pointer to structure that should be reduced
528 *
529 * return:
530 * const pointer to parent mesh
531 *----------------------------------------------------------------------------*/
532
533const cs_mesh_t *
534fvm_nodal_get_parent(const fvm_nodal_t *this_nodal);
535
536/*----------------------------------------------------------------------------
537 * Associate a parent mesh to a nodal mesh representation structure.
538 *
539 * parameters:
540 * this_nodal <-> pointer to structure that should be reduced
541 * parent <-- const pointer to parent mesh
542 *----------------------------------------------------------------------------*/
543
544void
545fvm_nodal_set_parent(fvm_nodal_t *this_nodal,
546 const cs_mesh_t *parent);
547
548/*----------------------------------------------------------------------------
549 * Compute tesselation a a nodal mesh's sections of a given type, and add the
550 * corresponding structure to the mesh representation.
551 *
552 * If global element numbers are used (i.e. in parallel mode), this function
553 * should be only be used after calling fvm_nodal_init_io_num().
554 *
555 * If some mesh sections have already been tesselated, their tesselation
556 * is unchanged.
557 *
558 * parameters:
559 * this_nodal <-> pointer to nodal mesh structure
560 * type <-> element type that should be tesselated
561 * error_count --> number of elements with a tesselation error
562 * counter (optional)
563 *----------------------------------------------------------------------------*/
564
565void
566fvm_nodal_tesselate(fvm_nodal_t *this_nodal,
567 fvm_element_t type,
568 cs_lnum_t *error_count);
569
570/*----------------------------------------------------------------------------
571 * Build a nodal representation structure based on extraction of a
572 * mesh's edges.
573 *
574 * parameters:
575 * name <-- name to assign to extracted mesh
576 * this_nodal <-> pointer to nodal mesh structure
577 *----------------------------------------------------------------------------*/
578
579fvm_nodal_t *
580fvm_nodal_copy_edges(const char *name,
581 const fvm_nodal_t *this_nodal);
582
583/*----------------------------------------------------------------------------
584 * Dump printout of a nodal representation structure.
585 *
586 * parameters:
587 * this_nodal <-- pointer to structure that should be dumped
588 *----------------------------------------------------------------------------*/
589
590void
591fvm_nodal_dump(const fvm_nodal_t *this_nodal);
592
593/*----------------------------------------------------------------------------*/
594
596
597#endif /* __FVM_NODAL_H__ */
#define BEGIN_C_DECLS
Definition: cs_defs.h:542
double cs_coord_t
Definition: cs_defs.h:340
uint64_t cs_gnum_t
global mesh entity number
Definition: cs_defs.h:325
#define END_C_DECLS
Definition: cs_defs.h:543
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:335
fvm_element_t
Definition: fvm_defs.h:48
struct _fvm_group_class_set_t fvm_group_class_set_t
Definition: fvm_group.h:60
struct _fvm_io_num_t fvm_io_num_t
Definition: fvm_io_num.h:72
void fvm_nodal_remove_tag(fvm_nodal_t *this_nodal, int entity_dim)
Definition: fvm_nodal.cpp:1576
void fvm_nodal_transfer_vertex_io_num(fvm_nodal_t *this_nodal, fvm_io_num_t **io_num)
Definition: fvm_nodal.cpp:1529
void fvm_nodal_remove_parent_id(fvm_nodal_t *this_nodal, int entity_dim)
Definition: fvm_nodal.cpp:1438
const char ** fvm_nodal_get_global_vertex_labels(const fvm_nodal_t *this_nodal)
Definition: fvm_nodal.cpp:2222
void fvm_nodal_init_io_num(fvm_nodal_t *this_nodal, const cs_gnum_t parent_global_numbers[], int entity_dim)
Definition: fvm_nodal.cpp:1481
void fvm_nodal_set_group_class_set(fvm_nodal_t *this_nodal, const fvm_group_class_set_t *gc_set)
Definition: fvm_nodal.cpp:1799
const char * fvm_nodal_get_name(const fvm_nodal_t *this_nodal)
Definition: fvm_nodal.cpp:1915
cs_lnum_t fvm_nodal_get_n_entities(const fvm_nodal_t *this_nodal, int entity_dim)
Definition: fvm_nodal.cpp:1977
const cs_mesh_t * fvm_nodal_get_parent(const fvm_nodal_t *this_nodal)
Definition: fvm_nodal.cpp:2240
void fvm_nodal_transfer_global_vertex_labels(fvm_nodal_t *this_nodal, char *g_labels[])
Definition: fvm_nodal.cpp:1894
void fvm_nodal_dump(const fvm_nodal_t *this_nodal)
Definition: fvm_nodal.cpp:2622
fvm_nodal_t * fvm_nodal_create(const char *name, int dim)
Definition: fvm_nodal.cpp:1134
int fvm_nodal_get_max_entity_dim(const fvm_nodal_t *this_nodal)
Definition: fvm_nodal.cpp:1949
void fvm_nodal_tesselate(fvm_nodal_t *this_nodal, fvm_element_t type, cs_lnum_t *error_count)
Definition: fvm_nodal.cpp:2278
cs_lnum_t fvm_nodal_get_n_elements(const fvm_nodal_t *this_nodal, fvm_element_t element_type)
Definition: fvm_nodal.cpp:2061
void fvm_nodal_set_shared_vertices(fvm_nodal_t *this_nodal, const cs_coord_t vertex_coords[])
Definition: fvm_nodal.cpp:1642
cs_coord_t * fvm_nodal_transfer_vertices(fvm_nodal_t *this_nodal, cs_coord_t vertex_coords[])
Definition: fvm_nodal.cpp:1688
cs_gnum_t fvm_nodal_get_n_g_elements(const fvm_nodal_t *this_nodal, fvm_element_t element_type)
Definition: fvm_nodal.cpp:2032
fvm_nodal_t * fvm_nodal_copy_edges(const char *name, const fvm_nodal_t *this_nodal)
Definition: fvm_nodal.cpp:2327
void fvm_nodal_make_vertices_private(fvm_nodal_t *this_nodal)
Definition: fvm_nodal.cpp:1744
void fvm_nodal_get_parent_num(const fvm_nodal_t *this_nodal, int entity_dim, cs_lnum_t parent_num[])
Definition: fvm_nodal.cpp:2097
void fvm_nodal_get_parent_id(const fvm_nodal_t *this_nodal, int entity_dim, cs_lnum_t parent_id[])
Definition: fvm_nodal.cpp:2158
const int fvm_nodal_n_vertices_element[]
Definition: fvm_nodal.cpp:141
int fvm_nodal_get_dim(const fvm_nodal_t *this_nodal)
Definition: fvm_nodal.cpp:1933
void fvm_nodal_change_parent_id(fvm_nodal_t *this_nodal, const cs_lnum_t new_parent_id[], int entity_dim)
Definition: fvm_nodal.cpp:1383
void fvm_nodal_define_vertex_list(fvm_nodal_t *this_nodal, cs_lnum_t n_vertices, cs_lnum_t parent_vertex_id[])
Definition: fvm_nodal.cpp:1608
fvm_nodal_t * fvm_nodal_copy(const fvm_nodal_t *this_nodal)
Definition: fvm_nodal.cpp:1250
void fvm_nodal_set_parent(fvm_nodal_t *this_nodal, const cs_mesh_t *parent)
Definition: fvm_nodal.cpp:2254
cs_gnum_t fvm_nodal_get_n_g_vertices(const fvm_nodal_t *this_nodal)
Definition: fvm_nodal.cpp:2015
fvm_nodal_t * fvm_nodal_destroy(fvm_nodal_t *this_nodal)
Definition: fvm_nodal.cpp:1194
void fvm_nodal_set_tag(fvm_nodal_t *this_nodal, const int tag[], int entity_dim)
Definition: fvm_nodal.cpp:1551
void fvm_nodal_reduce(fvm_nodal_t *this_nodal, int del_vertex_num)
Definition: fvm_nodal.cpp:1327
Definition: fvm_nodal_priv.h:159
const cs_coord_t * vertex_coords
Definition: fvm_nodal_priv.h:183
char * name
Definition: fvm_nodal_priv.h:164
int dim
Definition: fvm_nodal_priv.h:166
const cs_mesh_t * parent
Definition: fvm_nodal_priv.h:231
fvm_group_class_set_t * gc_set
Definition: fvm_nodal_priv.h:219
const cs_lnum_t * parent_vertex_id
Definition: fvm_nodal_priv.h:189
cs_lnum_t n_vertices
Definition: fvm_nodal_priv.h:178
Definition: cs_mesh.h:85