Lines Matching refs:subMat

3 PetscErrorCode MatGetMultiProcBlock_MPIAIJ(Mat mat, MPI_Comm subComm, MatReuse scall, Mat *subMat)  in MatGetMultiProcBlock_MPIAIJ()  argument
18 PetscCall(MatCreate(subComm, subMat)); in MatGetMultiProcBlock_MPIAIJ()
19 PetscCall(MatSetType(*subMat, MATMPIAIJ)); in MatGetMultiProcBlock_MPIAIJ()
20 PetscCall(MatSetSizes(*subMat, mat->rmap->n, mat->cmap->n, PETSC_DECIDE, PETSC_DECIDE)); in MatGetMultiProcBlock_MPIAIJ()
21 PetscCall(MatSetBlockSizesFromMats(*subMat, mat, mat)); in MatGetMultiProcBlock_MPIAIJ()
24 PetscCall(PetscLayoutSetUp((*subMat)->rmap)); in MatGetMultiProcBlock_MPIAIJ()
25 PetscCall(PetscLayoutSetUp((*subMat)->cmap)); in MatGetMultiProcBlock_MPIAIJ()
41 garrayCMap[i] = (*subMat)->cmap->range[subRank] + col - mat->cmap->range[rank] + 1; in MatGetMultiProcBlock_MPIAIJ()
55 PetscCall(MatMPIAIJSetPreallocation(*(subMat), 0, NULL, 0, nnz)); in MatGetMultiProcBlock_MPIAIJ()
58 PetscCall(MatDestroy(&((Mat_MPIAIJ *)((*subMat)->data))->A)); in MatGetMultiProcBlock_MPIAIJ()
59 ((Mat_MPIAIJ *)((*subMat)->data))->A = aij->A; in MatGetMultiProcBlock_MPIAIJ()
61 } else if (((Mat_MPIAIJ *)(*subMat)->data)->A != aij->A) { in MatGetMultiProcBlock_MPIAIJ()
62 PetscObject obj = (PetscObject)((Mat_MPIAIJ *)((*subMat)->data))->A; in MatGetMultiProcBlock_MPIAIJ()
64 ((Mat_MPIAIJ *)((*subMat)->data))->A = aij->A; in MatGetMultiProcBlock_MPIAIJ()
69 if ((*subMat)->assembled) { in MatGetMultiProcBlock_MPIAIJ()
70 (*subMat)->was_assembled = PETSC_TRUE; in MatGetMultiProcBlock_MPIAIJ()
71 (*subMat)->assembled = PETSC_FALSE; in MatGetMultiProcBlock_MPIAIJ()
74 newRow = (*subMat)->rmap->range[subCommRank] + i; in MatGetMultiProcBlock_MPIAIJ()
79 PetscCall(MatSetValues_MPIAIJ(*subMat, 1, &newRow, 1, &newCol, aijB->a + j, INSERT_VALUES)); in MatGetMultiProcBlock_MPIAIJ()
83 PetscCall(MatAssemblyBegin(*subMat, MAT_FINAL_ASSEMBLY)); in MatGetMultiProcBlock_MPIAIJ()
84 PetscCall(MatAssemblyEnd(*subMat, MAT_FINAL_ASSEMBLY)); in MatGetMultiProcBlock_MPIAIJ()