7.2
general documentation
cs_mesh.h
Go to the documentation of this file.
1 #ifndef __CS_MESH_H__
2 #define __CS_MESH_H__
3 
4 /*============================================================================
5  * Main structure associated to a mesh
6  *============================================================================*/
7 
8 /*
9  This file is part of code_saturne, a general-purpose CFD tool.
10 
11  Copyright (C) 1998-2022 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 "cs_defs.h"
35 
36 #include "fvm_group.h"
37 #include "fvm_selector.h"
38 #include "fvm_periodicity.h"
39 
40 #include "cs_base.h"
41 #include "cs_halo.h"
42 #include "cs_interface.h"
43 #include "cs_numbering.h"
44 #include "cs_range_set.h"
45 
46 #include "cs_mesh_builder.h"
47 
48 /*----------------------------------------------------------------------------*/
49 
51 
52 /*=============================================================================
53  * Macro definitions
54  *============================================================================*/
55 
56 /*
57  * Mesh modification type flags
58  */
59 
61 #define CS_MESH_MODIFIED (1 << 0)
62 
64 #define CS_MESH_MODIFIED_BALANCE (1 << 1)
65 
66 /*============================================================================
67  * Type definitions
68  *============================================================================*/
69 
71 /* -------------------- */
72 
73 typedef enum {
74 
80 
82 /* ------------------------- */
83 
84 typedef struct {
85 
86  /* General features */
87 
89  int domain_num;
90  int n_domains;
94  /* Local dimensions */
95 
106  /* Local structures */
107 
119  /* Global dimension */
120 
130  /* Global numbering */
131 
137  /* Periodictity features */
138 
146  /* Parallelism and/or periodic features */
147 
164  /* Re-computable connectivity features */
165 
169  /* Extended neighborhood features */
170 
181  /* Group and family features */
182 
183  int n_groups;
184  int *group_idx;
185  char *group;
189  int *family_item;
190  int *cell_family;
202  /* Refinement features */
203 
204  bool have_r_gen;
205  char *i_face_r_gen;
206  char *vtx_r_gen;
208  /* Status flags */
209 
218  int verbosity;
219  int modified;
225 } cs_mesh_t;
226 
227 /*============================================================================
228  * Static global variables
229  *============================================================================*/
230 
231 extern cs_mesh_t *cs_glob_mesh; /* Pointer to main mesh structure */
232 
233 /*============================================================================
234  * Public function prototypes for Fortran API
235  *============================================================================*/
236 
237 /*----------------------------------------------------------------------------
238  * Update a scalar array in case of parallelism and/or periodicity.
239  *
240  * Fortran interface:
241  *
242  * subroutine synsca(var)
243  * *****************
244  *
245  * var : <-> : scalar array
246  *----------------------------------------------------------------------------*/
247 
248 void CS_PROCF(synsca, SYNSCA)
249 (
250  cs_real_t var[]
251 );
252 
253 /*----------------------------------------------------------------------------
254  * Update a scalar array in case of parallelism and/or periodicity,
255  * using an extended halo.
256  *
257  * Fortran interface:
258  *
259  * subroutine synsce(var)
260  * *****************
261  *
262  * var : <-> : scalar array
263  *----------------------------------------------------------------------------*/
264 
265 void CS_PROCF(synsce, SYNSCE)
266 (
267  cs_real_t var[]
268 );
269 
270 /*----------------------------------------------------------------------------
271  * Update a vector array in case of parallelism and/or periodicity.
272  *
273  * Fortran interface:
274  *
275  * subroutine synvin(var)
276  * *****************
277  *
278  * var : <-> : interleaved vector (of dimension 3)
279  *----------------------------------------------------------------------------*/
280 
281 void CS_PROCF(synvin, SYNVIN)
282 (
283  cs_real_t var[]
284 );
285 
286 /*----------------------------------------------------------------------------
287  * Update a vector array in case of parallelism and/or periodicity,
288  * using an extended halo.
289  *
290  * Fortran interface:
291  *
292  * subroutine synvin(var)
293  * *****************
294  *
295  * var : <-> : interleaved vector (of dimension 3)
296  *----------------------------------------------------------------------------*/
297 
298 void CS_PROCF(synvie, SYNVIE)
299 (
300  cs_real_t var[]
301 );
302 
303 /*----------------------------------------------------------------------------
304  * Update a tensor array in case of parallelism and/or periodicity.
305  *
306  * Fortran interface:
307  *
308  * subroutine syntin(var)
309  * *****************
310  *
311  * var : <-> : interleaved tensor (of dimension 3x3)
312  *----------------------------------------------------------------------------*/
313 
314 void CS_PROCF(syntin, SYNTIN)
315 (
316  cs_real_t var[]
317 );
318 
319 /*----------------------------------------------------------------------------
320  * Update a symmetric tensor array in case of parallelism and/or periodicity.
321  *
322  * Fortran interface:
323  *
324  * subroutine syntis(var)
325  * *****************
326  *
327  * var : <-> : interleaved symmetric tensor (of dimension 6)
328  *----------------------------------------------------------------------------*/
329 
330 void CS_PROCF(syntis, SYNTIS)
331 (
332  cs_real_t var[]
333 );
334 
335 /*=============================================================================
336  * Public function prototypes
337  *============================================================================*/
338 
339 /*----------------------------------------------------------------------------
340  * Create an empty mesh structure
341  *
342  * returns:
343  * pointer to created mesh structure
344  *----------------------------------------------------------------------------*/
345 
346 cs_mesh_t *
347 cs_mesh_create(void);
348 
349 /*----------------------------------------------------------------------------
350  * Destroy a mesh structure
351  *
352  * mesh <-> pointer to a mesh structure
353  *
354  * returns:
355  * NULL pointer
356  *----------------------------------------------------------------------------*/
357 
358 cs_mesh_t *
360 
361 /*----------------------------------------------------------------------------
362  * Reinitialize mesh structure.
363  *
364  * returns:
365  * pointer to created mesh structure
366  *----------------------------------------------------------------------------*/
367 
368 void
370 
371 /*----------------------------------------------------------------------------
372  * Update (compactify) an array of global numbers.
373  *
374  * parameters:
375  * n_elts <-> number of local elements
376  * elt_gnum <-> global element numbers
377  *
378  * return:
379  * associated global number of elements
380  *----------------------------------------------------------------------------*/
381 
382 cs_gnum_t
384  cs_gnum_t *elt_gnum);
385 
386 /*----------------------------------------------------------------------------
387  * Remove arrays and structures that mey be rebuilt.
388  *
389  * mesh <-> pointer to a mesh structure
390  * free_halos <-- if true, free halos and parallel/periodic interface
391  * structures
392  *----------------------------------------------------------------------------*/
393 
394 void
396  bool free_halos);
397 
398 /*----------------------------------------------------------------------------
399  * Discard free (isolated) faces from a mesh.
400  *
401  * This should always be done before using the mesh for computation.
402  *
403  * parameters:
404  * mesh <-> pointer to mesh structure
405  *----------------------------------------------------------------------------*/
406 
407 void
409 
410 /*----------------------------------------------------------------------------
411  * Discard free (isolated) vertices from a mesh.
412  *
413  * This is recommended before using the mesh for computation.
414  *
415  * parameters:
416  * mesh <-> pointer to mesh structure
417  *----------------------------------------------------------------------------*/
418 
419 void
421 
422 /*----------------------------------------------------------------------------
423  * Generate or update list of mesh boundary cells.
424  *
425  * parameters:
426  * mesh <-> pointer to a cs_mesh_t structure
427  *----------------------------------------------------------------------------*/
428 
429 void
431 
432 /*----------------------------------------------------------------------------
433  * Compute or update mesh structure members that depend on other members,
434  * but whose results may be reused, such as global number of elements
435  * (cells, vertices, interior and boundary faces) and sync cell family.
436  *
437  * parameters:
438  * mesh <-> pointer to a cs_mesh_t structure
439  *----------------------------------------------------------------------------*/
440 
441 void
443 
444 /*----------------------------------------------------------------------------
445  * Creation and initialization of mesh face and vertex interfaces.
446  *
447  * parameters:
448  * mesh <-> pointer to mesh structure
449  * mb <-> pointer to mesh builder (in case of periodicity)
450  *----------------------------------------------------------------------------*/
451 
452 void
454  cs_mesh_builder_t *mb);
455 
456 /*----------------------------------------------------------------------------*/
472 void
474  cs_mesh_builder_t *mb,
475  cs_halo_type_t halo_type,
476  int verbosity,
477  bool rebuild_vtx_interace);
478 
479 /*----------------------------------------------------------------------------
480  * Get the global number of ghost cells.
481  *
482  * parameters:
483  * mesh <-- pointer to a mesh structure
484  *
485  * returns:
486  * Global number of ghost cells
487  *---------------------------------------------------------------------------*/
488 
489 cs_gnum_t
491 
492 /*----------------------------------------------------------------------------
493  * Update a scalar array in case of parallelism and/or periodicity.
494  *
495  * Note: this function is only present so that a C equivalent to the
496  * Fortran wrappers is available. In C code, directly using
497  * cs_halo_sync_var() is preferred.
498  *
499  * parameters:
500  * var <-> scalar array
501  *----------------------------------------------------------------------------*/
502 
503 void
505 
506 /*----------------------------------------------------------------------------
507  * Update a scalar array in case of parallelism and/or periodicity,
508  * using an extended halo.
509  *
510  * Note: this function is only present so that a C equivalent to the
511  * Fortran wrappers is available. In C code, directly using the
512  * cs_halo_sync_var() is preferred.
513  *
514  * parameters:
515  * var <-> scalar array
516  *----------------------------------------------------------------------------*/
517 
518 void
520 
521 /*----------------------------------------------------------------------------
522  * Update a vector array in case of parallelism and/or periodicity.
523  *
524  * parameters:
525  * var <-> interleaved vector (of dimension 3)
526  *----------------------------------------------------------------------------*/
527 
528 void
530 
531 /*----------------------------------------------------------------------------
532  * Update a vector array in case of parallelism and/or periodicity,
533  * using an extended halo.
534  *
535  * parameters:
536  * var <-> interleaved vector (of dimension 3)
537  *----------------------------------------------------------------------------*/
538 
539 void
541 
542 /*----------------------------------------------------------------------------
543  * Update a tensor array in case of parallelism and/or periodicity.
544  *
545  * parameters:
546  * var <-> interleaved tensor (of dimension 3x3)
547  *----------------------------------------------------------------------------*/
548 
549 void
551 
552 /*----------------------------------------------------------------------------
553  * Update a symmetric tensor array in case of parallelism and/or periodicity.
554  *
555  * parameters:
556  * var <-> symmetric interleaved tensor (of dimension 6)
557  *----------------------------------------------------------------------------*/
558 
559 void
561 
562 /*----------------------------------------------------------------------------
563  * Order family numbers and remove duplicates
564  *
565  * parameters
566  * mesh <-> pointer to mesh structure
567  *----------------------------------------------------------------------------*/
568 
569 void
571 
572 /*----------------------------------------------------------------------------
573  * Create group classes based on a mesh's family definitions.
574  *
575  * parameters:
576  * mesh <-- pointer to mesh structure
577  *
578  * returns:
579  * pointer to group classes structure based on mesh's family definitions
580  *----------------------------------------------------------------------------*/
581 
584 
585 /*----------------------------------------------------------------------------
586  * Define group classes for a mesh based on its family definitions.
587  *
588  * parameters:
589  * mesh <-> pointer to mesh structure
590  *----------------------------------------------------------------------------*/
591 
592 void
594 
595 /*----------------------------------------------------------------------------
596  * Assign selectors to global mesh.
597  *
598  * Should be called once the mesh is fully built.
599  *----------------------------------------------------------------------------*/
600 
601 void
603 
604 /*----------------------------------------------------------------------------
605  * Update selector and associated structures.
606  *
607  * parameters:
608  * mesh <-> pointer to a mesh structure
609  *----------------------------------------------------------------------------*/
610 
611 void
613 
614 /*----------------------------------------------------------------------------
615  * Get global lists of periodic face couples.
616  *
617  * In parallel, each face couple may appear on only one rank.
618  *
619  * The caller is responsible for freeing the arrays allocated and returned
620  * by this function once they are no onger needed.
621  *
622  * parameters:
623  * mesh <-- pointer to mesh structure
624  * n_perio_face_couples --> global number of periodic couples per
625  * periodicity (size: mesh->n_init_perio)
626  * perio_face_couples --> arrays of global periodic couple face numbers,
627  * for each periodicity
628  *----------------------------------------------------------------------------*/
629 
630 void
632  cs_lnum_t **n_perio_face_couples,
633  cs_gnum_t ***perio_face_couples);
634 
635 /*----------------------------------------------------------------------------
636  * Build global cell numbering array extended to ghost cell values.
637  *
638  * If the blank_perio flag is nonzero, periodic ghost cell numbers
639  * are set to zero instead of the value of the matching cell.
640  *
641  * The caller is responsible for freeing the returned array when it
642  * is no longer useful.
643  *
644  * parameters:
645  * mesh <-- pointer to mesh structure
646  * blank_perio <-- flag to zeroe periodic cell values
647  *----------------------------------------------------------------------------*/
648 
649 cs_gnum_t *
651  int blank_perio);
652 
653 /*----------------------------------------------------------------------------
654  * Mark interior faces with the number of their associated periodic
655  * transform id.
656  *
657  * parameters:
658  * mesh <-- pointer to mesh structure
659  * perio_num --> periodicity number associated with each face, signed for
660  * direct/reverse transform, 0 for non-periodic faces
661  * (size: mesh->n_i_faces)
662  *----------------------------------------------------------------------------*/
663 
664 void
666  int perio_num[]);
667 
668 /*----------------------------------------------------------------------------
669  * Print information on a mesh structure.
670  *
671  * parameters:
672  * mesh <-- pointer to mesh structure.
673  * name <-- associated name.
674  *----------------------------------------------------------------------------*/
675 
676 void
678  const char *name);
679 
680 /*----------------------------------------------------------------------------
681  * Compute global face connectivity size.
682  *
683  * Faces on simple parallel boundaries are counted only once, but periodic
684  * faces are counted twice.
685  *
686  * parameters:
687  * mesh <-- pointer to a cs_mesh_t structure
688  * g_i_face_vertices_size --> global interior face connectivity size, or NULL
689  * g_b_face_vertices_size --> global boundary face connectivity size, or NULL
690  *----------------------------------------------------------------------------*/
691 
692 void
694  cs_gnum_t *g_i_face_vertices_size,
695  cs_gnum_t *g_b_face_vertices_size);
696 
697 /*----------------------------------------------------------------------------
698  * Print statistics about mesh selectors usage to log.
699  *
700  * parameters:
701  * mesh <-- pointer to a mesh structure
702  *----------------------------------------------------------------------------*/
703 
704 void
706 
707 /*----------------------------------------------------------------------------
708  * Dump of a mesh structure.
709  *
710  * parameters:
711  * mesh <-> pointer to mesh structure.
712  *----------------------------------------------------------------------------*/
713 
714 void
715 cs_mesh_dump(const cs_mesh_t *mesh);
716 
717 /*----------------------------------------------------------------------------*/
718 
720 
721 #endif /* __CS_MESH_H__ */
int save_if_modified
Definition: cs_mesh.h:220
unsigned long cs_gnum_t
global mesh entity number
Definition: cs_defs.h:301
cs_gnum_t cs_mesh_compact_gnum(cs_lnum_t n_elts, cs_gnum_t *elt_gnum)
Definition: cs_mesh.c:2319
int n_transforms
Definition: cs_mesh.h:140
void cs_mesh_selector_stats(cs_mesh_t *mesh)
Definition: cs_mesh.c:3692
cs_real_t cs_real_6_t[6]
vector of 6 floating-point values
Definition: cs_defs.h:337
cs_lnum_t * gcell_vtx_idx
Definition: cs_mesh.h:178
fvm_periodicity_t * periodicity
Definition: cs_mesh.h:144
cs_gnum_t * global_b_face_num
Definition: cs_mesh.h:134
Definition: cs_mesh_builder.h:57
cs_gnum_t * cs_mesh_get_cell_gnum(const cs_mesh_t *mesh, int blank_perio)
Definition: cs_mesh.c:3493
cs_mesh_t * cs_mesh_create(void)
Definition: cs_mesh.c:2062
void cs_mesh_g_face_vertices_sizes(const cs_mesh_t *mesh, cs_gnum_t *g_i_face_vertices_size, cs_gnum_t *g_b_face_vertices_size)
Definition: cs_mesh.c:2521
int * b_face_family
Definition: cs_mesh.h:192
Definition: cs_mesh.h:77
cs_gnum_t n_g_b_faces_all
Definition: cs_mesh.h:213
cs_lnum_t * b_face_vtx_lst
Definition: cs_mesh.h:117
cs_gnum_t n_g_cells
Definition: cs_mesh.h:121
void cs_mesh_sync_var_scal(cs_real_t *var)
Definition: cs_mesh.c:3304
void synvin(cs_real_t var[])
Definition: cs_mesh.c:1985
cs_range_set_t * vtx_range_set
Definition: cs_mesh.h:156
#define BEGIN_C_DECLS
Definition: cs_defs.h:510
cs_lnum_t i_face_vtx_connect_size
Definition: cs_mesh.h:101
cs_mesh_t * cs_glob_mesh
cs_interface_set_t * vtx_interfaces
Definition: cs_mesh.h:154
cs_lnum_t * i_face_vtx_idx
Definition: cs_mesh.h:113
cs_lnum_t * i_face_vtx_lst
Definition: cs_mesh.h:114
void cs_mesh_sync_var_sym_tens(cs_real_6_t *var)
Definition: cs_mesh.c:3410
cs_lnum_t * b_cells
Definition: cs_mesh.h:167
int * group_idx
Definition: cs_mesh.h:184
cs_gnum_t n_g_b_faces
Definition: cs_mesh.h:123
void cs_mesh_init_selectors(void)
Definition: cs_mesh.c:3242
cs_gnum_t n_g_free_faces
Definition: cs_mesh.h:210
Definition: cs_halo.h:77
char * group
Definition: cs_mesh.h:185
cs_gnum_t n_g_i_c_faces
Definition: cs_mesh.h:126
void cs_mesh_get_perio_faces(const cs_mesh_t *mesh, cs_lnum_t **n_perio_face_couples, cs_gnum_t ***perio_face_couples)
Definition: cs_mesh.c:3441
cs_real_t * vtx_coord
Definition: cs_mesh.h:108
void cs_mesh_dump(const cs_mesh_t *mesh)
Definition: cs_mesh.c:3739
void cs_mesh_clean_families(cs_mesh_t *mesh)
Definition: cs_mesh.c:3059
void cs_mesh_update_b_cells(cs_mesh_t *mesh)
Definition: cs_mesh.c:2611
void cs_mesh_init_halo(cs_mesh_t *mesh, cs_mesh_builder_t *mb, cs_halo_type_t halo_type, int verbosity, bool rebuild_vtx_interace)
Definition: cs_mesh.c:2757
cs_numbering_t * vtx_numbering
Definition: cs_mesh.h:160
int n_groups
Definition: cs_mesh.h:183
struct _fvm_selector_t fvm_selector_t
Definition: fvm_selector.h:51
char * i_face_r_gen
Definition: cs_mesh.h:205
double cs_real_t
Floating-point value.
Definition: cs_defs.h:322
fvm_selector_t * select_i_faces
Definition: cs_mesh.h:199
cs_gnum_t n_g_vertices
Definition: cs_mesh.h:124
void cs_mesh_free_rebuildable(cs_mesh_t *mesh, bool free_halos)
Definition: cs_mesh.c:2353
Definition: cs_mesh.h:84
fvm_selector_t * select_cells
Definition: cs_mesh.h:198
int * cell_family
Definition: cs_mesh.h:190
cs_gnum_t * global_cell_num
Definition: cs_mesh.h:132
cs_lnum_t n_vertices
Definition: cs_mesh.h:99
cs_lnum_t n_cells
Definition: cs_mesh.h:96
cs_mesh_t * cs_mesh_destroy(cs_mesh_t *mesh)
Definition: cs_mesh.c:2196
int n_init_perio
Definition: cs_mesh.h:139
int domain_num
Definition: cs_mesh.h:89
void syntin(cs_real_t var[])
Definition: cs_mesh.c:2024
cs_gnum_t n_g_i_faces
Definition: cs_mesh.h:122
fvm_group_class_set_t * cs_mesh_create_group_classes(cs_mesh_t *mesh)
Definition: cs_mesh.c:3181
int modified
Definition: cs_mesh.h:219
void synsca(cs_real_t var[])
Definition: cs_mesh.c:1946
int n_families
Definition: cs_mesh.h:187
void cs_mesh_init_interfaces(cs_mesh_t *mesh, cs_mesh_builder_t *mb)
int verbosity
Definition: cs_mesh.h:218
Definition: cs_range_set.h:57
cs_halo_type_t
Definition: cs_halo.h:56
void synvie(cs_real_t var[])
Definition: cs_mesh.c:2005
cs_lnum_t * gcell_vtx_lst
Definition: cs_mesh.h:179
void cs_mesh_sync_var_scal_ext(cs_real_t *var)
Definition: cs_mesh.c:3325
void cs_mesh_reinit(cs_mesh_t *mesh)
Definition: cs_mesh.c:2213
void cs_mesh_get_face_perio_num(const cs_mesh_t *mesh, int perio_num[])
Definition: cs_mesh.c:3570
cs_gnum_t cs_mesh_n_g_ghost_cells(cs_mesh_t *mesh)
Definition: cs_mesh.c:3036
int * i_face_family
Definition: cs_mesh.h:191
struct _cs_interface_set_t cs_interface_set_t
Definition: cs_interface.h:61
cs_lnum_t cs_lnum_2_t[2]
vector of 2 local mesh-entity ids
Definition: cs_defs.h:328
cs_lnum_t n_b_faces_all
Definition: cs_mesh.h:215
void cs_mesh_sync_var_tens(cs_real_t *var)
Definition: cs_mesh.c:3388
void cs_mesh_discard_free_faces(cs_mesh_t *mesh)
Definition: cs_mesh.c:2409
void synsce(cs_real_t var[])
Definition: cs_mesh.c:1966
void cs_mesh_print_info(const cs_mesh_t *mesh, const char *name)
Definition: cs_mesh.c:3614
struct _fvm_periodicity_t fvm_periodicity_t
Definition: fvm_periodicity.h:67
cs_lnum_t dim
Definition: cs_mesh.h:88
void cs_mesh_init_group_classes(cs_mesh_t *mesh)
Definition: cs_mesh.c:3227
Definition: cs_mesh.h:76
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:316
Definition: cs_mesh.h:75
cs_lnum_t n_cells_with_ghosts
Definition: cs_mesh.h:150
cs_lnum_t n_ghost_cells
Definition: cs_mesh.h:152
int * family_item
Definition: cs_mesh.h:189
cs_lnum_t * cell_cells_idx
Definition: cs_mesh.h:171
cs_gnum_t * global_i_face_num
Definition: cs_mesh.h:133
cs_lnum_t * b_face_vtx_idx
Definition: cs_mesh.h:116
#define END_C_DECLS
Definition: cs_defs.h:511
cs_numbering_t * cell_numbering
Definition: cs_mesh.h:159
void cs_mesh_sync_var_vect(cs_real_t *var)
Definition: cs_mesh.c:3341
void syntis(cs_real_t var[])
Definition: cs_mesh.c:2043
cs_numbering_t * b_face_numbering
Definition: cs_mesh.h:162
cs_gnum_t * global_vtx_num
Definition: cs_mesh.h:135
cs_numbering_t * i_face_numbering
Definition: cs_mesh.h:161
#define CS_PROCF(x, y)
Definition: cs_defs.h:524
void cs_mesh_sync_var_vect_ext(cs_real_t *var)
Definition: cs_mesh.c:3365
cs_lnum_t n_b_cells
Definition: cs_mesh.h:166
void cs_mesh_update_selectors(cs_mesh_t *mesh)
Definition: cs_mesh.c:3286
int have_rotation_perio
Definition: cs_mesh.h:142
bool have_r_gen
Definition: cs_mesh.h:204
fvm_group_class_set_t * class_defs
Definition: cs_mesh.h:194
cs_halo_type_t halo_type
Definition: cs_mesh.h:148
struct _fvm_group_class_set_t fvm_group_class_set_t
Definition: fvm_group.h:60
void cs_mesh_discard_free_vertices(cs_mesh_t *mesh)
Definition: cs_mesh.c:2490
cs_mesh_time_dep_t
Definition: cs_mesh.h:73
void cs_mesh_update_auxiliary(cs_mesh_t *mesh)
Definition: cs_mesh.c:2654
cs_lnum_2_t * i_face_cells
Definition: cs_mesh.h:110
int n_max_family_items
Definition: cs_mesh.h:188
cs_mesh_time_dep_t time_dep
Definition: cs_mesh.h:92
char * vtx_r_gen
Definition: cs_mesh.h:206
int n_domains
Definition: cs_mesh.h:90
cs_lnum_t n_b_faces
Definition: cs_mesh.h:98
cs_lnum_t b_face_vtx_connect_size
Definition: cs_mesh.h:103
cs_lnum_t * cell_cells_lst
Definition: cs_mesh.h:174
Definition: cs_numbering.h:87
fvm_selector_t * select_b_faces
Definition: cs_mesh.h:200
cs_lnum_t n_i_faces
Definition: cs_mesh.h:97
Definition: mesh.f90:26
cs_halo_t * halo
Definition: cs_mesh.h:155
cs_lnum_t * b_face_cells
Definition: cs_mesh.h:111