Lines Matching refs:subMat
3 PetscErrorCode MatGetMultiProcBlock_MPIBAIJ(Mat mat, MPI_Comm subComm, MatReuse scall, Mat *subMat) in MatGetMultiProcBlock_MPIBAIJ() argument
19 PetscCall(MatCreate(subComm, subMat)); in MatGetMultiProcBlock_MPIBAIJ()
20 PetscCall(MatSetType(*subMat, MATMPIBAIJ)); in MatGetMultiProcBlock_MPIBAIJ()
21 PetscCall(MatSetSizes(*subMat, mat->rmap->n, mat->cmap->n, PETSC_DECIDE, PETSC_DECIDE)); in MatGetMultiProcBlock_MPIBAIJ()
22 PetscCall(MatSetBlockSizes(*subMat, mat->rmap->bs, mat->cmap->bs)); in MatGetMultiProcBlock_MPIBAIJ()
25 PetscCall(PetscLayoutSetBlockSize((*subMat)->rmap, mat->rmap->bs)); in MatGetMultiProcBlock_MPIBAIJ()
26 PetscCall(PetscLayoutSetBlockSize((*subMat)->cmap, mat->cmap->bs)); in MatGetMultiProcBlock_MPIBAIJ()
27 PetscCall(PetscLayoutSetUp((*subMat)->rmap)); in MatGetMultiProcBlock_MPIBAIJ()
28 PetscCall(PetscLayoutSetUp((*subMat)->cmap)); in MatGetMultiProcBlock_MPIBAIJ()
46 garrayCMap[i] = (((*subMat)->cmap->range[subRank] - mat->cmap->range[rank]) / bs + col + 1); in MatGetMultiProcBlock_MPIBAIJ()
60 PetscCall(MatMPIBAIJSetPreallocation(*(subMat), bs, 0, NULL, 0, nnz)); in MatGetMultiProcBlock_MPIBAIJ()
63 PetscCall(MatDestroy(&((Mat_MPIBAIJ *)((*subMat)->data))->A)); in MatGetMultiProcBlock_MPIBAIJ()
65 ((Mat_MPIBAIJ *)((*subMat)->data))->A = aij->A; in MatGetMultiProcBlock_MPIBAIJ()
68 } else if (((Mat_MPIBAIJ *)(*subMat)->data)->A != aij->A) { in MatGetMultiProcBlock_MPIBAIJ()
69 PetscObject obj = (PetscObject)((Mat_MPIBAIJ *)((*subMat)->data))->A; in MatGetMultiProcBlock_MPIBAIJ()
73 ((Mat_MPIBAIJ *)((*subMat)->data))->A = aij->A; in MatGetMultiProcBlock_MPIBAIJ()
82 newRow = (*subMat)->rmap->range[subCommRank] + i * bs; in MatGetMultiProcBlock_MPIBAIJ()
97 PetscCall(MatSetValues(*subMat, bs, newbRow, bs, newbCol, vals, INSERT_VALUES)); in MatGetMultiProcBlock_MPIBAIJ()
101 PetscCall(MatAssemblyBegin(*subMat, MAT_FINAL_ASSEMBLY)); in MatGetMultiProcBlock_MPIBAIJ()
102 PetscCall(MatAssemblyEnd(*subMat, MAT_FINAL_ASSEMBLY)); in MatGetMultiProcBlock_MPIBAIJ()