1*dd5b3ca6SJunchao Zhang #if !defined(_SFGATHERV_H) 2*dd5b3ca6SJunchao Zhang #define _SFGATHERV_H 3*dd5b3ca6SJunchao Zhang 4*dd5b3ca6SJunchao Zhang #include <../src/vec/is/sf/impls/basic/allgatherv/sfallgatherv.h> 5*dd5b3ca6SJunchao Zhang 6*dd5b3ca6SJunchao Zhang typedef PetscSFPack_Allgatherv PetscSFPack_Gatherv; 7*dd5b3ca6SJunchao Zhang #define PetscSFPackGet_Gatherv PetscSFPackGet_Allgatherv 8*dd5b3ca6SJunchao Zhang 9*dd5b3ca6SJunchao Zhang /* Reuse the type. The difference is some fields (displs, recvcounts) are only significant 10*dd5b3ca6SJunchao Zhang on rank 0 in Gatherv. On other ranks they are harmless NULL. 11*dd5b3ca6SJunchao Zhang */ 12*dd5b3ca6SJunchao Zhang typedef PetscSF_Allgatherv PetscSF_Gatherv; 13*dd5b3ca6SJunchao Zhang 14*dd5b3ca6SJunchao Zhang PETSC_INTERN PetscErrorCode PetscSFFetchAndOpBegin_Gatherv(PetscSF,MPI_Datatype,void*,const void*,void*,MPI_Op); 15*dd5b3ca6SJunchao Zhang #endif 16