Lines Matching refs:recvRowLen
398 PetscInt *sendRowLen, *recvRowLen; // lengths of rows of I need to send/recv per process
400 PetscCall(PetscMalloc5(sendRowCnt, &sendRowLen, recvRowCnt + 1, &recvRowLen, nranks, &sdisp, niranks + 1, &rdisp, nranks + niranks, &reqs));
403 recvRowLen[0] = 0; // since we will make it in CSR format later
404 recvRowLen++; // advance the pointer now
405 for (PetscInt i = 0; i < niranks; i++) PetscCallMPI(MPIU_Irecv(&recvRowLen[ioffset[i]], ioffset[i + 1] - ioffset[i], MPIU_INT, iranks[i], tag, comm, &reqs[nranks + i]));
413 for (PetscInt j = ioffset[i]; j < ioffset[i + 1]; j++) rdisp[i + 1] += recvRowLen[j];
415 recvRowLen--; // put it back into csr format
416 for (PetscInt i = 0; i < recvRowCnt; i++) recvRowLen[i + 1] += recvRowLen[i];
499 PetscInt len = recvRowLen[i + 1] - recvRowLen[i];
500 PetscCall(PetscArraycpy(jbuf2, &recvCol[recvRowLen[i]], len));
501 PetscCall(PetscArraycpy(pbuf2, &recvNzPerm[recvRowLen[i]], len));
562 nz += recvRowLen[i + 1] - recvRowLen[i];
592 PetscCall(PetscFree5(sendRowLen, recvRowLen, sdisp, rdisp, reqs));