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