Lines Matching refs:baij
8 Mat_MPISBAIJ *baij = (Mat_MPISBAIJ *)mat->data; in MatDestroy_MPISBAIJ() local
14 PetscCall(MatDestroy(&baij->A)); in MatDestroy_MPISBAIJ()
15 PetscCall(MatDestroy(&baij->B)); in MatDestroy_MPISBAIJ()
17 PetscCall(PetscHMapIDestroy(&baij->colmap)); in MatDestroy_MPISBAIJ()
19 PetscCall(PetscFree(baij->colmap)); in MatDestroy_MPISBAIJ()
21 PetscCall(PetscFree(baij->garray)); in MatDestroy_MPISBAIJ()
22 PetscCall(VecDestroy(&baij->lvec)); in MatDestroy_MPISBAIJ()
23 PetscCall(VecScatterDestroy(&baij->Mvctx)); in MatDestroy_MPISBAIJ()
24 PetscCall(VecDestroy(&baij->slvec0)); in MatDestroy_MPISBAIJ()
25 PetscCall(VecDestroy(&baij->slvec0b)); in MatDestroy_MPISBAIJ()
26 PetscCall(VecDestroy(&baij->slvec1)); in MatDestroy_MPISBAIJ()
27 PetscCall(VecDestroy(&baij->slvec1a)); in MatDestroy_MPISBAIJ()
28 PetscCall(VecDestroy(&baij->slvec1b)); in MatDestroy_MPISBAIJ()
29 PetscCall(VecScatterDestroy(&baij->sMvctx)); in MatDestroy_MPISBAIJ()
30 PetscCall(PetscFree2(baij->rowvalues, baij->rowindices)); in MatDestroy_MPISBAIJ()
31 PetscCall(PetscFree(baij->barray)); in MatDestroy_MPISBAIJ()
32 PetscCall(PetscFree(baij->hd)); in MatDestroy_MPISBAIJ()
33 PetscCall(VecDestroy(&baij->diag)); in MatDestroy_MPISBAIJ()
34 PetscCall(VecDestroy(&baij->bb1)); in MatDestroy_MPISBAIJ()
35 PetscCall(VecDestroy(&baij->xx1)); in MatDestroy_MPISBAIJ()
37 PetscCall(PetscFree(baij->setvaluescopy)); in MatDestroy_MPISBAIJ()
39 PetscCall(PetscFree(baij->in_loc)); in MatDestroy_MPISBAIJ()
40 PetscCall(PetscFree(baij->v_loc)); in MatDestroy_MPISBAIJ()
41 PetscCall(PetscFree(baij->rangebs)); in MatDestroy_MPISBAIJ()
286 Mat_MPISBAIJ *baij = (Mat_MPISBAIJ *)mat->data; in MatSetValues_MPISBAIJ() local
288 PetscBool roworiented = baij->roworiented; in MatSetValues_MPISBAIJ()
295 Mat A = baij->A; in MatSetValues_MPISBAIJ()
300 Mat B = baij->B; in MatSetValues_MPISBAIJ()
314 if (!baij->donotstash) { in MatSetValues_MPISBAIJ()
315 if (n > baij->n_loc) { in MatSetValues_MPISBAIJ()
316 PetscCall(PetscFree(baij->in_loc)); in MatSetValues_MPISBAIJ()
317 PetscCall(PetscFree(baij->v_loc)); in MatSetValues_MPISBAIJ()
318 PetscCall(PetscMalloc1(n, &baij->in_loc)); in MatSetValues_MPISBAIJ()
319 PetscCall(PetscMalloc1(n, &baij->v_loc)); in MatSetValues_MPISBAIJ()
321 baij->n_loc = n; in MatSetValues_MPISBAIJ()
323 in_loc = baij->in_loc; in MatSetValues_MPISBAIJ()
324 v_loc = baij->v_loc; in MatSetValues_MPISBAIJ()
352 if (!baij->colmap) PetscCall(MatCreateColmap_MPIBAIJ_Private(mat)); in MatSetValues_MPISBAIJ()
354 PetscCall(PetscHMapIGetWithDefault(baij->colmap, in[j] / bs + 1, 0, &col)); in MatSetValues_MPISBAIJ()
357 col = baij->colmap[in[j] / bs] - 1; in MatSetValues_MPISBAIJ()
359 if (col < 0 && !((Mat_SeqSBAIJ *)baij->A->data)->nonew) { in MatSetValues_MPISBAIJ()
363 B = baij->B; in MatSetValues_MPISBAIJ()
380 if (!baij->donotstash) { in MatSetValues_MPISBAIJ()
566 Mat_MPISBAIJ *baij = (Mat_MPISBAIJ *)mat->data; in MatSetValuesBlocked_MPISBAIJ() local
568 MatScalar *barray = baij->barray; in MatSetValuesBlocked_MPISBAIJ()
569 …PetscBool roworiented = baij->roworiented, ignore_ltriangular = ((Mat_SeqSBAIJ *)baij->A->d… in MatSetValuesBlocked_MPISBAIJ()
570 PetscInt i, j, ii, jj, row, col, rstart = baij->rstartbs; in MatSetValuesBlocked_MPISBAIJ()
571 PetscInt rend = baij->rendbs, cstart = baij->cstartbs, stepval; in MatSetValuesBlocked_MPISBAIJ()
572 PetscInt cend = baij->cendbs, bs = mat->rmap->bs, bs2 = baij->bs2; in MatSetValuesBlocked_MPISBAIJ()
577 baij->barray = barray; in MatSetValuesBlocked_MPISBAIJ()
587 …k(im[i] < baij->Mbs, PETSC_COMM_SELF, PETSC_ERR_ARG_OUTOFRANGE, "Block indexed row too large %" Pe… in MatSetValuesBlocked_MPISBAIJ()
614 … PetscCall(MatSetValuesBlocked_SeqSBAIJ_Inlined(baij->A, row, col, barray, addv, im[i], in[j])); in MatSetValuesBlocked_MPISBAIJ()
618 …in[j] < baij->Nbs, PETSC_COMM_SELF, PETSC_ERR_ARG_OUTOFRANGE, "Block indexed column too large %" P… in MatSetValuesBlocked_MPISBAIJ()
620 if (!baij->colmap) PetscCall(MatCreateColmap_MPIBAIJ_Private(mat)); in MatSetValuesBlocked_MPISBAIJ()
623 PetscCall(PetscHMapIGetWithDefault(baij->colmap, in[j] + 1, 0, &col)); in MatSetValuesBlocked_MPISBAIJ()
626 col = baij->colmap[in[j]] < 1 ? -1 : (baij->colmap[in[j]] - 1) / bs; in MatSetValuesBlocked_MPISBAIJ()
628 if (col < 0 && !((Mat_SeqBAIJ *)baij->A->data)->nonew) { in MatSetValuesBlocked_MPISBAIJ()
633 … PetscCall(MatSetValuesBlocked_SeqBAIJ_Inlined(baij->B, row, col, barray, addv, im[i], in[j])); in MatSetValuesBlocked_MPISBAIJ()
638 if (!baij->donotstash) { in MatSetValuesBlocked_MPISBAIJ()
652 Mat_MPISBAIJ *baij = (Mat_MPISBAIJ *)mat->data; in MatGetValues_MPISBAIJ() local
667 PetscCall(MatGetValues_SeqSBAIJ(baij->A, 1, &row, 1, &col, v + i * n + j)); in MatGetValues_MPISBAIJ()
669 if (!baij->colmap) PetscCall(MatCreateColmap_MPIBAIJ_Private(mat)); in MatGetValues_MPISBAIJ()
671 PetscCall(PetscHMapIGetWithDefault(baij->colmap, idxn[j] / bs + 1, 0, &data)); in MatGetValues_MPISBAIJ()
674 data = baij->colmap[idxn[j] / bs] - 1; in MatGetValues_MPISBAIJ()
676 if (data < 0 || baij->garray[data / bs] != idxn[j] / bs) *(v + i * n + j) = 0.0; in MatGetValues_MPISBAIJ()
679 PetscCall(MatGetValues_SeqBAIJ(baij->B, 1, &row, 1, &col, v + i * n + j)); in MatGetValues_MPISBAIJ()
689 Mat_MPISBAIJ *baij = (Mat_MPISBAIJ *)mat->data; in MatNorm_MPISBAIJ() local
693 if (baij->size == 1) { in MatNorm_MPISBAIJ()
694 PetscCall(MatNorm(baij->A, type, norm)); in MatNorm_MPISBAIJ()
698 PetscCall(MatNorm(baij->A, type, lnorm2)); in MatNorm_MPISBAIJ()
701 PetscCall(MatNorm(baij->B, type, lnorm2)); in MatNorm_MPISBAIJ()
708 Mat_SeqSBAIJ *amat = (Mat_SeqSBAIJ *)baij->A->data; in MatNorm_MPISBAIJ()
709 Mat_SeqBAIJ *bmat = (Mat_SeqBAIJ *)baij->B->data; in MatNorm_MPISBAIJ()
711 PetscInt *jj, *garray = baij->garray, rstart = baij->rstartbs, nz; in MatNorm_MPISBAIJ()
712 PetscInt brow, bcol, col, bs = baij->A->rmap->bs, row, grow, gcol, mbs = amat->mbs; in MatNorm_MPISBAIJ()
770 Mat_MPISBAIJ *baij = (Mat_MPISBAIJ *)mat->data; in MatAssemblyBegin_MPISBAIJ() local
774 if (baij->donotstash || mat->nooffprocentries) PetscFunctionReturn(PETSC_SUCCESS); in MatAssemblyBegin_MPISBAIJ()
777 PetscCall(MatStashScatterBegin_Private(mat, &mat->bstash, baij->rangebs)); in MatAssemblyBegin_MPISBAIJ()
787 Mat_MPISBAIJ *baij = (Mat_MPISBAIJ *)mat->data; in MatAssemblyEnd_MPISBAIJ() local
788 Mat_SeqSBAIJ *a = (Mat_SeqSBAIJ *)baij->A->data; in MatAssemblyEnd_MPISBAIJ()
789 PetscInt i, j, rstart, ncols, flg, bs2 = baij->bs2; in MatAssemblyEnd_MPISBAIJ()
798 if (!baij->donotstash && !mat->nooffprocentries) { in MatAssemblyEnd_MPISBAIJ()
819 r1 = baij->roworiented; in MatAssemblyEnd_MPISBAIJ()
821 r3 = ((Mat_SeqBAIJ *)baij->B->data)->roworiented; in MatAssemblyEnd_MPISBAIJ()
823 baij->roworiented = PETSC_FALSE; in MatAssemblyEnd_MPISBAIJ()
826 ((Mat_SeqBAIJ *)baij->B->data)->roworiented = PETSC_FALSE; /* b->roworiented */ in MatAssemblyEnd_MPISBAIJ()
844 baij->roworiented = r1; in MatAssemblyEnd_MPISBAIJ()
847 ((Mat_SeqBAIJ *)baij->B->data)->roworiented = r3; /* b->roworiented */ in MatAssemblyEnd_MPISBAIJ()
850 PetscCall(MatAssemblyBegin(baij->A, mode)); in MatAssemblyEnd_MPISBAIJ()
851 PetscCall(MatAssemblyEnd(baij->A, mode)); in MatAssemblyEnd_MPISBAIJ()
859 if (!((Mat_SeqBAIJ *)baij->B->data)->nonew) { in MatAssemblyEnd_MPISBAIJ()
865 PetscCall(MatAssemblyBegin(baij->B, mode)); in MatAssemblyEnd_MPISBAIJ()
866 PetscCall(MatAssemblyEnd(baij->B, mode)); in MatAssemblyEnd_MPISBAIJ()
868 PetscCall(PetscFree2(baij->rowvalues, baij->rowindices)); in MatAssemblyEnd_MPISBAIJ()
870 baij->rowvalues = NULL; in MatAssemblyEnd_MPISBAIJ()
873 …if ((!mat->was_assembled && mode == MAT_FINAL_ASSEMBLY) || !((Mat_SeqBAIJ *)baij->A->data)->nonew)… in MatAssemblyEnd_MPISBAIJ()
874 PetscObjectState state = baij->A->nonzerostate + baij->B->nonzerostate; in MatAssemblyEnd_MPISBAIJ()
884 Mat_MPISBAIJ *baij = (Mat_MPISBAIJ *)mat->data; in MatView_MPISBAIJ_ASCIIorDraworSocket() local
886 PetscMPIInt rank = baij->rank; in MatView_MPISBAIJ_ASCIIorDraworSocket()
903 PetscCall(MatGetInfo(baij->A, MAT_LOCAL, &info)); in MatView_MPISBAIJ_ASCIIorDraworSocket()
905 PetscCall(MatGetInfo(baij->B, MAT_LOCAL, &info)); in MatView_MPISBAIJ_ASCIIorDraworSocket()
910 PetscCall(VecScatterView(baij->Mvctx, viewer)); in MatView_MPISBAIJ_ASCIIorDraworSocket()
928 … PetscInt M = mat->rmap->N, N = mat->cmap->N, *ai, *aj, col, i, j, k, *rvals, mbs = baij->mbs; in MatView_MPISBAIJ_ASCIIorDraworSocket()
944 Aloc = (Mat_SeqSBAIJ *)baij->A->data; in MatView_MPISBAIJ_ASCIIorDraworSocket()
951 rvals[0] = bs * (baij->rstartbs + i); in MatView_MPISBAIJ_ASCIIorDraworSocket()
954 col = (baij->cstartbs + aj[j]) * bs; in MatView_MPISBAIJ_ASCIIorDraworSocket()
963 Bloc = (Mat_SeqBAIJ *)baij->B->data; in MatView_MPISBAIJ_ASCIIorDraworSocket()
968 rvals[0] = bs * (baij->rstartbs + i); in MatView_MPISBAIJ_ASCIIorDraworSocket()
971 col = baij->garray[aj[j]] * bs; in MatView_MPISBAIJ_ASCIIorDraworSocket()
1258 Mat_MPISBAIJ *baij = (Mat_MPISBAIJ *)mat->data; in MatRestoreRow_MPISBAIJ() local
1261 …PetscCheck(baij->getrowactive, PETSC_COMM_SELF, PETSC_ERR_ARG_WRONGSTATE, "MatGetRow() must be cal… in MatRestoreRow_MPISBAIJ()
1262 baij->getrowactive = PETSC_FALSE; in MatRestoreRow_MPISBAIJ()
1573 Mat_MPISBAIJ *baij = (Mat_MPISBAIJ *)mat->data; in MatDiagonalScale_MPISBAIJ() local
1574 Mat a = baij->A, b = baij->B; in MatDiagonalScale_MPISBAIJ()
1586 PetscCall(VecScatterBegin(baij->Mvctx, rr, baij->lvec, INSERT_VALUES, SCATTER_FORWARD)); in MatDiagonalScale_MPISBAIJ()
1595 PetscCall(VecScatterEnd(baij->Mvctx, rr, baij->lvec, INSERT_VALUES, SCATTER_FORWARD)); in MatDiagonalScale_MPISBAIJ()
1596 PetscUseTypeMethod(b, diagonalscale, NULL, baij->lvec); in MatDiagonalScale_MPISBAIJ()