7.0
general documentation
All Data Structures Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
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-2021 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  char *i_face_r_gen;
206  /* Status flags */
207 
216  int verbosity;
217  int modified;
223 } cs_mesh_t;
224 
225 /*============================================================================
226  * Static global variables
227  *============================================================================*/
228 
229 extern cs_mesh_t *cs_glob_mesh; /* Pointer to main mesh structure */
230 
231 /*============================================================================
232  * Public function prototypes for Fortran API
233  *============================================================================*/
234 
235 /*----------------------------------------------------------------------------
236  * Update a scalar array in case of parallelism and/or periodicity.
237  *
238  * Fortran interface:
239  *
240  * subroutine synsca(var)
241  * *****************
242  *
243  * var : <-> : scalar array
244  *----------------------------------------------------------------------------*/
245 
246 void CS_PROCF(synsca, SYNSCA)
247 (
248  cs_real_t var[]
249 );
250 
251 /*----------------------------------------------------------------------------
252  * Update a scalar array in case of parallelism and/or periodicity,
253  * using an extended halo.
254  *
255  * Fortran interface:
256  *
257  * subroutine synsce(var)
258  * *****************
259  *
260  * var : <-> : scalar array
261  *----------------------------------------------------------------------------*/
262 
263 void CS_PROCF(synsce, SYNSCE)
264 (
265  cs_real_t var[]
266 );
267 
268 /*----------------------------------------------------------------------------
269  * Update a vector array in case of parallelism and/or periodicity.
270  *
271  * Fortran interface:
272  *
273  * subroutine synvec(var)
274  * *****************
275  *
276  * var1 : <-> : vector component 1 array
277  * var2 : <-> : vector component 2 array
278  * var3 : <-> : vector component 3 array
279  *----------------------------------------------------------------------------*/
280 
281 void CS_PROCF(synvec, SYNVEC)
282 (
283  cs_real_t var1[],
284  cs_real_t var2[],
285  cs_real_t var3[]
286 );
287 
288 /*----------------------------------------------------------------------------
289  * Update a vector array in case of parallelism and/or periodicity.
290  *
291  * Fortran interface:
292  *
293  * subroutine synvin(var)
294  * *****************
295  *
296  * var : <-> : interleaved vector (of dimension 3)
297  *----------------------------------------------------------------------------*/
298 
299 void CS_PROCF(synvin, SYNVIN)
300 (
301  cs_real_t var[]
302 );
303 
304 /*----------------------------------------------------------------------------
305  * Update a vector array in case of parallelism and/or periodicity,
306  * using an extended halo.
307  *
308  * Fortran interface:
309  *
310  * subroutine synvin(var)
311  * *****************
312  *
313  * var : <-> : interleaved vector (of dimension 3)
314  *----------------------------------------------------------------------------*/
315 
316 void CS_PROCF(synvie, SYNVIE)
317 (
318  cs_real_t var[]
319 );
320 
321 /*----------------------------------------------------------------------------
322  * Update a tensor array in case of parallelism and/or periodicity.
323  *
324  * Fortran interface:
325  *
326  * subroutine synten(var)
327  * *****************
328  *
329  * var11 : <-> : tensor component 11 array
330  * var12 : <-> : tensor component 12 array
331  * var13 : <-> : tensor component 13 array
332  * var21 : <-> : tensor component 21 array
333  * var22 : <-> : tensor component 22 array
334  * var23 : <-> : tensor component 23 array
335  * var31 : <-> : tensor component 31 array
336  * var32 : <-> : tensor component 32 array
337  * var33 : <-> : tensor component 33 array
338  *----------------------------------------------------------------------------*/
339 
340 void CS_PROCF(synten, SYNTEN)
341 (
342  cs_real_t var11[],
343  cs_real_t var12[],
344  cs_real_t var13[],
345  cs_real_t var21[],
346  cs_real_t var22[],
347  cs_real_t var23[],
348  cs_real_t var31[],
349  cs_real_t var32[],
350  cs_real_t var33[]
351 );
352 
353 /*----------------------------------------------------------------------------
354  * Update a tensor array in case of parallelism and/or periodicity.
355  *
356  * Fortran interface:
357  *
358  * subroutine syntin(var)
359  * *****************
360  *
361  * var : <-> : interleaved tensor (of dimension 3x3)
362  *----------------------------------------------------------------------------*/
363 
364 void CS_PROCF(syntin, SYNTIN)
365 (
366  cs_real_t var[]
367 );
368 
369 /*----------------------------------------------------------------------------
370  * Update a symmetric tensor array in case of parallelism and/or periodicity.
371  *
372  * Fortran interface:
373  *
374  * subroutine syntis(var)
375  * *****************
376  *
377  * var : <-> : interleaved symmetric tensor (of dimension 6)
378  *----------------------------------------------------------------------------*/
379 
380 void CS_PROCF(syntis, SYNTIS)
381 (
382  cs_real_t var[]
383 );
384 
385 /*=============================================================================
386  * Public function prototypes
387  *============================================================================*/
388 
389 /*----------------------------------------------------------------------------
390  * Create an empty mesh structure
391  *
392  * returns:
393  * pointer to created mesh structure
394  *----------------------------------------------------------------------------*/
395 
396 cs_mesh_t *
397 cs_mesh_create(void);
398 
399 /*----------------------------------------------------------------------------
400  * Destroy a mesh structure
401  *
402  * mesh <-> pointer to a mesh structure
403  *
404  * returns:
405  * NULL pointer
406  *----------------------------------------------------------------------------*/
407 
408 cs_mesh_t *
410 
411 /*----------------------------------------------------------------------------
412  * Update (compactify) an array of global numbers.
413  *
414  * parameters:
415  * n_elts <-> number of local elements
416  * elt_gnum <-> global element numbers
417  *
418  * return:
419  * associated global number of elements
420  *----------------------------------------------------------------------------*/
421 
422 cs_gnum_t
424  cs_gnum_t *elt_gnum);
425 
426 /*----------------------------------------------------------------------------
427  * Remove arrays and structures that mey be rebuilt.
428  *
429  * mesh <-> pointer to a mesh structure
430  * free_halos <-- if true, free halos and parallel/periodic interface
431  * structures
432  *----------------------------------------------------------------------------*/
433 
434 void
436  bool free_halos);
437 
438 /*----------------------------------------------------------------------------
439  * Discard free (isolated) faces from a mesh.
440  *
441  * This should always be done before using the mesh for computation.
442  *
443  * parameters:
444  * mesh <-> pointer to mesh structure
445  *----------------------------------------------------------------------------*/
446 
447 void
449 
450 /*----------------------------------------------------------------------------
451  * Discard free (isolated) vertices from a mesh.
452  *
453  * This is recommended before using the mesh for computation.
454  *
455  * parameters:
456  * mesh <-> pointer to mesh structure
457  *----------------------------------------------------------------------------*/
458 
459 void
461 
462 /*----------------------------------------------------------------------------
463  * Generate or update list of mesh boundary cells.
464  *
465  * parameters:
466  * mesh <-> pointer to a cs_mesh_t structure
467  *----------------------------------------------------------------------------*/
468 
469 void
471 
472 /*----------------------------------------------------------------------------
473  * Compute or update mesh structure members that depend on other members,
474  * but whose results may be reused, such as global number of elements
475  * (cells, vertices, interior and boundary faces) and sync cell family.
476  *
477  * parameters:
478  * mesh <-> pointer to a cs_mesh_t structure
479  *----------------------------------------------------------------------------*/
480 
481 void
483 
484 /*----------------------------------------------------------------------------
485  * Creation and initialization of mesh face and vertex interfaces.
486  *
487  * parameters:
488  * mesh <-> pointer to mesh structure
489  * mb <-> pointer to mesh builder (in case of periodicity)
490  *----------------------------------------------------------------------------*/
491 
492 void
494  cs_mesh_builder_t *mb);
495 
496 /*----------------------------------------------------------------------------
497  * Creation and initialization of halo structures.
498  *
499  * Treatment of parallel and/or periodic halos for standard and extended
500  * ghost cells according to halo type requested by global options.
501  *
502  * parameters:
503  * mesh <-> pointer to mesh structure
504  * mb <-> pointer to mesh builder (in case of periodicity)
505  * halo_type <-> type of halo (standard or extended)
506  *----------------------------------------------------------------------------*/
507 
508 void
510  cs_mesh_builder_t *mb,
511  cs_halo_type_t halo_type);
512 
513 /*----------------------------------------------------------------------------
514  * Get the global number of ghost cells.
515  *
516  * parameters:
517  * mesh <-- pointer to a mesh structure
518  *
519  * returns:
520  * Global number of ghost cells
521  *---------------------------------------------------------------------------*/
522 
523 cs_gnum_t
525 
526 /*----------------------------------------------------------------------------
527  * Update a scalar array in case of parallelism and/or periodicity.
528  *
529  * Note: this function is only present so that a C equivalent to the
530  * Fortran wrappers is available. In C code, directly using
531  * cs_halo_sync_var() is preferred.
532  *
533  * parameters:
534  * var <-> scalar array
535  *----------------------------------------------------------------------------*/
536 
537 void
539 
540 /*----------------------------------------------------------------------------
541  * Update a scalar array in case of parallelism and/or periodicity,
542  * using an extended halo.
543  *
544  * Note: this function is only present so that a C equivalent to the
545  * Fortran wrappers is available. In C code, directly using the
546  * cs_halo_sync_var() is preferred.
547  *
548  * parameters:
549  * var <-> scalar array
550  *----------------------------------------------------------------------------*/
551 
552 void
554 
555 /*----------------------------------------------------------------------------
556  * Update a component of a vector for parallelism and/or periodicity,
557  * ignoring periodicity of rotation.
558  *
559  * Note: this function is only present so that a C equivalent to the
560  * Fortran wrappers is available. In C code, directly using the
561  * cs_halo_sync_var() is preferred.
562  *
563  * parameters:
564  * var <-> scalar array
565  *----------------------------------------------------------------------------*/
566 
567 void
569 
570 /*----------------------------------------------------------------------------
571  * Update a vector array in case of parallelism and/or periodicity.
572  *
573  * parameters:
574  * var1 <-> vector component 1 array
575  * var2 <-> vector component 2 array
576  * var3 <-> vector component 3 array
577  *----------------------------------------------------------------------------*/
578 
579 void
581  cs_real_t *var2,
582  cs_real_t *var3);
583 
584 /*----------------------------------------------------------------------------
585  * Update a vector array in case of parallelism and/or periodicity.
586  *
587  * parameters:
588  * var <-> interleaved vector (of dimension 3)
589  *----------------------------------------------------------------------------*/
590 
591 void
593 
594 /*----------------------------------------------------------------------------
595  * Update a vector array in case of parallelism and/or periodicity,
596  * using an extended halo.
597  *
598  * parameters:
599  * var <-> interleaved vector (of dimension 3)
600  *----------------------------------------------------------------------------*/
601 
602 void
604 
605 /*----------------------------------------------------------------------------
606  * Update a components of a vector for parallelism and/or periodicity,
607  * ignoring periodicity of rotation.
608  *
609  * var <-> gradient components (interleaved)
610  *----------------------------------------------------------------------------*/
611 
612 void
614 
615 /*----------------------------------------------------------------------------
616  * Update a diagonal tensor array in case of parallelism and/or periodicity.
617  *
618  * parameters:
619  * var11 <-> diagonal tensor component 11 array
620  * var22 <-> diagonal tensor component 22 array
621  * var33 <-> diagonal tensor component 33 array
622  *----------------------------------------------------------------------------*/
623 
624 void
626  cs_real_t *var22,
627  cs_real_t *var33);
628 
629 /*----------------------------------------------------------------------------
630  * Update a tensor array in case of parallelism and/or periodicity.
631  *
632  * parameters:
633  * var11 <-> tensor component 11 array
634  * var12 <-> tensor component 12 array
635  * var13 <-> tensor component 13 array
636  * var21 <-> tensor component 21 array
637  * var22 <-> tensor component 22 array
638  * var23 <-> tensor component 23 array
639  * var31 <-> tensor component 31 array
640  * var32 <-> tensor component 32 array
641  * var33 <-> tensor component 33 array
642  *----------------------------------------------------------------------------*/
643 
644 void
646  cs_real_t *var12,
647  cs_real_t *var13,
648  cs_real_t *var21,
649  cs_real_t *var22,
650  cs_real_t *var23,
651  cs_real_t *var31,
652  cs_real_t *var32,
653  cs_real_t *var33);
654 
655 /*----------------------------------------------------------------------------
656  * Update a tensor array in case of parallelism and/or periodicity.
657  *
658  * parameters:
659  * var <-> interleaved tensor (of dimension 3x3)
660  *----------------------------------------------------------------------------*/
661 
662 void
664 
665 /*----------------------------------------------------------------------------
666  * Update a symmetric tensor array in case of parallelism and/or periodicity.
667  *
668  * parameters:
669  * var <-> symmetric interleaved tensor (of dimension 6)
670  *----------------------------------------------------------------------------*/
671 
672 void
674 
675 /*----------------------------------------------------------------------------
676  * Order family numbers and remove duplicates
677  *
678  * parameters
679  * mesh <-> pointer to mesh structure
680  *----------------------------------------------------------------------------*/
681 
682 void
684 
685 /*----------------------------------------------------------------------------
686  * Create group classes based on a mesh's family definitions.
687  *
688  * parameters:
689  * mesh <-- pointer to mesh structure
690  *
691  * returns:
692  * pointer to group classes structure based on mesh's family definitions
693  *----------------------------------------------------------------------------*/
694 
697 
698 /*----------------------------------------------------------------------------
699  * Define group classes for a mesh based on its family definitions.
700  *
701  * parameters:
702  * mesh <-> pointer to mesh structure
703  *----------------------------------------------------------------------------*/
704 
705 void
707 
708 /*----------------------------------------------------------------------------
709  * Assign selectors to global mesh.
710  *
711  * Should be called once the mesh is fully built.
712  *----------------------------------------------------------------------------*/
713 
714 void
716 
717 /*----------------------------------------------------------------------------
718  * Update selector and associated structures.
719  *
720  * parameters:
721  * mesh <-> pointer to a mesh structure
722  *----------------------------------------------------------------------------*/
723 
724 void
726 
727 /*----------------------------------------------------------------------------
728  * Get global lists of periodic face couples.
729  *
730  * In parallel, each face couple may appear on only one rank.
731  *
732  * The caller is responsible for freeing the arrays allocated and returned
733  * by this function once they are no onger needed.
734  *
735  * parameters:
736  * mesh <-- pointer to mesh structure
737  * n_perio_face_couples --> global number of periodic couples per
738  * periodicity (size: mesh->n_init_perio)
739  * perio_face_couples --> arrays of global periodic couple face numbers,
740  * for each periodicity
741  *----------------------------------------------------------------------------*/
742 
743 void
745  cs_lnum_t **n_perio_face_couples,
746  cs_gnum_t ***perio_face_couples);
747 
748 /*----------------------------------------------------------------------------
749  * Build global cell numbering array extended to ghost cell values.
750  *
751  * If the blank_perio flag is nonzero, periodic ghost cell numbers
752  * are set to zero instead of the value of the matching cell.
753  *
754  * The caller is responsible for freeing the returned array when it
755  * is no longer useful.
756  *
757  * parameters:
758  * mesh <-- pointer to mesh structure
759  * blank_perio <-- flag to zeroe periodic cell values
760  *----------------------------------------------------------------------------*/
761 
762 cs_gnum_t *
764  int blank_perio);
765 
766 /*----------------------------------------------------------------------------
767  * Mark interior faces with the number of their associated periodic
768  * transform id.
769  *
770  * parameters:
771  * mesh <-- pointer to mesh structure
772  * perio_num --> periodicity number associated with each face, signed for
773  * direct/reverse transform, 0 for non-periodic faces
774  * (size: mesh->n_i_faces)
775  *----------------------------------------------------------------------------*/
776 
777 void
779  int perio_num[]);
780 
781 /*----------------------------------------------------------------------------
782  * Print information on a mesh structure.
783  *
784  * parameters:
785  * mesh <-- pointer to mesh structure.
786  * name <-- associated name.
787  *----------------------------------------------------------------------------*/
788 
789 void
791  const char *name);
792 
793 /*----------------------------------------------------------------------------
794  * Compute global face connectivity size.
795  *
796  * Faces on simple parallel boundaries are counted only once, but periodic
797  * faces are counted twice.
798  *
799  * parameters:
800  * mesh <-- pointer to a cs_mesh_t structure
801  * g_i_face_vertices_size --> global interior face connectivity size, or NULL
802  * g_b_face_vertices_size --> global boundary face connectivity size, or NULL
803  *----------------------------------------------------------------------------*/
804 
805 void
807  cs_gnum_t *g_i_face_vertices_size,
808  cs_gnum_t *g_b_face_vertices_size);
809 
810 /*----------------------------------------------------------------------------
811  * Print statistics about mesh selectors usage to log.
812  *
813  * parameters:
814  * mesh <-- pointer to a mesh structure
815  *----------------------------------------------------------------------------*/
816 
817 void
819 
820 /*----------------------------------------------------------------------------
821  * Dump of a mesh structure.
822  *
823  * parameters:
824  * mesh <-> pointer to mesh structure.
825  *----------------------------------------------------------------------------*/
826 
827 void
828 cs_mesh_dump(const cs_mesh_t *mesh);
829 
830 /*----------------------------------------------------------------------------*/
831 
833 
834 #endif /* __CS_MESH_H__ */
int save_if_modified
Definition: cs_mesh.h:218
unsigned long cs_gnum_t
global mesh entity number
Definition: cs_defs.h:286
cs_gnum_t cs_mesh_compact_gnum(cs_lnum_t n_elts, cs_gnum_t *elt_gnum)
Definition: cs_mesh.c:2303
int n_transforms
Definition: cs_mesh.h:140
void cs_mesh_selector_stats(cs_mesh_t *mesh)
Definition: cs_mesh.c:3808
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:3609
cs_mesh_t * cs_mesh_create(void)
Definition: cs_mesh.c:2122
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:2508
void cs_mesh_sync_var_vect_ni(cs_real_t *var1, cs_real_t *var2, cs_real_t *var3)
Definition: cs_mesh.c:3334
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:211
cs_lnum_t * b_face_vtx_lst
Definition: cs_mesh.h:117
void cs_mesh_init_halo(cs_mesh_t *mesh, cs_mesh_builder_t *mb, cs_halo_type_t halo_type)
Definition: cs_mesh.c:2740
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:3271
void cs_mesh_sync_var_diag_ni(cs_real_t *var11, cs_real_t *var22, cs_real_t *var33)
Definition: cs_mesh.c:3430
void synvin(cs_real_t var[])
Definition: cs_mesh.c:2008
cs_range_set_t * vtx_range_set
Definition: cs_mesh.h:156
#define BEGIN_C_DECLS
Definition: cs_defs.h:495
void cs_mesh_sync_var_component(cs_real_t *var)
Definition: cs_mesh.c:3313
cs_lnum_t i_face_vtx_connect_size
Definition: cs_mesh.h:101
void cs_mesh_sync_var_tens_ni(cs_real_t *var11, cs_real_t *var12, cs_real_t *var13, cs_real_t *var21, cs_real_t *var22, cs_real_t *var23, cs_real_t *var31, cs_real_t *var32, cs_real_t *var33)
Definition: cs_mesh.c:3464
cs_mesh_t * cs_glob_mesh
cs_interface_set_t * vtx_interfaces
Definition: cs_mesh.h:154
void synvec(cs_real_t var1[], cs_real_t var2[], cs_real_t var3[])
Definition: cs_mesh.c:1987
cs_lnum_t * i_face_vtx_idx
Definition: cs_mesh.h:113
cs_lnum_t * i_face_vtx_lst
Definition: cs_mesh.h:114
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:3209
cs_gnum_t n_g_free_faces
Definition: cs_mesh.h:208
Definition: cs_halo.h:71
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:3557
cs_real_t * vtx_coord
Definition: cs_mesh.h:108
void cs_mesh_dump(const cs_mesh_t *mesh)
Definition: cs_mesh.c:3855
void cs_mesh_clean_families(cs_mesh_t *mesh)
Definition: cs_mesh.c:3026
void cs_mesh_update_b_cells(cs_mesh_t *mesh)
Definition: cs_mesh.c:2598
void cs_mesh_sync_var_vect_no_rotation(cs_real_t *var)
Definition: cs_mesh.c:3407
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:204
double cs_real_t
Floating-point value.
Definition: cs_defs.h:307
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:2337
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:2254
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:2084
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:3148
int modified
Definition: cs_mesh.h:217
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:216
Definition: cs_range_set.h:57
cs_halo_type_t
Definition: cs_halo.h:50
void synvie(cs_real_t var[])
Definition: cs_mesh.c:2028
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:3292
void cs_mesh_get_face_perio_num(const cs_mesh_t *mesh, int perio_num[])
Definition: cs_mesh.c:3686
cs_gnum_t cs_mesh_n_g_ghost_cells(cs_mesh_t *mesh)
Definition: cs_mesh.c:3003
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:313
cs_lnum_t n_b_faces_all
Definition: cs_mesh.h:213
void cs_mesh_sync_var_tens(cs_real_t *var)
Definition: cs_mesh.c:3504
void cs_mesh_discard_free_faces(cs_mesh_t *mesh)
Definition: cs_mesh.c:2396
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:3730
void synten(cs_real_t var11[], cs_real_t var12[], cs_real_t var13[], cs_real_t var21[], cs_real_t var22[], cs_real_t var23[], cs_real_t var31[], cs_real_t var32[], cs_real_t var33[])
Definition: cs_mesh.c:2055
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:3194
Definition: cs_mesh.h:76
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:301
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:496
cs_numbering_t * cell_numbering
Definition: cs_mesh.h:159
void cs_mesh_sync_var_vect(cs_real_t *var)
Definition: cs_mesh.c:3360
void syntis(cs_real_t var[])
Definition: cs_mesh.c:2103
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:509
void cs_mesh_sync_var_vect_ext(cs_real_t *var)
Definition: cs_mesh.c:3384
cs_lnum_t n_b_cells
Definition: cs_mesh.h:166
void cs_mesh_update_selectors(cs_mesh_t *mesh)
Definition: cs_mesh.c:3253
int have_rotation_perio
Definition: cs_mesh.h:142
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:2477
cs_mesh_time_dep_t
Definition: cs_mesh.h:73
void cs_mesh_update_auxiliary(cs_mesh_t *mesh)
Definition: cs_mesh.c:2641
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
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:83
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
void cs_mesh_sync_var_sym_tens(cs_real_t *var)
Definition: cs_mesh.c:3526
cs_halo_t * halo
Definition: cs_mesh.h:155
cs_lnum_t * b_face_cells
Definition: cs_mesh.h:111