Lines Matching refs:sbaij

4 #include <../src/mat/impls/sbaij/mpi/mpisbaij.h>
8 Mat_MPISBAIJ *sbaij = (Mat_MPISBAIJ *)mat->data;
9 Mat_SeqBAIJ *B = (Mat_SeqBAIJ *)sbaij->B->data;
11 PetscInt bs = mat->rmap->bs, *stmp, mbs = sbaij->mbs, vec_size, nt;
14 PetscMPIInt rank = sbaij->rank;
15 PetscInt *owners = sbaij->rangebs, *ec_owner, k;
23 PetscInt Nbs = sbaij->Nbs;
68 /* mark those columns that are in sbaij->B */
82 for (j = 0; j < sbaij->size; j++) {
102 PetscCall(PetscLayoutDestroy(&sbaij->B->cmap));
103 PetscCall(PetscLayoutCreateFromSizes(PetscObjectComm((PetscObject)sbaij->B), ec * mat->rmap->bs, ec * mat->rmap->bs, mat->rmap->bs, &sbaij->B->cmap));
105 PetscCall(VecScatterDestroy(&sbaij->sMvctx));
107 PetscCall(VecCreateSeq(PETSC_COMM_SELF, ec * bs, &sbaij->lvec));
118 PetscCall(VecScatterCreate(gvec, from, sbaij->lvec, to, &sbaij->Mvctx));
121 sbaij->garray = garray;
127 PetscCall(VecCreateMPI(PetscObjectComm((PetscObject)mat), (mbs + ec) * bs, PETSC_DETERMINE, &sbaij->slvec0));
128 PetscCall(VecDuplicate(sbaij->slvec0, &sbaij->slvec1));
129 PetscCall(VecGetSize(sbaij->slvec0, &vec_size));
131 PetscCall(VecGetOwnershipRanges(sbaij->slvec0, &sowners));
151 PetscCall(VecScatterCreate(sbaij->slvec0, from, sbaij->slvec1, to, &sbaij->sMvctx));
152 PetscCall(VecScatterViewFromOptions(sbaij->sMvctx, (PetscObject)mat, "-matmult_vecscatter_view"));
154 PetscCall(VecGetLocalSize(sbaij->slvec1, &nt));
155 PetscCall(VecGetArray(sbaij->slvec1, &ptr));
156 PetscCall(VecCreateSeqWithArray(PETSC_COMM_SELF, 1, bs * mbs, ptr, &sbaij->slvec1a));
157 PetscCall(VecCreateSeqWithArray(PETSC_COMM_SELF, 1, nt - bs * mbs, PetscSafePointerPlusOffset(ptr, bs * mbs), &sbaij->slvec1b));
158 PetscCall(VecRestoreArray(sbaij->slvec1, &ptr));
160 PetscCall(VecGetArray(sbaij->slvec0, &ptr));
161 PetscCall(VecCreateSeqWithArray(PETSC_COMM_SELF, 1, nt - bs * mbs, PetscSafePointerPlusOffset(ptr, bs * mbs), &sbaij->slvec0b));
162 PetscCall(VecRestoreArray(sbaij->slvec0, &ptr));