UPstreamAllToAll.C
Go to the documentation of this file.
1 /*---------------------------------------------------------------------------*\
2  ========= |
3  \\ / F ield | OpenFOAM: The Open Source CFD Toolbox
4  \\ / O peration |
5  \\ / A nd | www.openfoam.com
6  \\/ M anipulation |
7 -------------------------------------------------------------------------------
8  Copyright (C) 2022 OpenCFD Ltd.
9 -------------------------------------------------------------------------------
10 License
11  This file is part of OpenFOAM.
12 
13  OpenFOAM is free software: you can redistribute it and/or modify it
14  under the terms of the GNU General Public License as published by
15  the Free Software Foundation, either version 3 of the License, or
16  (at your option) any later version.
17 
18  OpenFOAM is distributed in the hope that it will be useful, but WITHOUT
19  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
20  FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License
21  for more details.
22 
23  You should have received a copy of the GNU General Public License
24  along with OpenFOAM. If not, see <http://www.gnu.org/licenses/>.
25 
26 \*---------------------------------------------------------------------------*/
27 
28 #include "Pstream.H"
29 #include "UPstreamWrapping.H"
30 
31 #include <mpi.h>
32 #include <cinttypes>
33 
34 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
35 
36 #undef Pstream_CommonRoutines
37 #define Pstream_CommonRoutines(Native, TaggedType) \
38 void Foam::UPstream::allToAll \
39 ( \
40  const UList<Native>& sendData, \
41  UList<Native>& recvData, \
42  const label comm \
43 ) \
44 { \
45  PstreamDetail::allToAll \
46  ( \
47  sendData, recvData, TaggedType, comm \
48  ); \
49 } \
50 
51 
52 Pstream_CommonRoutines(int32_t, MPI_INT32_T);
53 Pstream_CommonRoutines(int64_t, MPI_INT64_T);
54 
55 #undef Pstream_CommonRoutines
56 
57 
58 // * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * * //
59 
60 #undef Pstream_CommonRoutines
61 #define Pstream_CommonRoutines(Native, TaggedType) \
62 void Foam::UPstream::allToAll \
63 ( \
64  const Native* sendData, \
65  const UList<int>& sendCounts, \
66  const UList<int>& sendOffsets, \
67  Native* recvData, \
68  const UList<int>& recvCounts, \
69  const UList<int>& recvOffsets, \
70  const label comm \
71 ) \
72 { \
73  PstreamDetail::allToAllv \
74  ( \
75  sendData, sendCounts, sendOffsets, \
76  recvData, recvCounts, recvOffsets, \
77  TaggedType, comm \
78  ); \
79 }
80 
81 // Unused: Pstream_CommonRoutines(char, MPI_BYTE);
82 
83 #undef Pstream_CommonRoutines
84 
85 // ************************************************************************* //
#define Pstream_CommonRoutines(Native, TaggedType)