My Project
programmer's documentation
Loading...
Searching...
No Matches
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
63typedef struct {
64
65 /* General features */
66
71 /* Local dimensions */
72
83 /* Local structures */
84
96 /* Global dimension */
97
98 cs_gnum_t n_g_cells;
99 cs_gnum_t n_g_i_faces;
100 cs_gnum_t n_g_b_faces;
101 cs_gnum_t n_g_vertices;
103 cs_gnum_t n_g_i_c_faces;
107 /* Global numbering */
108
109 cs_gnum_t *global_cell_num;
110 cs_gnum_t *global_i_face_num;
111 cs_gnum_t *global_b_face_num;
112 cs_gnum_t *global_vtx_num;
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
162 char *group;
179 /* Status flags */
180
181 cs_gnum_t n_g_free_faces;
190} cs_mesh_t;
191
192/*============================================================================
193 * Static global variables
194 *============================================================================*/
195
196extern 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
213void 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
230void 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
247void 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
265void CS_PROCF(synvec, SYNVEC)
266(
267 cs_real_t var1[],
268 cs_real_t var2[],
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
283void 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
300void 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
318void CS_PROCF(syndia, SYNDIA)
319(
320 cs_real_t var11[],
321 cs_real_t var22[],
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
344void CS_PROCF(synten, SYNTEN)
345(
346 cs_real_t var11[],
347 cs_real_t var12[],
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
368void 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
384void 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
400cs_mesh_t *
401cs_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
412cs_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
426cs_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
438void
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
451void
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
461void
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
473void
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
484void
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
500void
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
515cs_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
529void
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
544void
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
559void
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
571void
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
583void
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
594void
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
604void
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
616void
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
636void
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
654void
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
664void
666
667/*----------------------------------------------------------------------------
668 * Order family numbers and remove duplicates
669 *
670 * parameters
671 * mesh <-> pointer to mesh structure
672 *----------------------------------------------------------------------------*/
673
674void
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
697void
699
700/*----------------------------------------------------------------------------
701 * Assign selectors to global mesh.
702 *
703 * Should be called once the mesh is fully built.
704 *----------------------------------------------------------------------------*/
705
706void
708
709/*----------------------------------------------------------------------------
710 * Update selector and associated structures.
711 *
712 * parameters:
713 * mesh <-> pointer to a mesh structure
714 *----------------------------------------------------------------------------*/
715
716void
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
735void
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
754cs_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
769void
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
781void
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
797void
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
809void
811
812/*----------------------------------------------------------------------------
813 * Dump of a mesh structure.
814 *
815 * parameters:
816 * mesh <-> pointer to mesh structure.
817 *----------------------------------------------------------------------------*/
818
819void
821
822/*----------------------------------------------------------------------------*/
823
825
826#endif /* __CS_MESH_H__ */
#define BEGIN_C_DECLS
Definition cs_defs.h:467
double cs_real_t
Floating-point value.
Definition cs_defs.h:302
int cs_lnum_2_t[2]
vector of 2 local mesh-entity ids
Definition cs_defs.h:308
#define CS_PROCF(x, y)
Definition cs_defs.h:481
#define END_C_DECLS
Definition cs_defs.h:468
int cs_lnum_t
local mesh entity id
Definition cs_defs.h:298
cs_halo_type_t
Definition cs_halo.h:50
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:2319
cs_mesh_t * cs_mesh_create(void)
Definition cs_mesh.c:2116
void cs_mesh_sync_var_vect_ext(cs_real_t *var)
Definition cs_mesh.c:3327
void syntis(cs_real_t var[])
Definition cs_mesh.c:2097
void cs_mesh_get_face_perio_num(const cs_mesh_t *mesh, int perio_num[])
Definition cs_mesh.c:3629
void cs_mesh_update_b_cells(cs_mesh_t *mesh)
Definition cs_mesh.c:2552
void synsce(cs_real_t var[])
Definition cs_mesh.c:1917
void synvec(cs_real_t var1[], cs_real_t var2[], cs_real_t var3[])
Definition cs_mesh.c:1958
void cs_mesh_clean_families(cs_mesh_t *mesh)
Definition cs_mesh.c:2970
void cs_mesh_update_auxiliary(cs_mesh_t *mesh)
Definition cs_mesh.c:2595
void cs_mesh_sync_var_vect_no_rotation(cs_real_t *var)
Definition cs_mesh.c:3350
void cs_mesh_sync_var_scal_ext(cs_real_t *var)
Definition cs_mesh.c:3235
void cs_mesh_sync_var_sym_tens(cs_real_t *var)
Definition cs_mesh.c:3469
void syndia(cs_real_t var11[], cs_real_t var22[], cs_real_t var33[])
Definition cs_mesh.c:2020
void synvie(cs_real_t var[])
Definition cs_mesh.c:1999
void cs_mesh_selector_stats(cs_mesh_t *mesh)
Definition cs_mesh.c:3751
void syntin(cs_real_t var[])
Definition cs_mesh.c:2078
void syncmp(cs_real_t var[])
Definition cs_mesh.c:1937
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:2049
fvm_group_class_set_t * cs_mesh_create_group_classes(cs_mesh_t *mesh)
Definition cs_mesh.c:3091
void cs_mesh_discard_free_faces(cs_mesh_t *mesh)
Definition cs_mesh.c:2378
void cs_mesh_dump(const cs_mesh_t *mesh)
Definition cs_mesh.c:3798
void cs_mesh_sync_var_tens(cs_real_t *var)
Definition cs_mesh.c:3447
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_gnum_t cs_mesh_n_g_ghost_cells(cs_mesh_t *mesh)
Definition cs_mesh.c:2947
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:3500
cs_mesh_t * cs_glob_mesh
cs_mesh_t * cs_mesh_destroy(cs_mesh_t *mesh)
Definition cs_mesh.c:2238
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_gnum_t cs_mesh_compact_gnum(cs_lnum_t n_elts, cs_gnum_t *elt_gnum)
Definition cs_mesh.c:2285
void cs_mesh_update_selectors(cs_mesh_t *mesh)
Definition cs_mesh.c:3196
cs_gnum_t * cs_mesh_get_cell_gnum(const cs_mesh_t *mesh, int blank_perio)
Definition cs_mesh.c:3552
void cs_mesh_sync_var_scal(cs_real_t *var)
Definition cs_mesh.c:3214
void cs_mesh_sync_var_vect(cs_real_t *var)
Definition cs_mesh.c:3303
void cs_mesh_init_selectors(void)
Definition cs_mesh.c:3152
void cs_mesh_sync_var_component(cs_real_t *var)
Definition cs_mesh.c:3256
void cs_mesh_print_info(const cs_mesh_t *mesh, const char *name)
Definition cs_mesh.c:3673
void synsca(cs_real_t var[])
Definition cs_mesh.c:1897
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
void cs_mesh_init_group_classes(cs_mesh_t *mesh)
Definition cs_mesh.c:3137
void cs_mesh_sync_var_vect_ni(cs_real_t *var1, cs_real_t *var2, cs_real_t *var3)
Definition cs_mesh.c:3277
void cs_mesh_sync_var_diag_ni(cs_real_t *var11, cs_real_t *var22, cs_real_t *var33)
Definition cs_mesh.c:3373
void synvin(cs_real_t var[])
Definition cs_mesh.c:1979
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:71
Definition cs_mesh_builder.h:57
Definition cs_mesh.h:63
int save_if_modified
Definition cs_mesh.h:185
int modified
Definition cs_mesh.h:184
int n_transforms
Definition cs_mesh.h:117
cs_lnum_t domain_num
Definition cs_mesh.h:68
cs_lnum_t * cell_cells_idx
Definition cs_mesh.h:148
cs_lnum_t * b_cells
Definition cs_mesh.h:144
fvm_selector_t * select_cells
Definition cs_mesh.h:175
cs_lnum_t * cell_cells_lst
Definition cs_mesh.h:151
int verbosity
Definition cs_mesh.h:183
cs_lnum_t * b_face_cells
Definition cs_mesh.h:88
int * i_face_family
Definition cs_mesh.h:168
cs_lnum_t n_i_faces
Definition cs_mesh.h:74
cs_numbering_t * vtx_numbering
Definition cs_mesh.h:137
cs_interface_set_t * vtx_interfaces
Definition cs_mesh.h:131
int * b_face_family
Definition cs_mesh.h:169
cs_gnum_t n_g_i_faces
Definition cs_mesh.h:99
char * group
Definition cs_mesh.h:162
cs_range_set_t * vtx_range_set
Definition cs_mesh.h:133
cs_numbering_t * b_face_numbering
Definition cs_mesh.h:139
cs_numbering_t * i_face_numbering
Definition cs_mesh.h:138
cs_lnum_t n_b_faces
Definition cs_mesh.h:75
cs_lnum_t * i_face_vtx_idx
Definition cs_mesh.h:90
cs_gnum_t n_g_i_c_faces
Definition cs_mesh.h:103
cs_lnum_t * gcell_vtx_lst
Definition cs_mesh.h:156
cs_lnum_t dim
Definition cs_mesh.h:67
cs_gnum_t n_g_vertices
Definition cs_mesh.h:101
cs_gnum_t n_g_b_faces
Definition cs_mesh.h:100
cs_lnum_t n_cells_with_ghosts
Definition cs_mesh.h:127
cs_lnum_t n_cells
Definition cs_mesh.h:73
int have_rotation_perio
Definition cs_mesh.h:119
int n_groups
Definition cs_mesh.h:160
fvm_periodicity_t * periodicity
Definition cs_mesh.h:121
int n_families
Definition cs_mesh.h:164
fvm_selector_t * select_i_faces
Definition cs_mesh.h:176
cs_lnum_t n_domains
Definition cs_mesh.h:69
cs_gnum_t n_g_cells
Definition cs_mesh.h:98
fvm_group_class_set_t * class_defs
Definition cs_mesh.h:171
int * cell_family
Definition cs_mesh.h:167
int n_init_perio
Definition cs_mesh.h:116
cs_lnum_t n_vertices
Definition cs_mesh.h:76
cs_halo_t * halo
Definition cs_mesh.h:132
cs_lnum_2_t * i_face_cells
Definition cs_mesh.h:87
cs_lnum_t * b_face_vtx_idx
Definition cs_mesh.h:93
cs_numbering_t * cell_numbering
Definition cs_mesh.h:136
cs_lnum_t * b_face_vtx_lst
Definition cs_mesh.h:94
cs_lnum_t b_face_vtx_connect_size
Definition cs_mesh.h:80
cs_gnum_t * global_vtx_num
Definition cs_mesh.h:112
cs_gnum_t * global_i_face_num
Definition cs_mesh.h:110
int * group_idx
Definition cs_mesh.h:161
cs_gnum_t * global_b_face_num
Definition cs_mesh.h:111
cs_lnum_t i_face_vtx_connect_size
Definition cs_mesh.h:78
cs_halo_type_t halo_type
Definition cs_mesh.h:125
int n_max_family_items
Definition cs_mesh.h:165
fvm_selector_t * select_b_faces
Definition cs_mesh.h:177
cs_lnum_t * i_face_vtx_lst
Definition cs_mesh.h:91
cs_lnum_t n_ghost_cells
Definition cs_mesh.h:129
cs_lnum_t * gcell_vtx_idx
Definition cs_mesh.h:155
cs_real_t * vtx_coord
Definition cs_mesh.h:85
cs_lnum_t n_b_cells
Definition cs_mesh.h:143
cs_gnum_t * global_cell_num
Definition cs_mesh.h:109
cs_gnum_t n_g_free_faces
Definition cs_mesh.h:181
int * family_item
Definition cs_mesh.h:166
Definition cs_numbering.h:83
Definition cs_range_set.h:57