static const char help[] = "Test overlapped communication on a single star forest (PetscSF)\n\n"; #include #include #include int main(int argc, char **argv) { PetscSF sf; Vec A,Aout; Vec B,Bout; PetscScalar *bufA; PetscScalar *bufAout; PetscScalar *bufB; PetscScalar *bufBout; PetscMPIInt rank, size; PetscInt nroots, nleaves; PetscInt i; PetscInt *ilocal; PetscSFNode *iremote; PetscFunctionBeginUser; PetscCall(PetscInitialize(&argc,&argv,NULL,help)); PetscCallMPI(MPI_Comm_rank(PETSC_COMM_WORLD,&rank)); PetscCallMPI(MPI_Comm_size(PETSC_COMM_WORLD,&size)); PetscCheck(size == 2,PETSC_COMM_WORLD, PETSC_ERR_USER, "Only coded for two MPI processes"); PetscCall(PetscSFCreate(PETSC_COMM_WORLD,&sf)); PetscCall(PetscSFSetFromOptions(sf)); nleaves = 2; nroots = 1; PetscCall(PetscMalloc1(nleaves,&ilocal)); for (i = 0; i