Lines Matching refs:vtxdist
99 static PetscErrorCode PTScotch_PartGraph_MPI(SCOTCH_Num strategy, double imbalance, SCOTCH_Num vtxdist[], SCOTCH_Num xadj[], SCOTCH_Num adjncy[], SCOTCH_Num vtxwgt[], SCOTCH_Num adjwgt[], SCOTCH_Num nparts, SCOTCH_Num tpart[], SCOTCH_Num part[], MPI_Comm comm)
127 vertlocnbr = vtxdist[proclocnum + 1] - vtxdist[proclocnum];
207 PetscInt *vtxdist; /* Distribution of vertices across processes */
221 PetscCall(PetscMalloc2(size + 1, &vtxdist, PetscMax(nvtxs, 1), &assignment));
223 vtxdist[0] = 0;
224 PetscCallMPI(MPI_Allgather(&nvtxs, 1, MPIU_INT, &vtxdist[1], 1, MPIU_INT, comm));
226 hasempty = (PetscBool)(hasempty || !vtxdist[p - 1] || !vtxdist[p]);
227 vtxdist[p] += vtxdist[p - 1];
230 if (vtxdist[size] == 0) {
231 PetscCall(PetscFree2(vtxdist, assignment));
264 for (p = 0; !vtxdist[p + 1] && p < size; ++p);
265 if (vtxdist[p + 1] == vtxdist[size]) {
275 if (vtxdist[p + 1] != vtxdist[p]) {
276 vtxdist[cnt + 1] = vtxdist[p + 1];
281 if (nvtxs) PetscCall(PTScotch_PartGraph_MPI(strat, imbal, vtxdist, xadj, adjncy, vwgt, adjwgt, nparts, tpwgts, assignment, pcomm));
300 PetscCall(PetscFree2(vtxdist, assignment));