1dd5b3ca6SJunchao Zhang #if !defined(_SFALLGATHERV_H) 2dd5b3ca6SJunchao Zhang #define _SFALLGATHERV_H 3dd5b3ca6SJunchao Zhang 4dd5b3ca6SJunchao Zhang #include <petsc/private/sfimpl.h> /*I "petscsf.h" I*/ 5dd5b3ca6SJunchao Zhang #include <../src/vec/is/sf/impls/basic/sfpack.h> 6dd5b3ca6SJunchao Zhang #include <../src/vec/is/sf/impls/basic/sfbasic.h> 7dd5b3ca6SJunchao Zhang 8dd5b3ca6SJunchao Zhang typedef struct { 9dd5b3ca6SJunchao Zhang SFBASICHEADER; 10dd5b3ca6SJunchao Zhang PetscMPIInt *displs,*recvcounts; 11dd5b3ca6SJunchao Zhang } PetscSF_Allgatherv; 12dd5b3ca6SJunchao Zhang 13cd620004SJunchao Zhang PETSC_INTERN PetscErrorCode PetscSFSetUp_Allgather(PetscSF); 14dd5b3ca6SJunchao Zhang PETSC_INTERN PetscErrorCode PetscSFSetUp_Allgatherv(PetscSF); 15dd5b3ca6SJunchao Zhang PETSC_INTERN PetscErrorCode PetscSFReset_Allgatherv(PetscSF); 16dd5b3ca6SJunchao Zhang PETSC_INTERN PetscErrorCode PetscSFDestroy_Allgatherv(PetscSF); 17eb02082bSJunchao Zhang PETSC_INTERN PetscErrorCode PetscSFFetchAndOpBegin_Allgatherv(PetscSF sf,MPI_Datatype,PetscMemType,void*,PetscMemType,const void*,void*,MPI_Op); 18*00816365SJunchao Zhang PETSC_INTERN PetscErrorCode PetscSFFetchAndOpEnd_Allgatherv(PetscSF,MPI_Datatype,void*,const void*,void*,MPI_Op); 19dd5b3ca6SJunchao Zhang PETSC_INTERN PetscErrorCode PetscSFGetRootRanks_Allgatherv(PetscSF,PetscInt*,const PetscMPIInt**,const PetscInt**,const PetscInt**,const PetscInt**); 20dd5b3ca6SJunchao Zhang PETSC_INTERN PetscErrorCode PetscSFGetLeafRanks_Allgatherv(PetscSF,PetscInt*,const PetscMPIInt**,const PetscInt**,const PetscInt**); 21dd5b3ca6SJunchao Zhang PETSC_INTERN PetscErrorCode PetscSFCreateLocalSF_Allgatherv(PetscSF,PetscSF*); 22dd5b3ca6SJunchao Zhang PETSC_INTERN PetscErrorCode PetscSFGetGraph_Allgatherv(PetscSF,PetscInt*,PetscInt*,const PetscInt**,const PetscSFNode**); 23dd5b3ca6SJunchao Zhang #endif 24