xref: /petsc/src/vec/is/sf/impls/basic/allgatherv/sfallgatherv.h (revision c4762a1b19cd2af06abeed90e8f9d34fb975dd94)
1 #if !defined(_SFALLGATHERV_H)
2 #define _SFALLGATHERV_H
3 
4 #include <petsc/private/sfimpl.h> /*I "petscsf.h" I*/
5 #include <../src/vec/is/sf/impls/basic/sfpack.h>
6 #include <../src/vec/is/sf/impls/basic/sfbasic.h>
7 
8 typedef struct {
9   SFBASICHEADER;
10   PetscMPIInt   *displs,*recvcounts;
11 } PetscSF_Allgatherv;
12 
13 PETSC_INTERN PetscErrorCode PetscSFSetUp_Allgatherv(PetscSF);
14 PETSC_INTERN PetscErrorCode PetscSFPackGet_Allgatherv(PetscSF,MPI_Datatype,PetscMemType,const void*,PetscMemType,const void*,PetscSFPack*);
15 PETSC_INTERN PetscErrorCode PetscSFReset_Allgatherv(PetscSF);
16 PETSC_INTERN PetscErrorCode PetscSFDestroy_Allgatherv(PetscSF);
17 PETSC_INTERN PetscErrorCode PetscSFBcastAndOpEnd_Allgatherv(PetscSF,MPI_Datatype,PetscMemType,const void*,PetscMemType,void*,MPI_Op);
18 PETSC_INTERN PetscErrorCode PetscSFReduceEnd_Allgatherv(PetscSF,MPI_Datatype,PetscMemType,const void*,PetscMemType,void*,MPI_Op);
19 PETSC_INTERN PetscErrorCode PetscSFFetchAndOpBegin_Allgatherv(PetscSF sf,MPI_Datatype,PetscMemType,void*,PetscMemType,const void*,void*,MPI_Op);
20 PETSC_INTERN PetscErrorCode PetscSFFetchAndOpEnd_Allgatherv(PetscSF,MPI_Datatype,PetscMemType,void*,PetscMemType,const void*,void*,MPI_Op);
21 PETSC_INTERN PetscErrorCode PetscSFGetRootRanks_Allgatherv(PetscSF,PetscInt*,const PetscMPIInt**,const PetscInt**,const PetscInt**,const PetscInt**);
22 PETSC_INTERN PetscErrorCode PetscSFGetLeafRanks_Allgatherv(PetscSF,PetscInt*,const PetscMPIInt**,const PetscInt**,const PetscInt**);
23 PETSC_INTERN PetscErrorCode PetscSFCreateLocalSF_Allgatherv(PetscSF,PetscSF*);
24 PETSC_INTERN PetscErrorCode PetscSFGetGraph_Allgatherv(PetscSF,PetscInt*,PetscInt*,const PetscInt**,const PetscSFNode**);
25 
26 PETSC_INTERN PetscErrorCode PetscSFBcastPrepareMPIBuffers_Allgatherv(PetscSF,PetscSFPack,MPI_Op,PetscMemType*,const void**,PetscMemType*,void**);
27 PETSC_INTERN PetscErrorCode PetscSFReducePrepareMPIBuffers_Allgatherv(PetscSF,PetscSFPack,MPI_Op,PetscMemType*,void**,PetscMemType*,const void**);
28 #endif
29