My Project
programmer's 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-2019 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 
57 typedef 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 
65 extern 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 
82 fvm_nodal_t *
83 fvm_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 
96 fvm_nodal_t *
97 fvm_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 
110 fvm_nodal_t *
111 fvm_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 
127 void
128 fvm_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_num <-- pointer to local parent renumbering array
139  * ({1, ..., n} <-- {1, ..., n})
140  * entity_dim <-- 3 for cells, 2 for faces, 1 for edges,
141  * and 0 for vertices
142  *----------------------------------------------------------------------------*/
143 
144 void
145 fvm_nodal_change_parent_num(fvm_nodal_t *this_nodal,
146  const cs_lnum_t new_parent_num[],
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_num(), with
155  * 'trivial' (1 o n) new_parent_num[] 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 
163 void
164 fvm_nodal_remove_parent_num(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 
178 void
179 fvm_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 
202 void
203 fvm_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 
219 void
220 fvm_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 
232 void
233 fvm_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_num argument is NULL, the list is assumed to
240  * be {1, 2, ..., n}. If parent_vertex_num is given, it specifies a
241  * list of n vertices from a larger set (1 to n 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_num <-- parent numbers of vertices to assign
255  *----------------------------------------------------------------------------*/
256 
257 void
258 fvm_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 
275 void
276 fvm_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 
299 cs_coord_t *
300 fvm_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 
316 void
317 fvm_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 
334 void
335 fvm_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 
358 void
359 fvm_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 
372 const char *
373 fvm_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 
385 int
386 fvm_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 
398 int
399 fvm_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 
412 cs_lnum_t
413 fvm_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 
426 cs_gnum_t
427 fvm_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 
440 cs_gnum_t
441 fvm_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 
455 cs_lnum_t
456 fvm_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  * parameters:
469  * this_nodal <-- pointer to nodal mesh structure
470  * entity_dim <-- dimension of entities we are interested in (0 to 3)
471  * parent_num --> entity parent numbering (array must be pre-allocated)
472  *----------------------------------------------------------------------------*/
473 
474 void
475 fvm_nodal_get_parent_num(const fvm_nodal_t *this_nodal,
476  int entity_dim,
477  cs_lnum_t parent_num[]);
478 
479 /*----------------------------------------------------------------------------
480  * Return pointer to global vertex labels of a nodal mesh.
481  *
482  * As these are expected to be used only for small sets (i.e. probes)
483  * where the point set is built from a global definition and data movement
484  * would adds complexity and overhead, the labels refer to a global view
485  * on rank 0; for the same reason, only shared labels are needed.
486  *
487  * The size of the labels pointers array returned should be the same
488  * as that returned by fvm_nodal_n_g_vertices();
489  *
490  * parameters:
491  * this_nodal <-> nodal mesh structure
492  *
493  * returns:
494  * pointer to global vertex labels, or NULL
495  *----------------------------------------------------------------------------*/
496 
497 const char **
498 fvm_nodal_get_global_vertex_labels(const fvm_nodal_t *this_nodal);
499 
500 /*----------------------------------------------------------------------------
501  * Return a const pointer to a nodal mesh representation's parent mesh.
502  *
503  * parameters:
504  * this_nodal <-> pointer to structure that should be reduced
505  *
506  * return:
507  * const pointer to parent mesh
508  *----------------------------------------------------------------------------*/
509 
510 const cs_mesh_t *
511 fvm_nodal_get_parent(const fvm_nodal_t *this_nodal);
512 
513 /*----------------------------------------------------------------------------
514  * Associate a parent mesh to a nodal mesh representation structure.
515  *
516  * parameters:
517  * this_nodal <-> pointer to structure that should be reduced
518  * parent <-- const pointer to parent mesh
519  *----------------------------------------------------------------------------*/
520 
521 void
522 fvm_nodal_set_parent(fvm_nodal_t *this_nodal,
523  const cs_mesh_t *parent);
524 
525 /*----------------------------------------------------------------------------
526  * Compute tesselation a a nodal mesh's sections of a given type, and add the
527  * corresponding structure to the mesh representation.
528  *
529  * If global element numbers are used (i.e. in parallel mode), this function
530  * should be only be used after calling fvm_nodal_init_io_num().
531  *
532  * If some mesh sections have already been tesselated, their tesselation
533  * is unchanged.
534  *
535  * parameters:
536  * this_nodal <-> pointer to nodal mesh structure
537  * type <-> element type that should be tesselated
538  * error_count --> number of elements with a tesselation error
539  * counter (optional)
540  *----------------------------------------------------------------------------*/
541 
542 void
543 fvm_nodal_tesselate(fvm_nodal_t *this_nodal,
545  cs_lnum_t *error_count);
546 
547 /*----------------------------------------------------------------------------
548  * Build a nodal representation structure based on extraction of a
549  * mesh's edges.
550  *
551  * parameters:
552  * name <-- name to assign to extracted mesh
553  * this_nodal <-> pointer to nodal mesh structure
554  *----------------------------------------------------------------------------*/
555 
556 fvm_nodal_t *
557 fvm_nodal_copy_edges(const char *name,
558  const fvm_nodal_t *this_nodal);
559 
560 /*----------------------------------------------------------------------------
561  * Dump printout of a nodal representation structure.
562  *
563  * parameters:
564  * this_nodal <-- pointer to structure that should be dumped
565  *----------------------------------------------------------------------------*/
566 
567 void
568 fvm_nodal_dump(const fvm_nodal_t *this_nodal);
569 
570 /*----------------------------------------------------------------------------*/
571 
573 
574 #endif /* __FVM_NODAL_H__ */
cs_defs.h
fvm_nodal_set_parent
void fvm_nodal_set_parent(fvm_nodal_t *this_nodal, const cs_mesh_t *parent)
Definition: fvm_nodal.c:2199
fvm_nodal_destroy
fvm_nodal_t * fvm_nodal_destroy(fvm_nodal_t *this_nodal)
Definition: fvm_nodal.c:1192
fvm_nodal_get_n_elements
cs_lnum_t fvm_nodal_get_n_elements(const fvm_nodal_t *this_nodal, fvm_element_t element_type)
Definition: fvm_nodal.c:2067
_fvm_nodal_t::parent_vertex_num
const cs_lnum_t * parent_vertex_num
Definition: fvm_nodal_priv.h:184
fvm_nodal_set_shared_vertices
void fvm_nodal_set_shared_vertices(fvm_nodal_t *this_nodal, const cs_coord_t vertex_coords[])
Definition: fvm_nodal.c:1643
fvm_nodal_tesselate
void fvm_nodal_tesselate(fvm_nodal_t *this_nodal, fvm_element_t type, cs_lnum_t *error_count)
Definition: fvm_nodal.c:2223
fvm_nodal_remove_parent_num
void fvm_nodal_remove_parent_num(fvm_nodal_t *this_nodal, int entity_dim)
Definition: fvm_nodal.c:1436
fvm_nodal_get_global_vertex_labels
const char ** fvm_nodal_get_global_vertex_labels(const fvm_nodal_t *this_nodal)
Definition: fvm_nodal.c:2167
fvm_group_class_set_t
struct _fvm_group_class_set_t fvm_group_class_set_t
Definition: fvm_group.h:60
fvm_io_num_t
struct _fvm_io_num_t fvm_io_num_t
Definition: fvm_io_num.h:72
fvm_io_num.h
fvm_nodal_create
fvm_nodal_t * fvm_nodal_create(const char *name, int dim)
Definition: fvm_nodal.c:1132
_fvm_nodal_t::dim
int dim
Definition: fvm_nodal_priv.h:161
END_C_DECLS
#define END_C_DECLS
Definition: cs_defs.h:468
fvm_group.h
fvm_nodal_remove_tag
void fvm_nodal_remove_tag(fvm_nodal_t *this_nodal, int entity_dim)
Definition: fvm_nodal.c:1577
fvm_nodal_change_parent_num
void fvm_nodal_change_parent_num(fvm_nodal_t *this_nodal, const cs_lnum_t new_parent_num[], int entity_dim)
Definition: fvm_nodal.c:1381
fvm_nodal_get_dim
int fvm_nodal_get_dim(const fvm_nodal_t *this_nodal)
Definition: fvm_nodal.c:1939
BEGIN_C_DECLS
#define BEGIN_C_DECLS
Definition: cs_defs.h:467
fvm_nodal_transfer_vertices
cs_coord_t * fvm_nodal_transfer_vertices(fvm_nodal_t *this_nodal, cs_coord_t vertex_coords[])
Definition: fvm_nodal.c:1689
fvm_nodal_get_name
const char * fvm_nodal_get_name(const fvm_nodal_t *this_nodal)
Definition: fvm_nodal.c:1921
fvm_nodal_make_vertices_private
void fvm_nodal_make_vertices_private(fvm_nodal_t *this_nodal)
Definition: fvm_nodal.c:1748
fvm_nodal_init_io_num
void fvm_nodal_init_io_num(fvm_nodal_t *this_nodal, const cs_gnum_t parent_global_numbers[], int entity_dim)
Definition: fvm_nodal.c:1479
fvm_nodal_get_max_entity_dim
int fvm_nodal_get_max_entity_dim(const fvm_nodal_t *this_nodal)
Definition: fvm_nodal.c:1955
fvm_nodal_transfer_global_vertex_labels
void fvm_nodal_transfer_global_vertex_labels(fvm_nodal_t *this_nodal, char *g_labels[])
Definition: fvm_nodal.c:1900
fvm_nodal_set_tag
void fvm_nodal_set_tag(fvm_nodal_t *this_nodal, const int tag[], int entity_dim)
Definition: fvm_nodal.c:1552
cs_mesh.h
fvm_nodal_reduce
void fvm_nodal_reduce(fvm_nodal_t *this_nodal, int del_vertex_num)
Definition: fvm_nodal.c:1325
fvm_element_t
fvm_element_t
Definition: fvm_defs.h:48
cs_gnum_t
unsigned long cs_gnum_t
global mesh entity number
Definition: cs_defs.h:286
_fvm_nodal_t::parent
const cs_mesh_t * parent
Definition: fvm_nodal_priv.h:226
_fvm_nodal_t
Definition: fvm_nodal_priv.h:154
fvm_nodal_n_vertices_element
const int fvm_nodal_n_vertices_element[]
Definition: fvm_nodal.c:141
cs_lnum_t
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:298
fvm_nodal_set_group_class_set
void fvm_nodal_set_group_class_set(fvm_nodal_t *this_nodal, const fvm_group_class_set_t *gc_set)
Definition: fvm_nodal.c:1805
fvm_nodal_transfer_vertex_io_num
void fvm_nodal_transfer_vertex_io_num(fvm_nodal_t *this_nodal, fvm_io_num_t **io_num)
Definition: fvm_nodal.c:1530
fvm_nodal_get_n_g_elements
cs_gnum_t fvm_nodal_get_n_g_elements(const fvm_nodal_t *this_nodal, fvm_element_t element_type)
Definition: fvm_nodal.c:2038
fvm_nodal_copy_edges
fvm_nodal_t * fvm_nodal_copy_edges(const char *name, const fvm_nodal_t *this_nodal)
Definition: fvm_nodal.c:2272
fvm_nodal_define_vertex_list
void fvm_nodal_define_vertex_list(fvm_nodal_t *this_nodal, cs_lnum_t n_vertices, cs_lnum_t parent_vertex_num[])
Definition: fvm_nodal.c:1609
fvm_nodal_dump
void fvm_nodal_dump(const fvm_nodal_t *this_nodal)
Definition: fvm_nodal.c:2567
fvm_nodal_get_parent
const cs_mesh_t * fvm_nodal_get_parent(const fvm_nodal_t *this_nodal)
Definition: fvm_nodal.c:2185
fvm_nodal_copy
fvm_nodal_t * fvm_nodal_copy(const fvm_nodal_t *this_nodal)
Definition: fvm_nodal.c:1248
cs_coord_t
double cs_coord_t
Definition: cs_defs.h:299
fvm_nodal_get_parent_num
void fvm_nodal_get_parent_num(const fvm_nodal_t *this_nodal, int entity_dim, cs_lnum_t parent_num[])
Definition: fvm_nodal.c:2100
fvm_nodal_get_n_entities
cs_lnum_t fvm_nodal_get_n_entities(const fvm_nodal_t *this_nodal, int entity_dim)
Definition: fvm_nodal.c:1983
fvm_defs.h
_fvm_nodal_t::n_vertices
cs_lnum_t n_vertices
Definition: fvm_nodal_priv.h:173
_fvm_nodal_t::vertex_coords
const cs_coord_t * vertex_coords
Definition: fvm_nodal_priv.h:178
_fvm_nodal_t::name
char * name
Definition: fvm_nodal_priv.h:159
type
void const cs_int_t * type
Definition: cs_measures_util.h:425
cs_mesh_t
Definition: cs_mesh.h:63
_fvm_nodal_t::gc_set
fvm_group_class_set_t * gc_set
Definition: fvm_nodal_priv.h:214
fvm_nodal_get_n_g_vertices
cs_gnum_t fvm_nodal_get_n_g_vertices(const fvm_nodal_t *this_nodal)
Definition: fvm_nodal.c:2021