Actual source code: sfallgatherv.h

  1: #ifndef _SFALLGATHERV_H
  2: #define _SFALLGATHERV_H

  4: #include <petsc/private/sfimpl.h>
  5: #include <../src/vec/is/sf/impls/basic/sfpack.h>
  6: #include <../src/vec/is/sf/impls/basic/sfbasic.h>

  8: typedef struct {
  9:   SFBASICHEADER;
 10:   PetscMPIInt *displs, *recvcounts;
 11:   /* special treatment for one-to-all patterns detected at setup time */
 12:   PetscBool   bcast_pattern; /* bcast here means one-to-all; we might do MPI_Reduce with this pattern */
 13:   PetscMPIInt bcast_root;    /* the root rank in MPI_Bcast */
 14: } PetscSF_Allgatherv;

 16: PETSC_INTERN PetscErrorCode PetscSFSetUp_Allgather(PetscSF);
 17: PETSC_INTERN PetscErrorCode PetscSFSetUp_Allgatherv(PetscSF);
 18: PETSC_INTERN PetscErrorCode PetscSFReset_Allgatherv(PetscSF);
 19: PETSC_INTERN PetscErrorCode PetscSFDestroy_Allgatherv(PetscSF);
 20: PETSC_INTERN PetscErrorCode PetscSFFetchAndOpBegin_Allgatherv(PetscSF sf, MPI_Datatype, PetscMemType, void *, PetscMemType, const void *, void *, MPI_Op);
 21: PETSC_INTERN PetscErrorCode PetscSFFetchAndOpEnd_Allgatherv(PetscSF, MPI_Datatype, void *, const void *, void *, MPI_Op);
 22: PETSC_INTERN PetscErrorCode PetscSFGetRootRanks_Allgatherv(PetscSF, PetscInt *, const PetscMPIInt **, const PetscInt **, const PetscInt **, const PetscInt **);
 23: PETSC_INTERN PetscErrorCode PetscSFGetLeafRanks_Allgatherv(PetscSF, PetscInt *, const PetscMPIInt **, const PetscInt **, const PetscInt **);
 24: PETSC_INTERN PetscErrorCode PetscSFCreateLocalSF_Allgatherv(PetscSF, PetscSF *);
 25: PETSC_INTERN PetscErrorCode PetscSFGetGraph_Allgatherv(PetscSF, PetscInt *, PetscInt *, const PetscInt **, const PetscSFNode **);
 26: PETSC_INTERN PetscErrorCode PetscSFReduceEnd_Allgatherv(PetscSF, MPI_Datatype, const void *, void *, MPI_Op);
 27: #endif