8.0
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-2023 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_parall.h"
45 #include "cs_range_set.h"
46 
47 #include "cs_mesh_builder.h"
48 
49 /*----------------------------------------------------------------------------*/
50 
52 
53 /*=============================================================================
54  * Macro definitions
55  *============================================================================*/
56 
57 /*
58  * Mesh modification type flags
59  */
60 
62 #define CS_MESH_MODIFIED (1 << 0)
63 
65 #define CS_MESH_MODIFIED_BALANCE (1 << 1)
66 
67 /*============================================================================
68  * Type definitions
69  *============================================================================*/
70 
72 /* -------------------- */
73 
74 typedef enum {
75 
81 
83 /* ------------------------- */
84 
85 typedef struct {
86 
87  /* General features */
88 
90  int domain_num;
91  int n_domains;
95  /* Local dimensions */
96 
107  /* Local structures */
108 
120  /* Global dimension */
121 
131  /* Global numbering */
132 
138  /* Periodictity features */
139 
147  /* Parallelism and/or periodic features */
148 
165  /* Re-computable connectivity features */
166 
170  /* Extended neighborhood features */
171 
182  /* Group and family features */
183 
184  int n_groups;
185  int *group_idx;
186  char *group;
190  int *family_item;
191  int *cell_family;
203  /* Refinement features */
204 
205  bool have_r_gen;
206  char *i_face_r_gen;
207  char *vtx_r_gen;
209  /* Status flags */
210 
219  int verbosity;
220  int modified;
226 } cs_mesh_t;
227 
228 /*============================================================================
229  * Static global variables
230  *============================================================================*/
231 
232 extern cs_mesh_t *cs_glob_mesh; /* Pointer to main mesh structure */
233 
234 /*============================================================================
235  * Public function prototypes for Fortran API
236  *============================================================================*/
237 
238 /*----------------------------------------------------------------------------
239  * Update a scalar array in case of parallelism and/or periodicity.
240  *
241  * Fortran interface:
242  *
243  * subroutine synsca(var)
244  * *****************
245  *
246  * var : <-> : scalar array
247  *----------------------------------------------------------------------------*/
248 
249 void CS_PROCF(synsca, SYNSCA)
250 (
251  cs_real_t var[]
252 );
253 
254 /*----------------------------------------------------------------------------
255  * Update a scalar array in case of parallelism and/or periodicity,
256  * using an extended halo.
257  *
258  * Fortran interface:
259  *
260  * subroutine synsce(var)
261  * *****************
262  *
263  * var : <-> : scalar array
264  *----------------------------------------------------------------------------*/
265 
266 void CS_PROCF(synsce, SYNSCE)
267 (
268  cs_real_t var[]
269 );
270 
271 /*----------------------------------------------------------------------------
272  * Update a vector array in case of parallelism and/or periodicity.
273  *
274  * Fortran interface:
275  *
276  * subroutine synvin(var)
277  * *****************
278  *
279  * var : <-> : interleaved vector (of dimension 3)
280  *----------------------------------------------------------------------------*/
281 
282 void CS_PROCF(synvin, SYNVIN)
283 (
284  cs_real_t var[]
285 );
286 
287 /*----------------------------------------------------------------------------
288  * Update a vector array in case of parallelism and/or periodicity,
289  * using an extended halo.
290  *
291  * Fortran interface:
292  *
293  * subroutine synvin(var)
294  * *****************
295  *
296  * var : <-> : interleaved vector (of dimension 3)
297  *----------------------------------------------------------------------------*/
298 
299 void CS_PROCF(synvie, SYNVIE)
300 (
301  cs_real_t var[]
302 );
303 
304 /*----------------------------------------------------------------------------
305  * Update a tensor array in case of parallelism and/or periodicity.
306  *
307  * Fortran interface:
308  *
309  * subroutine syntin(var)
310  * *****************
311  *
312  * var : <-> : interleaved tensor (of dimension 3x3)
313  *----------------------------------------------------------------------------*/
314 
315 void CS_PROCF(syntin, SYNTIN)
316 (
317  cs_real_t var[]
318 );
319 
320 /*----------------------------------------------------------------------------
321  * Update a symmetric tensor array in case of parallelism and/or periodicity.
322  *
323  * Fortran interface:
324  *
325  * subroutine syntis(var)
326  * *****************
327  *
328  * var : <-> : interleaved symmetric tensor (of dimension 6)
329  *----------------------------------------------------------------------------*/
330 
331 void CS_PROCF(syntis, SYNTIS)
332 (
333  cs_real_t var[]
334 );
335 
336 /*=============================================================================
337  * Public function prototypes
338  *============================================================================*/
339 
340 /*----------------------------------------------------------------------------
341  * Create an empty mesh structure
342  *
343  * returns:
344  * pointer to created mesh structure
345  *----------------------------------------------------------------------------*/
346 
347 cs_mesh_t *
348 cs_mesh_create(void);
349 
350 /*----------------------------------------------------------------------------
351  * Destroy a mesh structure
352  *
353  * mesh <-> pointer to a mesh structure
354  *
355  * returns:
356  * NULL pointer
357  *----------------------------------------------------------------------------*/
358 
359 cs_mesh_t *
361 
362 /*----------------------------------------------------------------------------
363  * Reinitialize mesh structure.
364  *
365  * returns:
366  * pointer to created mesh structure
367  *----------------------------------------------------------------------------*/
368 
369 void
371 
372 /*----------------------------------------------------------------------------
373  * Update (compactify) an array of global numbers.
374  *
375  * parameters:
376  * n_elts <-> number of local elements
377  * elt_gnum <-> global element numbers
378  *
379  * return:
380  * associated global number of elements
381  *----------------------------------------------------------------------------*/
382 
383 cs_gnum_t
385  cs_gnum_t *elt_gnum);
386 
387 /*----------------------------------------------------------------------------
388  * Remove arrays and structures that mey be rebuilt.
389  *
390  * mesh <-> pointer to a mesh structure
391  * free_halos <-- if true, free halos and parallel/periodic interface
392  * structures
393  *----------------------------------------------------------------------------*/
394 
395 void
397  bool free_halos);
398 
399 /*----------------------------------------------------------------------------
400  * Discard free (isolated) faces from a mesh.
401  *
402  * This should always be done before using the mesh for computation.
403  *
404  * parameters:
405  * mesh <-> pointer to mesh structure
406  *----------------------------------------------------------------------------*/
407 
408 void
410 
411 /*----------------------------------------------------------------------------
412  * Discard free (isolated) vertices from a mesh.
413  *
414  * This is recommended before using the mesh for computation.
415  *
416  * parameters:
417  * mesh <-> pointer to mesh structure
418  *----------------------------------------------------------------------------*/
419 
420 void
422 
423 /*----------------------------------------------------------------------------*/
432 /*----------------------------------------------------------------------------*/
433 
434 void
436 
437 /*----------------------------------------------------------------------------
438  * Generate or update list of mesh boundary cells.
439  *
440  * parameters:
441  * mesh <-> pointer to a cs_mesh_t structure
442  *----------------------------------------------------------------------------*/
443 
444 void
446 
447 /*----------------------------------------------------------------------------
448  * Compute or update mesh structure members that depend on other members,
449  * but whose results may be reused, such as global number of elements
450  * (cells, vertices, interior and boundary faces) and sync cell family.
451  *
452  * parameters:
453  * mesh <-> pointer to a cs_mesh_t structure
454  *----------------------------------------------------------------------------*/
455 
456 void
458 
459 /*----------------------------------------------------------------------------
460  * Creation and initialization of mesh face and vertex interfaces.
461  *
462  * parameters:
463  * mesh <-> pointer to mesh structure
464  * mb <-> pointer to mesh builder (in case of periodicity)
465  *----------------------------------------------------------------------------*/
466 
467 void
469  cs_mesh_builder_t *mb);
470 
471 /*----------------------------------------------------------------------------*/
485 /*----------------------------------------------------------------------------*/
486 
487 void
489  cs_mesh_builder_t *mb,
490  cs_halo_type_t halo_type,
491  int verbosity,
492  bool rebuild_vtx_interace);
493 
494 /*----------------------------------------------------------------------------
495  * Get the global number of ghost cells.
496  *
497  * parameters:
498  * mesh <-- pointer to a mesh structure
499  *
500  * returns:
501  * Global number of ghost cells
502  *---------------------------------------------------------------------------*/
503 
504 cs_gnum_t
506 
507 /*----------------------------------------------------------------------------
508  * Update a scalar array in case of parallelism and/or periodicity.
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
512  * cs_halo_sync_var() is preferred.
513  *
514  * parameters:
515  * var <-> scalar array
516  *----------------------------------------------------------------------------*/
517 
518 void
520 
521 /*----------------------------------------------------------------------------
522  * Update a scalar array in case of parallelism and/or periodicity,
523  * using an extended halo.
524  *
525  * Note: this function is only present so that a C equivalent to the
526  * Fortran wrappers is available. In C code, directly using the
527  * cs_halo_sync_var() is preferred.
528  *
529  * parameters:
530  * var <-> scalar array
531  *----------------------------------------------------------------------------*/
532 
533 void
535 
536 /*----------------------------------------------------------------------------
537  * Update a vector array in case of parallelism and/or periodicity.
538  *
539  * parameters:
540  * var <-> interleaved vector (of dimension 3)
541  *----------------------------------------------------------------------------*/
542 
543 void
545 
546 /*----------------------------------------------------------------------------
547  * Update a vector array in case of parallelism and/or periodicity,
548  * using an extended halo.
549  *
550  * parameters:
551  * var <-> interleaved vector (of dimension 3)
552  *----------------------------------------------------------------------------*/
553 
554 void
556 
557 /*----------------------------------------------------------------------------
558  * Update a tensor array in case of parallelism and/or periodicity.
559  *
560  * parameters:
561  * var <-> interleaved tensor (of dimension 3x3)
562  *----------------------------------------------------------------------------*/
563 
564 void
566 
567 /*----------------------------------------------------------------------------
568  * Update a symmetric tensor array in case of parallelism and/or periodicity.
569  *
570  * parameters:
571  * var <-> symmetric interleaved tensor (of dimension 6)
572  *----------------------------------------------------------------------------*/
573 
574 void
576 
577 /*----------------------------------------------------------------------------
578  * Order family numbers and remove duplicates
579  *
580  * parameters
581  * mesh <-> pointer to mesh structure
582  *----------------------------------------------------------------------------*/
583 
584 void
586 
587 /*----------------------------------------------------------------------------
588  * Create group classes based on a mesh's family definitions.
589  *
590  * parameters:
591  * mesh <-- pointer to mesh structure
592  *
593  * returns:
594  * pointer to group classes structure based on mesh's family definitions
595  *----------------------------------------------------------------------------*/
596 
599 
600 /*----------------------------------------------------------------------------
601  * Define group classes for a mesh based on its family definitions.
602  *
603  * parameters:
604  * mesh <-> pointer to mesh structure
605  *----------------------------------------------------------------------------*/
606 
607 void
609 
610 /*----------------------------------------------------------------------------
611  * Assign selectors to global mesh.
612  *
613  * Should be called once the mesh is fully built.
614  *----------------------------------------------------------------------------*/
615 
616 void
618 
619 /*----------------------------------------------------------------------------
620  * Update selector and associated structures.
621  *
622  * parameters:
623  * mesh <-> pointer to a mesh structure
624  *----------------------------------------------------------------------------*/
625 
626 void
628 
629 /*----------------------------------------------------------------------------
630  * Get global lists of periodic face couples.
631  *
632  * In parallel, each face couple may appear on only one rank.
633  *
634  * The caller is responsible for freeing the arrays allocated and returned
635  * by this function once they are no onger needed.
636  *
637  * parameters:
638  * mesh <-- pointer to mesh structure
639  * n_perio_face_couples --> global number of periodic couples per
640  * periodicity (size: mesh->n_init_perio)
641  * perio_face_couples --> arrays of global periodic couple face numbers,
642  * for each periodicity
643  *----------------------------------------------------------------------------*/
644 
645 void
647  cs_lnum_t **n_perio_face_couples,
648  cs_gnum_t ***perio_face_couples);
649 
650 /*----------------------------------------------------------------------------
651  * Build global cell numbering array extended to ghost cell values.
652  *
653  * If the blank_perio flag is nonzero, periodic ghost cell numbers
654  * are set to zero instead of the value of the matching cell.
655  *
656  * The caller is responsible for freeing the returned array when it
657  * is no longer useful.
658  *
659  * parameters:
660  * mesh <-- pointer to mesh structure
661  * blank_perio <-- flag to zeroe periodic cell values
662  *----------------------------------------------------------------------------*/
663 
664 cs_gnum_t *
666  int blank_perio);
667 
668 /*----------------------------------------------------------------------------
669  * Mark interior faces with the number of their associated periodic
670  * transform id.
671  *
672  * parameters:
673  * mesh <-- pointer to mesh structure
674  * perio_num --> periodicity number associated with each face, signed for
675  * direct/reverse transform, 0 for non-periodic faces
676  * (size: mesh->n_i_faces)
677  *----------------------------------------------------------------------------*/
678 
679 void
681  int perio_num[]);
682 
683 /*----------------------------------------------------------------------------*/
694 /*----------------------------------------------------------------------------*/
695 
696 void
698  int cell_b_flag[]);
699 
700 /*----------------------------------------------------------------------------
701  * Print information on a mesh structure.
702  *
703  * parameters:
704  * mesh <-- pointer to mesh structure.
705  * name <-- associated name.
706  *----------------------------------------------------------------------------*/
707 
708 void
710  const char *name);
711 
712 /*----------------------------------------------------------------------------
713  * Compute global face connectivity size.
714  *
715  * Faces on simple parallel boundaries are counted only once, but periodic
716  * faces are counted twice.
717  *
718  * parameters:
719  * mesh <-- pointer to a cs_mesh_t structure
720  * g_i_face_vertices_size --> global interior face connectivity size, or NULL
721  * g_b_face_vertices_size --> global boundary face connectivity size, or NULL
722  *----------------------------------------------------------------------------*/
723 
724 void
726  cs_gnum_t *g_i_face_vertices_size,
727  cs_gnum_t *g_b_face_vertices_size);
728 
729 /*----------------------------------------------------------------------------
730  * Print statistics about mesh selectors usage to log.
731  *
732  * parameters:
733  * mesh <-- pointer to a mesh structure
734  *----------------------------------------------------------------------------*/
735 
736 void
738 
739 /*----------------------------------------------------------------------------
740  * Dump of a mesh structure.
741  *
742  * parameters:
743  * mesh <-> pointer to mesh structure.
744  *----------------------------------------------------------------------------*/
745 
746 void
747 cs_mesh_dump(const cs_mesh_t *mesh);
748 
749 /*----------------------------------------------------------------------------*/
764 /*----------------------------------------------------------------------------*/
765 
766 void
768  const cs_e2n_sum_t e2n,
769  int block_size,
770  int *n_groups,
771  int *n_blocks);
772 
773 /*----------------------------------------------------------------------------*/
798 /*----------------------------------------------------------------------------*/
799 
800 void
802  const cs_e2n_sum_t e2n,
803  int group_id,
804  int block_id,
805  int block_count,
806  int block_size,
807  cs_lnum_t *s_id,
808  cs_lnum_t *e_id);
809 
810 /*----------------------------------------------------------------------------*/
821 /*----------------------------------------------------------------------------*/
822 
823 int
825  int block_size);
826 
827 /*----------------------------------------------------------------------------*/
846 /*----------------------------------------------------------------------------*/
847 
848 void
850  int block_id,
851  int block_count,
852  int block_size,
853  cs_lnum_t *s_id,
854  cs_lnum_t *e_id);
855 
856 /*----------------------------------------------------------------------------*/
857 
859 
860 #endif /* __CS_MESH_H__ */
#define BEGIN_C_DECLS
Definition: cs_defs.h:509
double cs_real_t
Floating-point value.
Definition: cs_defs.h:319
cs_lnum_t cs_lnum_2_t[2]
vector of 2 local mesh-entity ids
Definition: cs_defs.h:325
#define CS_PROCF(x, y)
Definition: cs_defs.h:523
unsigned long cs_gnum_t
global mesh entity number
Definition: cs_defs.h:298
cs_real_t cs_real_6_t[6]
vector of 6 floating-point values
Definition: cs_defs.h:334
#define END_C_DECLS
Definition: cs_defs.h:510
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:313
cs_halo_type_t
Definition: cs_halo.h:56
struct _cs_interface_set_t cs_interface_set_t
Definition: cs_interface.h:61
void cs_mesh_free_rebuildable(cs_mesh_t *mesh, bool free_halos)
Definition: cs_mesh.c:2353
void cs_mesh_sync_var_vect_ext(cs_real_t *var)
Definition: cs_mesh.c:3380
void cs_mesh_discard_free_vertices(cs_mesh_t *mesh)
Definition: cs_mesh.c:2490
void syntis(cs_real_t var[])
Definition: cs_mesh.c:2043
void cs_mesh_get_face_perio_num(const cs_mesh_t *mesh, int perio_num[])
Definition: cs_mesh.c:3585
void cs_mesh_discard_refinement_info(cs_mesh_t *mesh)
Discard mesh refinement info.
Definition: cs_mesh.c:2520
void cs_mesh_update_b_cells(cs_mesh_t *mesh)
Definition: cs_mesh.c:2633
void synsce(cs_real_t var[])
Definition: cs_mesh.c:1966
cs_mesh_t * cs_mesh_create(void)
Definition: cs_mesh.c:2062
cs_gnum_t * cs_mesh_get_cell_gnum(const cs_mesh_t *mesh, int blank_perio)
Definition: cs_mesh.c:3508
void cs_mesh_clean_families(cs_mesh_t *mesh)
Definition: cs_mesh.c:3074
void cs_mesh_update_auxiliary(cs_mesh_t *mesh)
Definition: cs_mesh.c:2676
void cs_mesh_sync_var_scal_ext(cs_real_t *var)
Definition: cs_mesh.c:3340
void cs_mesh_i_faces_thread_block_count(const cs_mesh_t *m, const cs_e2n_sum_t e2n, int block_size, int *n_groups, int *n_blocks)
Determine number of blocks and associated groups to be used for loops on interior faces.
Definition: cs_mesh.c:4109
void synvie(cs_real_t var[])
Definition: cs_mesh.c:2005
void cs_mesh_selector_stats(cs_mesh_t *mesh)
Definition: cs_mesh.c:3797
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:2779
void cs_mesh_sync_var_sym_tens(cs_real_6_t *var)
Definition: cs_mesh.c:3425
void cs_mesh_i_faces_thread_block_range(const cs_mesh_t *m, const cs_e2n_sum_t e2n, int group_id, int block_id, int block_count, int block_size, cs_lnum_t *s_id, cs_lnum_t *e_id)
Compute array index bounds for a block of interior faces associated to a thread or task.
Definition: cs_mesh.c:4165
void cs_mesh_tag_boundary_cells(cs_mesh_t *mesh, int cell_b_flag[])
Mark cells adjacent to boundary, through faces or vertices.
Definition: cs_mesh.c:3634
void syntin(cs_real_t var[])
Definition: cs_mesh.c:2024
void cs_mesh_discard_free_faces(cs_mesh_t *mesh)
Definition: cs_mesh.c:2409
void cs_mesh_dump(const cs_mesh_t *mesh)
Definition: cs_mesh.c:3844
fvm_group_class_set_t * cs_mesh_create_group_classes(cs_mesh_t *mesh)
Definition: cs_mesh.c:3196
void cs_mesh_sync_var_tens(cs_real_t *var)
Definition: cs_mesh.c:3403
void cs_mesh_reinit(cs_mesh_t *mesh)
Definition: cs_mesh.c:2213
int cs_mesh_b_faces_thread_block_count(const cs_mesh_t *m, int block_size)
Return number of boundary face blocks associated to threads or tasks.
Definition: cs_mesh.c:4241
cs_gnum_t cs_mesh_n_g_ghost_cells(cs_mesh_t *mesh)
Definition: cs_mesh.c:3051
void cs_mesh_init_interfaces(cs_mesh_t *mesh, cs_mesh_builder_t *mb)
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:3456
cs_mesh_t * cs_mesh_destroy(cs_mesh_t *mesh)
Definition: cs_mesh.c:2196
cs_mesh_t * cs_glob_mesh
cs_mesh_time_dep_t
Definition: cs_mesh.h:74
@ CS_MESH_TRANSIENT_COORDS
Definition: cs_mesh.h:77
@ CS_MESH_TRANSIENT_CONNECT
Definition: cs_mesh.h:78
@ CS_MESH_FIXED
Definition: cs_mesh.h:76
cs_gnum_t cs_mesh_compact_gnum(cs_lnum_t n_elts, cs_gnum_t *elt_gnum)
Definition: cs_mesh.c:2319
void cs_mesh_update_selectors(cs_mesh_t *mesh)
Definition: cs_mesh.c:3301
void cs_mesh_b_faces_thread_block_range(const cs_mesh_t *m, int block_id, int block_count, int block_size, cs_lnum_t *s_id, cs_lnum_t *e_id)
Compute array index bounds for a block of boundary faces associated to a thread or task.
Definition: cs_mesh.c:4287
void cs_mesh_sync_var_scal(cs_real_t *var)
Definition: cs_mesh.c:3319
void cs_mesh_sync_var_vect(cs_real_t *var)
Definition: cs_mesh.c:3356
void cs_mesh_init_selectors(void)
Definition: cs_mesh.c:3257
void cs_mesh_print_info(const cs_mesh_t *mesh, const char *name)
Definition: cs_mesh.c:3719
void synsca(cs_real_t var[])
Definition: cs_mesh.c:1946
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:2543
void cs_mesh_init_group_classes(cs_mesh_t *mesh)
Definition: cs_mesh.c:3242
void synvin(cs_real_t var[])
Definition: cs_mesh.c:1985
cs_e2n_sum_t
Definition: cs_parall.h:51
struct _fvm_group_class_set_t fvm_group_class_set_t
Definition: fvm_group.h:60
struct _fvm_periodicity_t fvm_periodicity_t
Definition: fvm_periodicity.h:67
struct _fvm_selector_t fvm_selector_t
Definition: fvm_selector.h:51
Definition: mesh.f90:26
Definition: cs_halo.h:77
Definition: cs_mesh_builder.h:57
Definition: cs_mesh.h:85
int save_if_modified
Definition: cs_mesh.h:221
int modified
Definition: cs_mesh.h:220
int n_transforms
Definition: cs_mesh.h:141
cs_lnum_t * cell_cells_idx
Definition: cs_mesh.h:172
cs_lnum_t * b_cells
Definition: cs_mesh.h:168
fvm_selector_t * select_cells
Definition: cs_mesh.h:199
cs_lnum_t * cell_cells_lst
Definition: cs_mesh.h:175
int verbosity
Definition: cs_mesh.h:219
cs_lnum_t * b_face_cells
Definition: cs_mesh.h:112
int * i_face_family
Definition: cs_mesh.h:192
cs_lnum_t n_i_faces
Definition: cs_mesh.h:98
cs_numbering_t * vtx_numbering
Definition: cs_mesh.h:161
cs_interface_set_t * vtx_interfaces
Definition: cs_mesh.h:155
int * b_face_family
Definition: cs_mesh.h:193
cs_gnum_t n_g_i_faces
Definition: cs_mesh.h:123
cs_lnum_t n_b_faces_all
Definition: cs_mesh.h:216
char * group
Definition: cs_mesh.h:186
cs_range_set_t * vtx_range_set
Definition: cs_mesh.h:157
int domain_num
Definition: cs_mesh.h:90
cs_numbering_t * b_face_numbering
Definition: cs_mesh.h:163
cs_numbering_t * i_face_numbering
Definition: cs_mesh.h:162
cs_lnum_t n_b_faces
Definition: cs_mesh.h:99
cs_lnum_t * i_face_vtx_idx
Definition: cs_mesh.h:114
cs_gnum_t n_g_i_c_faces
Definition: cs_mesh.h:127
cs_lnum_t * gcell_vtx_lst
Definition: cs_mesh.h:180
cs_lnum_t dim
Definition: cs_mesh.h:89
cs_gnum_t n_g_vertices
Definition: cs_mesh.h:125
bool have_r_gen
Definition: cs_mesh.h:205
cs_gnum_t n_g_b_faces
Definition: cs_mesh.h:124
cs_lnum_t n_cells_with_ghosts
Definition: cs_mesh.h:151
cs_lnum_t n_cells
Definition: cs_mesh.h:97
int have_rotation_perio
Definition: cs_mesh.h:143
int n_groups
Definition: cs_mesh.h:184
fvm_periodicity_t * periodicity
Definition: cs_mesh.h:145
int n_families
Definition: cs_mesh.h:188
char * vtx_r_gen
Definition: cs_mesh.h:207
fvm_selector_t * select_i_faces
Definition: cs_mesh.h:200
cs_gnum_t n_g_cells
Definition: cs_mesh.h:122
fvm_group_class_set_t * class_defs
Definition: cs_mesh.h:195
int * cell_family
Definition: cs_mesh.h:191
int n_init_perio
Definition: cs_mesh.h:140
cs_lnum_t n_vertices
Definition: cs_mesh.h:100
cs_halo_t * halo
Definition: cs_mesh.h:156
cs_lnum_2_t * i_face_cells
Definition: cs_mesh.h:111
cs_lnum_t * b_face_vtx_idx
Definition: cs_mesh.h:117
cs_numbering_t * cell_numbering
Definition: cs_mesh.h:160
cs_lnum_t * b_face_vtx_lst
Definition: cs_mesh.h:118
cs_lnum_t b_face_vtx_connect_size
Definition: cs_mesh.h:104
cs_gnum_t * global_vtx_num
Definition: cs_mesh.h:136
cs_gnum_t * global_i_face_num
Definition: cs_mesh.h:134
int * group_idx
Definition: cs_mesh.h:185
cs_gnum_t * global_b_face_num
Definition: cs_mesh.h:135
char * i_face_r_gen
Definition: cs_mesh.h:206
cs_lnum_t i_face_vtx_connect_size
Definition: cs_mesh.h:102
cs_halo_type_t halo_type
Definition: cs_mesh.h:149
int n_max_family_items
Definition: cs_mesh.h:189
fvm_selector_t * select_b_faces
Definition: cs_mesh.h:201
int n_domains
Definition: cs_mesh.h:91
cs_lnum_t * i_face_vtx_lst
Definition: cs_mesh.h:115
cs_lnum_t n_ghost_cells
Definition: cs_mesh.h:153
cs_lnum_t * gcell_vtx_idx
Definition: cs_mesh.h:179
cs_real_t * vtx_coord
Definition: cs_mesh.h:109
cs_lnum_t n_b_cells
Definition: cs_mesh.h:167
cs_mesh_time_dep_t time_dep
Definition: cs_mesh.h:93
cs_gnum_t * global_cell_num
Definition: cs_mesh.h:133
cs_gnum_t n_g_free_faces
Definition: cs_mesh.h:211
int * family_item
Definition: cs_mesh.h:190
cs_gnum_t n_g_b_faces_all
Definition: cs_mesh.h:214
Definition: cs_numbering.h:87
Definition: cs_range_set.h:57