My Project
programmer's 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-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 /*----------------------------------------------------------------------------
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  * Type definitions
58  *============================================================================*/
59 
60 /* Mesh structure definition */
61 /* ------------------------- */
62 
63 typedef struct {
64 
65  /* General features */
66 
71  /* Local dimensions */
72 
83  /* Local structures */
84 
96  /* Global dimension */
97 
107  /* Global numbering */
108 
114  /* Periodictity features */
115 
123  /* Parallelism and/or periodic features */
124 
141  /* Re-computable connectivity features */
142 
146  /* Extended neighborhood features */
147 
158  /* Group and family features */
159 
160  int n_groups;
161  int *group_idx;
162  char *group;
166  int *family_item;
167  int *cell_family;
179  /* Status flags */
180 
183  int verbosity;
184  int modified;
190 } cs_mesh_t;
191 
192 /*============================================================================
193  * Static global variables
194  *============================================================================*/
195 
196 extern cs_mesh_t *cs_glob_mesh; /* Pointer to main mesh structure */
197 
198 /*============================================================================
199  * Public function prototypes for Fortran API
200  *============================================================================*/
201 
202 /*----------------------------------------------------------------------------
203  * Update a scalar array in case of parallelism and/or periodicity.
204  *
205  * Fortran interface:
206  *
207  * subroutine synsca(var)
208  * *****************
209  *
210  * var : <-> : scalar array
211  *----------------------------------------------------------------------------*/
212 
213 void CS_PROCF(synsca, SYNSCA)
214 (
215  cs_real_t var[]
216 );
217 
218 /*----------------------------------------------------------------------------
219  * Update a scalar array in case of parallelism and/or periodicity,
220  * using an extended halo.
221  *
222  * Fortran interface:
223  *
224  * subroutine synsce(var)
225  * *****************
226  *
227  * var : <-> : scalar array
228  *----------------------------------------------------------------------------*/
229 
230 void CS_PROCF(synsce, SYNSCE)
231 (
232  cs_real_t var[]
233 );
234 
235 /*----------------------------------------------------------------------------
236  * Update a scalar array in case of parallelism and/or periodicity,
237  * ignoring periodicity of rotation
238  *
239  * Fortran interface:
240  *
241  * subroutine syncmp(var)
242  * *****************
243  *
244  * var : <-> : scalar array
245  *----------------------------------------------------------------------------*/
246 
247 void CS_PROCF(syncmp, SYNCMP)
248 (
249  cs_real_t var[]
250 );
251 
252 /*----------------------------------------------------------------------------
253  * Update a vector array in case of parallelism and/or periodicity.
254  *
255  * Fortran interface:
256  *
257  * subroutine synvec(var)
258  * *****************
259  *
260  * var1 : <-> : vector component 1 array
261  * var2 : <-> : vector component 2 array
262  * var3 : <-> : vector component 3 array
263  *----------------------------------------------------------------------------*/
264 
265 void CS_PROCF(synvec, SYNVEC)
266 (
267  cs_real_t var1[],
269  cs_real_t var3[]
270 );
271 
272 /*----------------------------------------------------------------------------
273  * Update a vector array in case of parallelism and/or periodicity.
274  *
275  * Fortran interface:
276  *
277  * subroutine synvin(var)
278  * *****************
279  *
280  * var : <-> : interleaved vector (of dimension 3)
281  *----------------------------------------------------------------------------*/
282 
283 void CS_PROCF(synvin, SYNVIN)
284 (
285  cs_real_t var[]
286 );
287 
288 /*----------------------------------------------------------------------------
289  * Update a vector array in case of parallelism and/or periodicity,
290  * using an extended halo.
291  *
292  * Fortran interface:
293  *
294  * subroutine synvin(var)
295  * *****************
296  *
297  * var : <-> : interleaved vector (of dimension 3)
298  *----------------------------------------------------------------------------*/
299 
300 void CS_PROCF(synvie, SYNVIE)
301 (
302  cs_real_t var[]
303 );
304 
305 /*----------------------------------------------------------------------------
306  * Update a diagonal tensor array in case of parallelism and/or periodicity.
307  *
308  * Fortran interface:
309  *
310  * subroutine syndia(var)
311  * *****************
312  *
313  * var11 : <-> : diagonal tensor component 11 array
314  * var22 : <-> : diagonal tensor component 22 array
315  * var33 : <-> : diagonal tensor component 33 array
316  *----------------------------------------------------------------------------*/
317 
318 void CS_PROCF(syndia, SYNDIA)
319 (
320  cs_real_t var11[],
322  cs_real_t var33[]
323 );
324 
325 /*----------------------------------------------------------------------------
326  * Update a tensor array in case of parallelism and/or periodicity.
327  *
328  * Fortran interface:
329  *
330  * subroutine synten(var)
331  * *****************
332  *
333  * var11 : <-> : tensor component 11 array
334  * var12 : <-> : tensor component 12 array
335  * var13 : <-> : tensor component 13 array
336  * var21 : <-> : tensor component 21 array
337  * var22 : <-> : tensor component 22 array
338  * var23 : <-> : tensor component 23 array
339  * var31 : <-> : tensor component 31 array
340  * var32 : <-> : tensor component 32 array
341  * var33 : <-> : tensor component 33 array
342  *----------------------------------------------------------------------------*/
343 
344 void CS_PROCF(synten, SYNTEN)
345 (
346  cs_real_t var11[],
348  cs_real_t var13[],
349  cs_real_t var21[],
350  cs_real_t var22[],
351  cs_real_t var23[],
352  cs_real_t var31[],
353  cs_real_t var32[],
354  cs_real_t var33[]
355 );
356 
357 /*----------------------------------------------------------------------------
358  * Update a tensor array in case of parallelism and/or periodicity.
359  *
360  * Fortran interface:
361  *
362  * subroutine syntin(var)
363  * *****************
364  *
365  * var : <-> : interleaved tensor (of dimension 3x3)
366  *----------------------------------------------------------------------------*/
367 
368 void CS_PROCF(syntin, SYNTIN)
369 (
370  cs_real_t var[]
371 );
372 
373 /*----------------------------------------------------------------------------
374  * Update a symmetric tensor array in case of parallelism and/or periodicity.
375  *
376  * Fortran interface:
377  *
378  * subroutine syntis(var)
379  * *****************
380  *
381  * var : <-> : interleaved symmetric tensor (of dimension 6)
382  *----------------------------------------------------------------------------*/
383 
384 void CS_PROCF(syntis, SYNTIS)
385 (
386  cs_real_t var[]
387 );
388 
389 /*=============================================================================
390  * Public function prototypes
391  *============================================================================*/
392 
393 /*----------------------------------------------------------------------------
394  * Create an empty mesh structure
395  *
396  * returns:
397  * pointer to created mesh structure
398  *----------------------------------------------------------------------------*/
399 
400 cs_mesh_t *
401 cs_mesh_create(void);
402 
403 /*----------------------------------------------------------------------------
404  * Destroy a mesh structure
405  *
406  * mesh <-> pointer to a mesh structure
407  *
408  * returns:
409  * NULL pointer
410  *----------------------------------------------------------------------------*/
411 
412 cs_mesh_t *
414 
415 /*----------------------------------------------------------------------------
416  * Update (compactify) an array of global numbers.
417  *
418  * parameters:
419  * n_elts <-> number of local elements
420  * elt_gnum <-> global element numbers
421  *
422  * return:
423  * associated global number of elements
424  *----------------------------------------------------------------------------*/
425 
426 cs_gnum_t
428  cs_gnum_t *elt_gnum);
429 
430 /*----------------------------------------------------------------------------
431  * Remove arrays and structures that mey be rebuilt.
432  *
433  * mesh <-> pointer to a mesh structure
434  * free_halos <-- if true, free halos and parallel/periodic interface
435  * structures
436  *----------------------------------------------------------------------------*/
437 
438 void
440  bool free_halos);
441 
442 /*----------------------------------------------------------------------------
443  * Discard free (isolated) faces from a mesh.
444  *
445  * This should always be done before using the mesh for computation.
446  *
447  * parameters:
448  * mesh <-> pointer to mesh structure
449  *----------------------------------------------------------------------------*/
450 
451 void
453 
454 /*----------------------------------------------------------------------------
455  * Generate or update list of mesh boundary cells.
456  *
457  * parameters:
458  * mesh <-> pointer to a cs_mesh_t structure
459  *----------------------------------------------------------------------------*/
460 
461 void
463 
464 /*----------------------------------------------------------------------------
465  * Compute or update mesh structure members that depend on other members,
466  * but whose results may be reused, such as global number of elements
467  * (cells, vertices, interior and boundary faces) and sync cell family.
468  *
469  * parameters:
470  * mesh <-> pointer to a cs_mesh_t structure
471  *----------------------------------------------------------------------------*/
472 
473 void
475 
476 /*----------------------------------------------------------------------------
477  * Creation and initialization of mesh face and vertex interfaces.
478  *
479  * parameters:
480  * mesh <-> pointer to mesh structure
481  * mb <-> pointer to mesh builder (in case of periodicity)
482  *----------------------------------------------------------------------------*/
483 
484 void
486  cs_mesh_builder_t *mb);
487 
488 /*----------------------------------------------------------------------------
489  * Creation and initialization of halo structures.
490  *
491  * Treatment of parallel and/or periodic halos for standard and extended
492  * ghost cells according to halo type requested by global options.
493  *
494  * parameters:
495  * mesh <-> pointer to mesh structure
496  * mb <-> pointer to mesh builder (in case of periodicity)
497  * halo_type <-> type of halo (standard or extended)
498  *----------------------------------------------------------------------------*/
499 
500 void
502  cs_mesh_builder_t *mb,
503  cs_halo_type_t halo_type);
504 
505 /*----------------------------------------------------------------------------
506  * Get the global number of ghost cells.
507  *
508  * parameters:
509  * mesh <-- pointer to a mesh structure
510  *
511  * returns:
512  * Global number of ghost cells
513  *---------------------------------------------------------------------------*/
514 
515 cs_gnum_t
517 
518 /*----------------------------------------------------------------------------
519  * Update a scalar array in case of parallelism and/or periodicity.
520  *
521  * Note: this function is only present so that a C equivalent to the
522  * Fortran wrappers is available. In C code, directly using
523  * cs_halo_sync_var() is preferred.
524  *
525  * parameters:
526  * var <-> scalar array
527  *----------------------------------------------------------------------------*/
528 
529 void
531 
532 /*----------------------------------------------------------------------------
533  * Update a scalar array in case of parallelism and/or periodicity,
534  * using an extended halo.
535  *
536  * Note: this function is only present so that a C equivalent to the
537  * Fortran wrappers is available. In C code, directly using the
538  * cs_halo_sync_var() is preferred.
539  *
540  * parameters:
541  * var <-> scalar array
542  *----------------------------------------------------------------------------*/
543 
544 void
546 
547 /*----------------------------------------------------------------------------
548  * Update a component of a vector for parallelism and/or periodicity,
549  * ignoring periodicity of rotation.
550  *
551  * Note: this function is only present so that a C equivalent to the
552  * Fortran wrappers is available. In C code, directly using the
553  * cs_halo_sync_var() is preferred.
554  *
555  * parameters:
556  * var <-> scalar array
557  *----------------------------------------------------------------------------*/
558 
559 void
561 
562 /*----------------------------------------------------------------------------
563  * Update a vector array in case of parallelism and/or periodicity.
564  *
565  * parameters:
566  * var1 <-> vector component 1 array
567  * var2 <-> vector component 2 array
568  * var3 <-> vector component 3 array
569  *----------------------------------------------------------------------------*/
570 
571 void
573  cs_real_t *var2,
574  cs_real_t *var3);
575 
576 /*----------------------------------------------------------------------------
577  * Update a vector array in case of parallelism and/or periodicity.
578  *
579  * parameters:
580  * var <-> interleaved vector (of dimension 3)
581  *----------------------------------------------------------------------------*/
582 
583 void
585 
586 /*----------------------------------------------------------------------------
587  * Update a vector array in case of parallelism and/or periodicity,
588  * using an extended halo.
589  *
590  * parameters:
591  * var <-> interleaved vector (of dimension 3)
592  *----------------------------------------------------------------------------*/
593 
594 void
596 
597 /*----------------------------------------------------------------------------
598  * Update a components of a vector for parallelism and/or periodicity,
599  * ignoring periodicity of rotation.
600  *
601  * var <-> gradient components (interleaved)
602  *----------------------------------------------------------------------------*/
603 
604 void
606 
607 /*----------------------------------------------------------------------------
608  * Update a diagonal tensor array in case of parallelism and/or periodicity.
609  *
610  * parameters:
611  * var11 <-> diagonal tensor component 11 array
612  * var22 <-> diagonal tensor component 22 array
613  * var33 <-> diagonal tensor component 33 array
614  *----------------------------------------------------------------------------*/
615 
616 void
618  cs_real_t *var22,
619  cs_real_t *var33);
620 
621 /*----------------------------------------------------------------------------
622  * Update a tensor array in case of parallelism and/or periodicity.
623  *
624  * parameters:
625  * var11 <-> tensor component 11 array
626  * var12 <-> tensor component 12 array
627  * var13 <-> tensor component 13 array
628  * var21 <-> tensor component 21 array
629  * var22 <-> tensor component 22 array
630  * var23 <-> tensor component 23 array
631  * var31 <-> tensor component 31 array
632  * var32 <-> tensor component 32 array
633  * var33 <-> tensor component 33 array
634  *----------------------------------------------------------------------------*/
635 
636 void
638  cs_real_t *var12,
639  cs_real_t *var13,
640  cs_real_t *var21,
641  cs_real_t *var22,
642  cs_real_t *var23,
643  cs_real_t *var31,
644  cs_real_t *var32,
645  cs_real_t *var33);
646 
647 /*----------------------------------------------------------------------------
648  * Update a tensor array in case of parallelism and/or periodicity.
649  *
650  * parameters:
651  * var <-> interleaved tensor (of dimension 3x3)
652  *----------------------------------------------------------------------------*/
653 
654 void
656 
657 /*----------------------------------------------------------------------------
658  * Update a symmetric tensor array in case of parallelism and/or periodicity.
659  *
660  * parameters:
661  * var <-> symmetric interleaved tensor (of dimension 6)
662  *----------------------------------------------------------------------------*/
663 
664 void
666 
667 /*----------------------------------------------------------------------------
668  * Order family numbers and remove duplicates
669  *
670  * parameters
671  * mesh <-> pointer to mesh structure
672  *----------------------------------------------------------------------------*/
673 
674 void
676 
677 /*----------------------------------------------------------------------------
678  * Create group classes based on a mesh's family definitions.
679  *
680  * parameters:
681  * mesh <-- pointer to mesh structure
682  *
683  * returns:
684  * pointer to group classes structure based on mesh's family definitions
685  *----------------------------------------------------------------------------*/
686 
689 
690 /*----------------------------------------------------------------------------
691  * Define group classes for a mesh based on its family definitions.
692  *
693  * parameters:
694  * mesh <-> pointer to mesh structure
695  *----------------------------------------------------------------------------*/
696 
697 void
699 
700 /*----------------------------------------------------------------------------
701  * Assign selectors to global mesh.
702  *
703  * Should be called once the mesh is fully built.
704  *----------------------------------------------------------------------------*/
705 
706 void
708 
709 /*----------------------------------------------------------------------------
710  * Update selector and associated structures.
711  *
712  * parameters:
713  * mesh <-> pointer to a mesh structure
714  *----------------------------------------------------------------------------*/
715 
716 void
718 
719 /*----------------------------------------------------------------------------
720  * Get global lists of periodic face couples.
721  *
722  * In parallel, each face couple may appear on only one rank.
723  *
724  * The caller is responsible for freeing the arrays allocated and returned
725  * by this function once they are no onger needed.
726  *
727  * parameters:
728  * mesh <-- pointer to mesh structure
729  * n_perio_face_couples --> global number of periodic couples per
730  * periodicity (size: mesh->n_init_perio)
731  * perio_face_couples --> arrays of global periodic couple face numbers,
732  * for each periodicity
733  *----------------------------------------------------------------------------*/
734 
735 void
737  cs_lnum_t **n_perio_face_couples,
738  cs_gnum_t ***perio_face_couples);
739 
740 /*----------------------------------------------------------------------------
741  * Build global cell numbering array extended to ghost cell values.
742  *
743  * If the blank_perio flag is nonzero, periodic ghost cell numbers
744  * are set to zero instead of the value of the matching cell.
745  *
746  * The caller is responsible for freeing the returned array when it
747  * is no longer useful.
748  *
749  * parameters:
750  * mesh <-- pointer to mesh structure
751  * blank_perio <-- flag to zeroe periodic cell values
752  *----------------------------------------------------------------------------*/
753 
754 cs_gnum_t *
756  int blank_perio);
757 
758 /*----------------------------------------------------------------------------
759  * Mark interior faces with the number of their associated periodic
760  * transform id.
761  *
762  * parameters:
763  * mesh <-- pointer to mesh structure
764  * perio_num --> periodicity number associated with each face, signed for
765  * direct/reverse transform, 0 for non-periodic faces
766  * (size: mesh->n_i_faces)
767  *----------------------------------------------------------------------------*/
768 
769 void
771  int perio_num[]);
772 
773 /*----------------------------------------------------------------------------
774  * Print information on a mesh structure.
775  *
776  * parameters:
777  * mesh <-- pointer to mesh structure.
778  * name <-- associated name.
779  *----------------------------------------------------------------------------*/
780 
781 void
783  const char *name);
784 
785 /*----------------------------------------------------------------------------
786  * Compute global face connectivity size.
787  *
788  * Faces on simple parallel boundaries are counted only once, but periodic
789  * faces are counted twice.
790  *
791  * parameters:
792  * mesh <-- pointer to a cs_mesh_t structure
793  * g_i_face_vertices_size --> global interior face connectivity size, or NULL
794  * g_b_face_vertices_size --> global boundary face connectivity size, or NULL
795  *----------------------------------------------------------------------------*/
796 
797 void
799  cs_gnum_t *g_i_face_vertices_size,
800  cs_gnum_t *g_b_face_vertices_size);
801 
802 /*----------------------------------------------------------------------------
803  * Print statistics about mesh selectors usage to log.
804  *
805  * parameters:
806  * mesh <-- pointer to a mesh structure
807  *----------------------------------------------------------------------------*/
808 
809 void
811 
812 /*----------------------------------------------------------------------------
813  * Dump of a mesh structure.
814  *
815  * parameters:
816  * mesh <-> pointer to mesh structure.
817  *----------------------------------------------------------------------------*/
818 
819 void
820 cs_mesh_dump(const cs_mesh_t *mesh);
821 
822 /*----------------------------------------------------------------------------*/
823 
825 
826 #endif /* __CS_MESH_H__ */
cs_mesh_t::cell_family
int * cell_family
Definition: cs_mesh.h:167
cs_mesh_t::n_cells
cs_lnum_t n_cells
Definition: cs_mesh.h:73
cs_mesh_sync_var_scal
void cs_mesh_sync_var_scal(cs_real_t *var)
Definition: cs_mesh.c:3214
cs_mesh_t::n_g_b_faces
cs_gnum_t n_g_b_faces
Definition: cs_mesh.h:100
cs_mesh_init_selectors
void cs_mesh_init_selectors(void)
Definition: cs_mesh.c:3152
cs_defs.h
cs_mesh_t::select_b_faces
fvm_selector_t * select_b_faces
Definition: cs_mesh.h:177
cs_mesh_init_interfaces
void cs_mesh_init_interfaces(cs_mesh_t *mesh, cs_mesh_builder_t *mb)
cs_mesh_t::n_families
int n_families
Definition: cs_mesh.h:164
cs_mesh_t::n_max_family_items
int n_max_family_items
Definition: cs_mesh.h:165
cs_mesh_t::n_g_i_faces
cs_gnum_t n_g_i_faces
Definition: cs_mesh.h:99
var23
void cs_real_t cs_real_t cs_real_t cs_real_t cs_real_t var23[]
Definition: cs_mesh.h:347
cs_mesh_n_g_ghost_cells
cs_gnum_t cs_mesh_n_g_ghost_cells(cs_mesh_t *mesh)
Definition: cs_mesh.c:2947
var
void cs_int_t cs_real_t var[]
Definition: cs_parall.h:63
cs_mesh_t::have_rotation_perio
int have_rotation_perio
Definition: cs_mesh.h:119
cs_mesh_get_face_perio_num
void cs_mesh_get_face_perio_num(const cs_mesh_t *mesh, int perio_num[])
Definition: cs_mesh.c:3629
cs_mesh_t::verbosity
int verbosity
Definition: cs_mesh.h:183
cs_mesh_clean_families
void cs_mesh_clean_families(cs_mesh_t *mesh)
Definition: cs_mesh.c:2970
cs_mesh_t::n_b_cells
cs_lnum_t n_b_cells
Definition: cs_mesh.h:143
cs_interface_set_t
struct _cs_interface_set_t cs_interface_set_t
Definition: cs_interface.h:61
cs_mesh_t::vtx_numbering
cs_numbering_t * vtx_numbering
Definition: cs_mesh.h:137
cs_numbering.h
fvm_group_class_set_t
struct _fvm_group_class_set_t fvm_group_class_set_t
Definition: fvm_group.h:60
cs_mesh_t::i_face_vtx_lst
cs_lnum_t * i_face_vtx_lst
Definition: cs_mesh.h:91
var2
void cs_real_t var2[]
Definition: cs_mesh.h:268
cs_mesh_discard_free_faces
void cs_mesh_discard_free_faces(cs_mesh_t *mesh)
Definition: cs_mesh.c:2378
cs_mesh_builder_t
Definition: cs_mesh_builder.h:57
cs_mesh_t::n_groups
int n_groups
Definition: cs_mesh.h:160
cs_mesh_t::i_face_vtx_idx
cs_lnum_t * i_face_vtx_idx
Definition: cs_mesh.h:90
END_C_DECLS
#define END_C_DECLS
Definition: cs_defs.h:468
cs_mesh_destroy
cs_mesh_t * cs_mesh_destroy(cs_mesh_t *mesh)
Definition: cs_mesh.c:2238
fvm_group.h
cs_mesh_t::n_g_i_c_faces
cs_gnum_t n_g_i_c_faces
Definition: cs_mesh.h:103
cs_mesh_init_group_classes
void cs_mesh_init_group_classes(cs_mesh_t *mesh)
Definition: cs_mesh.c:3137
cs_mesh_t::dim
cs_lnum_t dim
Definition: cs_mesh.h:67
cs_mesh_t::gcell_vtx_lst
cs_lnum_t * gcell_vtx_lst
Definition: cs_mesh.h:156
cs_mesh_t::n_vertices
cs_lnum_t n_vertices
Definition: cs_mesh.h:76
cs_mesh_t::b_cells
cs_lnum_t * b_cells
Definition: cs_mesh.h:144
cs_mesh_t::family_item
int * family_item
Definition: cs_mesh.h:166
cs_real_t
double cs_real_t
Floating-point value.
Definition: cs_defs.h:302
var21
void cs_real_t cs_real_t cs_real_t var21[]
Definition: cs_mesh.h:347
cs_mesh_t::b_face_cells
cs_lnum_t * b_face_cells
Definition: cs_mesh.h:88
cs_mesh_t::i_face_cells
cs_lnum_2_t * i_face_cells
Definition: cs_mesh.h:87
cs_mesh_g_face_vertices_sizes
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:2462
cs_mesh_t::global_vtx_num
cs_gnum_t * global_vtx_num
Definition: cs_mesh.h:112
BEGIN_C_DECLS
#define BEGIN_C_DECLS
Definition: cs_defs.h:467
cs_mesh_t::n_b_faces
cs_lnum_t n_b_faces
Definition: cs_mesh.h:75
cs_mesh_t::domain_num
cs_lnum_t domain_num
Definition: cs_mesh.h:68
var13
void cs_real_t cs_real_t var13[]
Definition: cs_mesh.h:347
cs_numbering_t
Definition: cs_numbering.h:83
cs_mesh_update_selectors
void cs_mesh_update_selectors(cs_mesh_t *mesh)
Definition: cs_mesh.c:3196
cs_mesh_t::global_b_face_num
cs_gnum_t * global_b_face_num
Definition: cs_mesh.h:111
cs_mesh_sync_var_component
void cs_mesh_sync_var_component(cs_real_t *var)
Definition: cs_mesh.c:3256
cs_mesh_t::cell_numbering
cs_numbering_t * cell_numbering
Definition: cs_mesh.h:136
var31
void cs_real_t cs_real_t cs_real_t cs_real_t cs_real_t cs_real_t var31[]
Definition: cs_mesh.h:347
mesh
Definition: mesh.f90:26
cs_mesh_t::gcell_vtx_idx
cs_lnum_t * gcell_vtx_idx
Definition: cs_mesh.h:155
var12
void cs_real_t var12[]
Definition: cs_mesh.h:347
cs_glob_mesh
cs_mesh_t * cs_glob_mesh
cs_mesh_t::n_cells_with_ghosts
cs_lnum_t n_cells_with_ghosts
Definition: cs_mesh.h:127
cs_mesh_t::group
char * group
Definition: cs_mesh.h:162
cs_mesh_update_auxiliary
void cs_mesh_update_auxiliary(cs_mesh_t *mesh)
Definition: cs_mesh.c:2595
var33
void cs_real_t cs_real_t var33[]
Definition: cs_mesh.h:321
cs_mesh_t::cell_cells_idx
cs_lnum_t * cell_cells_idx
Definition: cs_mesh.h:148
cs_mesh_sync_var_tens
void cs_mesh_sync_var_tens(cs_real_t *var)
Definition: cs_mesh.c:3447
cs_range_set.h
cs_mesh_t::vtx_interfaces
cs_interface_set_t * vtx_interfaces
Definition: cs_mesh.h:131
cs_mesh_sync_var_vect_no_rotation
void cs_mesh_sync_var_vect_no_rotation(cs_real_t *var)
Definition: cs_mesh.c:3350
cs_mesh_get_perio_faces
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:3500
fvm_selector_t
struct _fvm_selector_t fvm_selector_t
Definition: fvm_selector.h:51
cs_halo.h
cs_gnum_t
unsigned long cs_gnum_t
global mesh entity number
Definition: cs_defs.h:286
fvm_selector.h
cs_mesh_t::i_face_numbering
cs_numbering_t * i_face_numbering
Definition: cs_mesh.h:138
cs_mesh_t::class_defs
fvm_group_class_set_t * class_defs
Definition: cs_mesh.h:171
cs_mesh_free_rebuildable
void cs_mesh_free_rebuildable(cs_mesh_t *mesh, bool free_halos)
Definition: cs_mesh.c:2319
cs_mesh_t::n_g_free_faces
cs_gnum_t n_g_free_faces
Definition: cs_mesh.h:181
fvm_periodicity_t
struct _fvm_periodicity_t fvm_periodicity_t
Definition: fvm_periodicity.h:67
cs_mesh_compact_gnum
cs_gnum_t cs_mesh_compact_gnum(cs_lnum_t n_elts, cs_gnum_t *elt_gnum)
Definition: cs_mesh.c:2285
cs_mesh_t::n_ghost_cells
cs_lnum_t n_ghost_cells
Definition: cs_mesh.h:129
cs_mesh_t::select_i_faces
fvm_selector_t * select_i_faces
Definition: cs_mesh.h:176
cs_mesh_create
cs_mesh_t * cs_mesh_create(void)
Definition: cs_mesh.c:2116
cs_mesh_builder.h
cs_mesh_t::group_idx
int * group_idx
Definition: cs_mesh.h:161
cs_mesh_t::global_i_face_num
cs_gnum_t * global_i_face_num
Definition: cs_mesh.h:110
cs_mesh_init_halo
void cs_mesh_init_halo(cs_mesh_t *mesh, cs_mesh_builder_t *mb, cs_halo_type_t halo_type)
Definition: cs_mesh.c:2694
cs_lnum_t
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:298
cs_range_set_t
Definition: cs_range_set.h:57
cs_interface.h
cs_mesh_t::b_face_vtx_connect_size
cs_lnum_t b_face_vtx_connect_size
Definition: cs_mesh.h:80
cs_mesh_t::halo
cs_halo_t * halo
Definition: cs_mesh.h:132
CS_PROCF
void CS_PROCF(synsca, SYNSCA)(cs_real_t var[])
Definition: cs_mesh.c:1896
cs_halo_t
Definition: cs_halo.h:71
cs_mesh_sync_var_vect_ni
void cs_mesh_sync_var_vect_ni(cs_real_t *var1, cs_real_t *var2, cs_real_t *var3)
Definition: cs_mesh.c:3277
cs_mesh_t::n_domains
cs_lnum_t n_domains
Definition: cs_mesh.h:69
var3
void cs_real_t cs_real_t var3[]
Definition: cs_mesh.h:268
cs_mesh_t::n_g_vertices
cs_gnum_t n_g_vertices
Definition: cs_mesh.h:101
cs_mesh_t::halo_type
cs_halo_type_t halo_type
Definition: cs_mesh.h:125
cs_mesh_t::vtx_coord
cs_real_t * vtx_coord
Definition: cs_mesh.h:85
cs_mesh_t::modified
int modified
Definition: cs_mesh.h:184
var32
void cs_real_t cs_real_t cs_real_t cs_real_t cs_real_t cs_real_t cs_real_t var32[]
Definition: cs_mesh.h:347
cs_lnum_2_t
int cs_lnum_2_t[2]
vector of 2 local mesh-entity ids
Definition: cs_defs.h:308
cs_mesh_t::global_cell_num
cs_gnum_t * global_cell_num
Definition: cs_mesh.h:109
cs_mesh_sync_var_sym_tens
void cs_mesh_sync_var_sym_tens(cs_real_t *var)
Definition: cs_mesh.c:3469
cs_mesh_update_b_cells
void cs_mesh_update_b_cells(cs_mesh_t *mesh)
Definition: cs_mesh.c:2552
cs_mesh_t::vtx_range_set
cs_range_set_t * vtx_range_set
Definition: cs_mesh.h:133
fvm_periodicity.h
cs_halo_type_t
cs_halo_type_t
Definition: cs_halo.h:50
cs_mesh_t::i_face_vtx_connect_size
cs_lnum_t i_face_vtx_connect_size
Definition: cs_mesh.h:78
cs_mesh_sync_var_tens_ni
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:3407
cs_mesh_t::n_transforms
int n_transforms
Definition: cs_mesh.h:117
cs_mesh_sync_var_scal_ext
void cs_mesh_sync_var_scal_ext(cs_real_t *var)
Definition: cs_mesh.c:3235
cs_mesh_t::select_cells
fvm_selector_t * select_cells
Definition: cs_mesh.h:175
cs_mesh_t::n_g_cells
cs_gnum_t n_g_cells
Definition: cs_mesh.h:98
cs_mesh_t::cell_cells_lst
cs_lnum_t * cell_cells_lst
Definition: cs_mesh.h:151
cs_mesh_t::save_if_modified
int save_if_modified
Definition: cs_mesh.h:185
cs_mesh_dump
void cs_mesh_dump(const cs_mesh_t *mesh)
Definition: cs_mesh.c:3798
cs_mesh_t::b_face_family
int * b_face_family
Definition: cs_mesh.h:169
cs_mesh_t::i_face_family
int * i_face_family
Definition: cs_mesh.h:168
cs_mesh_print_info
void cs_mesh_print_info(const cs_mesh_t *mesh, const char *name)
Definition: cs_mesh.c:3673
cs_mesh_t::b_face_vtx_idx
cs_lnum_t * b_face_vtx_idx
Definition: cs_mesh.h:93
cs_mesh_t::n_init_perio
int n_init_perio
Definition: cs_mesh.h:116
cs_mesh_get_cell_gnum
cs_gnum_t * cs_mesh_get_cell_gnum(const cs_mesh_t *mesh, int blank_perio)
Definition: cs_mesh.c:3552
cs_mesh_selector_stats
void cs_mesh_selector_stats(cs_mesh_t *mesh)
Definition: cs_mesh.c:3751
cs_mesh_sync_var_vect
void cs_mesh_sync_var_vect(cs_real_t *var)
Definition: cs_mesh.c:3303
cs_mesh_t::periodicity
fvm_periodicity_t * periodicity
Definition: cs_mesh.h:121
cs_mesh_t
Definition: cs_mesh.h:63
cs_mesh_t::n_i_faces
cs_lnum_t n_i_faces
Definition: cs_mesh.h:74
cs_base.h
var22
void cs_real_t var22[]
Definition: cs_mesh.h:321
cs_mesh_sync_var_diag_ni
void cs_mesh_sync_var_diag_ni(cs_real_t *var11, cs_real_t *var22, cs_real_t *var33)
Definition: cs_mesh.c:3373
cs_mesh_sync_var_vect_ext
void cs_mesh_sync_var_vect_ext(cs_real_t *var)
Definition: cs_mesh.c:3327
cs_mesh_t::b_face_vtx_lst
cs_lnum_t * b_face_vtx_lst
Definition: cs_mesh.h:94
cs_mesh_t::b_face_numbering
cs_numbering_t * b_face_numbering
Definition: cs_mesh.h:139
cs_mesh_create_group_classes
fvm_group_class_set_t * cs_mesh_create_group_classes(cs_mesh_t *mesh)
Definition: cs_mesh.c:3091