8.3
general documentation
cs_block_to_part.h
Go to the documentation of this file.
1#ifndef __CS_BLOCK_TO_PART_H__
2#define __CS_BLOCK_TO_PART_H__
3
4/*============================================================================
5 * Convert between block distribution and general domain partition.
6 *============================================================================*/
7
8/*
9 This file is part of code_saturne, a general-purpose CFD tool.
10
11 Copyright (C) 1998-2024 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#if defined(HAVE_MPI)
31#include <mpi.h>
32#endif
33
34/*----------------------------------------------------------------------------
35 * Local headers
36 *----------------------------------------------------------------------------*/
37
38#include "cs_defs.h"
39#include "cs_block_dist.h"
40
41/*----------------------------------------------------------------------------*/
42
44
45/*=============================================================================
46 * Macro definitions
47 *============================================================================*/
48
49/*============================================================================
50 * Type definitions
51 *============================================================================*/
52
53/*=============================================================================
54 * Public function prototypes
55 *============================================================================*/
56
57#if defined(HAVE_MPI)
58
59/*----------------------------------------------------------------------------*/
98/*----------------------------------------------------------------------------*/
99
103 cs_block_dist_info_t adjacent_block,
104 int stride,
105 const cs_gnum_t adjacency[],
106 const int adjacent_ent_rank[],
107 const int default_rank[],
108 cs_lnum_t *n_part_elts,
109 cs_gnum_t **part_gnum);
110
111#endif /* defined(HAVE_MPI) */
112
113/*----------------------------------------------------------------------------*/
138/*----------------------------------------------------------------------------*/
139
140void
142 cs_lnum_t base,
143 cs_lnum_t global_list_size,
144 bool global_list_is_sorted,
145 const cs_gnum_t global_list[],
146 const cs_gnum_t global_number[],
147 cs_lnum_t local_number[]);
148
149/*----------------------------------------------------------------------------*/
150
152
153#endif /* __CS_BLOCK_TO_PART_H__ */
struct _cs_all_to_all_t cs_all_to_all_t
Definition: cs_all_to_all.h:79
cs_all_to_all_t * cs_block_to_part_create_by_adj_s(MPI_Comm comm, cs_block_dist_info_t block, cs_block_dist_info_t adjacent_block, int stride, const cs_gnum_t adjacency[], const int adjacent_ent_rank[], const int default_rank[], cs_lnum_t *n_part_elts, cs_gnum_t **part_gnum)
Initialize block to partition distributor with block data using strided adjacency array.
Definition: cs_block_to_part.cpp:124
void cs_block_to_part_global_to_local(cs_lnum_t n_ents, cs_lnum_t base, cs_lnum_t global_list_size, bool global_list_is_sorted, const cs_gnum_t global_list[], const cs_gnum_t global_number[], cs_lnum_t local_number[])
Determine local references from references to global numbers.
Definition: cs_block_to_part.cpp:351
#define BEGIN_C_DECLS
Definition: cs_defs.h:542
uint64_t cs_gnum_t
global mesh entity number
Definition: cs_defs.h:325
#define END_C_DECLS
Definition: cs_defs.h:543
int cs_lnum_t
local mesh entity id
Definition: cs_defs.h:335
Definition: cs_block_dist.h:50