Lines Matching refs:merge
4624 MatMergeSeqsToMPI *merge = *(MatMergeSeqsToMPI **)data; in MatMergeSeqsToMPIDestroy() local
4627 if (!merge) PetscFunctionReturn(PETSC_SUCCESS); in MatMergeSeqsToMPIDestroy()
4628 PetscCall(PetscFree(merge->id_r)); in MatMergeSeqsToMPIDestroy()
4629 PetscCall(PetscFree(merge->len_s)); in MatMergeSeqsToMPIDestroy()
4630 PetscCall(PetscFree(merge->len_r)); in MatMergeSeqsToMPIDestroy()
4631 PetscCall(PetscFree(merge->bi)); in MatMergeSeqsToMPIDestroy()
4632 PetscCall(PetscFree(merge->bj)); in MatMergeSeqsToMPIDestroy()
4633 PetscCall(PetscFree(merge->buf_ri[0])); in MatMergeSeqsToMPIDestroy()
4634 PetscCall(PetscFree(merge->buf_ri)); in MatMergeSeqsToMPIDestroy()
4635 PetscCall(PetscFree(merge->buf_rj[0])); in MatMergeSeqsToMPIDestroy()
4636 PetscCall(PetscFree(merge->buf_rj)); in MatMergeSeqsToMPIDestroy()
4637 PetscCall(PetscFree(merge->coi)); in MatMergeSeqsToMPIDestroy()
4638 PetscCall(PetscFree(merge->coj)); in MatMergeSeqsToMPIDestroy()
4639 PetscCall(PetscFree(merge->owners_co)); in MatMergeSeqsToMPIDestroy()
4640 PetscCall(PetscLayoutDestroy(&merge->rowmap)); in MatMergeSeqsToMPIDestroy()
4641 PetscCall(PetscFree(merge)); in MatMergeSeqsToMPIDestroy()
4662 MatMergeSeqsToMPI *merge; in MatCreateMPIAIJSumSeqAIJNumeric() local
4674 PetscCall(PetscContainerGetPointer(container, &merge)); in MatCreateMPIAIJSumSeqAIJNumeric()
4678 bi = merge->bi; in MatCreateMPIAIJSumSeqAIJNumeric()
4679 bj = merge->bj; in MatCreateMPIAIJSumSeqAIJNumeric()
4680 buf_ri = merge->buf_ri; in MatCreateMPIAIJSumSeqAIJNumeric()
4681 buf_rj = merge->buf_rj; in MatCreateMPIAIJSumSeqAIJNumeric()
4684 owners = merge->rowmap->range; in MatCreateMPIAIJSumSeqAIJNumeric()
4685 len_s = merge->len_s; in MatCreateMPIAIJSumSeqAIJNumeric()
4689 …PetscCall(PetscPostIrecvScalar(comm, taga, merge->nrecv, merge->id_r, merge->len_r, &abuf_r, &r_wa… in MatCreateMPIAIJSumSeqAIJNumeric()
4691 PetscCall(PetscMalloc1(merge->nsend + 1, &s_waits)); in MatCreateMPIAIJSumSeqAIJNumeric()
4699 if (merge->nrecv) PetscCallMPI(MPI_Waitall(merge->nrecv, r_waits, status)); in MatCreateMPIAIJSumSeqAIJNumeric()
4700 if (merge->nsend) PetscCallMPI(MPI_Waitall(merge->nsend, s_waits, status)); in MatCreateMPIAIJSumSeqAIJNumeric()
4708 PetscCall(PetscMalloc3(merge->nrecv, &buf_ri_k, merge->nrecv, &nextrow, merge->nrecv, &nextai)); in MatCreateMPIAIJSumSeqAIJNumeric()
4710 for (k = 0; k < merge->nrecv; k++) { in MatCreateMPIAIJSumSeqAIJNumeric()
4718 m = merge->rowmap->n; in MatCreateMPIAIJSumSeqAIJNumeric()
4737 for (k = 0; k < merge->nrecv; k++) { /* k-th received message */ in MatCreateMPIAIJSumSeqAIJNumeric()
4781 MatMergeSeqsToMPI *merge; in MatCreateMPIAIJSumSeqAIJSymbolic() local
4792 PetscCall(PetscNew(&merge)); in MatCreateMPIAIJSumSeqAIJSymbolic()
4796 PetscCall(PetscLayoutCreate(comm, &merge->rowmap)); in MatCreateMPIAIJSumSeqAIJSymbolic()
4797 PetscCall(PetscLayoutSetLocalSize(merge->rowmap, m)); in MatCreateMPIAIJSumSeqAIJSymbolic()
4798 PetscCall(PetscLayoutSetSize(merge->rowmap, M)); in MatCreateMPIAIJSumSeqAIJSymbolic()
4799 PetscCall(PetscLayoutSetBlockSize(merge->rowmap, 1)); in MatCreateMPIAIJSumSeqAIJSymbolic()
4800 PetscCall(PetscLayoutSetUp(merge->rowmap)); in MatCreateMPIAIJSumSeqAIJSymbolic()
4802 PetscCall(PetscMalloc1(size, &merge->len_s)); in MatCreateMPIAIJSumSeqAIJSymbolic()
4804 m = merge->rowmap->n; in MatCreateMPIAIJSumSeqAIJSymbolic()
4805 owners = merge->rowmap->range; in MatCreateMPIAIJSumSeqAIJSymbolic()
4808 len_s = merge->len_s; in MatCreateMPIAIJSumSeqAIJSymbolic()
4811 merge->nsend = 0; in MatCreateMPIAIJSumSeqAIJSymbolic()
4821 merge->nsend++; in MatCreateMPIAIJSumSeqAIJSymbolic()
4832 PetscCall(PetscGatherNumberOfMessages(comm, NULL, len_s, &merge->nrecv)); in MatCreateMPIAIJSumSeqAIJSymbolic()
4833 …PetscCall(PetscGatherMessageLengths2(comm, merge->nsend, merge->nrecv, len_s, len_si, &merge->id_r… in MatCreateMPIAIJSumSeqAIJSymbolic()
4837 …PetscCall(PetscPostIrecvInt(comm, tagj, merge->nrecv, merge->id_r, merge->len_r, &buf_rj, &rj_wait… in MatCreateMPIAIJSumSeqAIJSymbolic()
4840 PetscCall(PetscMalloc2(merge->nsend, &si_waits, merge->nsend, &sj_waits)); in MatCreateMPIAIJSumSeqAIJSymbolic()
4850 if (merge->nrecv) PetscCallMPI(MPI_Waitall(merge->nrecv, rj_waits, status)); in MatCreateMPIAIJSumSeqAIJSymbolic()
4851 if (merge->nsend) PetscCallMPI(MPI_Waitall(merge->nsend, sj_waits, status)); in MatCreateMPIAIJSumSeqAIJSymbolic()
4855 PetscCall(PetscPostIrecvInt(comm, tagi, merge->nrecv, merge->id_r, len_ri, &buf_ri, &ri_waits)); in MatCreateMPIAIJSumSeqAIJSymbolic()
4884 if (merge->nrecv) PetscCallMPI(MPI_Waitall(merge->nrecv, ri_waits, status)); in MatCreateMPIAIJSumSeqAIJSymbolic()
4885 if (merge->nsend) PetscCallMPI(MPI_Waitall(merge->nsend, si_waits, status)); in MatCreateMPIAIJSumSeqAIJSymbolic()
4887 PetscCall(PetscInfo(seqmat, "nsend: %d, nrecv: %d\n", merge->nsend, merge->nrecv)); in MatCreateMPIAIJSumSeqAIJSymbolic()
4888 …for (i = 0; i < merge->nrecv; i++) PetscCall(PetscInfo(seqmat, "recv len_ri=%d, len_rj=%d from [%d… in MatCreateMPIAIJSumSeqAIJSymbolic()
4914 PetscCall(PetscMalloc3(merge->nrecv, &buf_ri_k, merge->nrecv, &nextrow, merge->nrecv, &nextai)); in MatCreateMPIAIJSumSeqAIJSymbolic()
4916 for (k = 0; k < merge->nrecv; k++) { in MatCreateMPIAIJSumSeqAIJSymbolic()
4934 for (k = 0; k < merge->nrecv; k++) { /* k-th received message */ in MatCreateMPIAIJSumSeqAIJSymbolic()
4981 merge->bi = bi; in MatCreateMPIAIJSumSeqAIJSymbolic()
4982 merge->bj = bj; in MatCreateMPIAIJSumSeqAIJSymbolic()
4983 merge->buf_ri = buf_ri; in MatCreateMPIAIJSumSeqAIJSymbolic()
4984 merge->buf_rj = buf_rj; in MatCreateMPIAIJSumSeqAIJSymbolic()
4985 merge->coi = NULL; in MatCreateMPIAIJSumSeqAIJSymbolic()
4986 merge->coj = NULL; in MatCreateMPIAIJSumSeqAIJSymbolic()
4987 merge->owners_co = NULL; in MatCreateMPIAIJSumSeqAIJSymbolic()
4993 PetscCall(PetscContainerSetPointer(container, merge)); in MatCreateMPIAIJSumSeqAIJSymbolic()