Lines Matching refs:p
14 Mat_Preallocator *p = (Mat_Preallocator *)A->data; in MatDestroy_Preallocator() local
18 PetscCall(PetscHSetIJDestroy(&p->ht)); in MatDestroy_Preallocator()
19 PetscCall(PetscFree4(p->dnz, p->onz, p->dnzu, p->onzu)); in MatDestroy_Preallocator()
28 Mat_Preallocator *p = (Mat_Preallocator *)A->data; in MatSetUp_Preallocator() local
35 PetscCall(PetscHSetIJCreate(&p->ht)); in MatSetUp_Preallocator()
41 PetscCall(PetscCalloc4(mbs, &p->dnz, mbs, &p->onz, mbs, &p->dnzu, mbs, &p->onzu)); in MatSetUp_Preallocator()
47 Mat_Preallocator *p = (Mat_Preallocator *)A->data; in MatSetValues_Preallocator() local
67 PetscCall(PetscHSetIJQueryAdd(p->ht, key, &missing)); in MatSetValues_Preallocator()
70 ++p->dnz[key.i - rStart / bs]; in MatSetValues_Preallocator()
71 if (key.j >= key.i) ++p->dnzu[key.i - rStart / bs]; in MatSetValues_Preallocator()
73 ++p->onz[key.i - rStart / bs]; in MatSetValues_Preallocator()
74 if (key.j >= key.i) ++p->onzu[key.i - rStart / bs]; in MatSetValues_Preallocator()
100 Mat_Preallocator *p = (Mat_Preallocator *)A->data; in MatAssemblyEnd_Preallocator() local
103 p->nooffproc = PETSC_TRUE; in MatAssemblyEnd_Preallocator()
106 if (flg) p->nooffproc = PETSC_FALSE; in MatAssemblyEnd_Preallocator()
122 …PetscCallMPI(MPIU_Allreduce(MPI_IN_PLACE, &p->nooffproc, 1, MPI_C_BOOL, MPI_LAND, PetscObjectComm(… in MatAssemblyEnd_Preallocator()
140 Mat_Preallocator *p = (Mat_Preallocator *)mat->data; in MatPreallocatorPreallocate_Preallocator() local
144 …PetscCheck(!p->used, PetscObjectComm((PetscObject)mat), PETSC_ERR_SUP, "MatPreallocatorPreallocate… in MatPreallocatorPreallocate_Preallocator()
145 p->used = PETSC_TRUE; in MatPreallocatorPreallocate_Preallocator()
146 if (!fill) PetscCall(PetscHSetIJDestroy(&p->ht)); in MatPreallocatorPreallocate_Preallocator()
148 PetscCall(MatXAIJSetPreallocation(A, bs, p->dnz, p->onz, p->dnzu, p->onzu)); in MatPreallocatorPreallocate_Preallocator()
152 PetscCall(MatSetOption(A, MAT_NO_OFF_PROC_ENTRIES, p->nooffproc)); in MatPreallocatorPreallocate_Preallocator()
162 PetscCall(PetscHSetIJGetSize(p->ht, &n)); in MatPreallocatorPreallocate_Preallocator()
166 rowstarts[i + 1] = rowstarts[i] + p->dnz[i] + p->onz[i]; in MatPreallocatorPreallocate_Preallocator()
167 maxrow = PetscMax(maxrow, p->dnz[i] + p->onz[i]); in MatPreallocatorPreallocate_Preallocator()
171 PetscHashIterBegin(p->ht, hi); in MatPreallocatorPreallocate_Preallocator()
172 while (!PetscHashIterAtEnd(p->ht, hi)) { in MatPreallocatorPreallocate_Preallocator()
173 PetscHashIterGetKey(p->ht, hi, key); in MatPreallocatorPreallocate_Preallocator()
177 PetscHashIterNext(p->ht, hi); in MatPreallocatorPreallocate_Preallocator()
179 PetscCall(PetscHSetIJDestroy(&p->ht)); in MatPreallocatorPreallocate_Preallocator()
184 PetscInt end = rowstarts[i], start = end - p->dnz[i] - p->onz[i]; in MatPreallocatorPreallocate_Preallocator()
257 Mat_Preallocator *p; in MatCreate_Preallocator() local
260 PetscCall(PetscNew(&p)); in MatCreate_Preallocator()
261 A->data = (void *)p; in MatCreate_Preallocator()
263 p->ht = NULL; in MatCreate_Preallocator()
264 p->dnz = NULL; in MatCreate_Preallocator()
265 p->onz = NULL; in MatCreate_Preallocator()
266 p->dnzu = NULL; in MatCreate_Preallocator()
267 p->onzu = NULL; in MatCreate_Preallocator()
268 p->used = PETSC_FALSE; in MatCreate_Preallocator()