Lines Matching refs:ncoarseparts
22 PetscInt ncoarseparts; /* number of coarse parts */
73 PetscCheck(hpart->ncoarseparts || part->n, PETSC_COMM_SELF, PETSC_ERR_ARG_WRONGSTATE, " did not either set number of coarse parts or total number of parts ");
79 hpart->ncoarseparts = 1;
88 hpart->ncoarseparts = part->n / hpart->nfineparts;
90 if (part->n % hpart->nfineparts != 0) hpart->ncoarseparts++;
92 part->n = hpart->ncoarseparts * hpart->nfineparts;
95 PetscCall(PetscMalloc1(hpart->ncoarseparts + 1, &offsets));
96 PetscCall(PetscMalloc1(hpart->ncoarseparts, &part_weights));
104 for (i = 2; i <= hpart->ncoarseparts; i++) {
110 for (i = 1; i <= hpart->ncoarseparts; i++) offsets[i] += offsets[i - 1];
133 PetscCall(MatPartitioningSetNParts(hpart->coarseMatPart, hpart->ncoarseparts));
153 for (i = 0; i < hpart->ncoarseparts; i += size) {
175 if ((i + rank) < hpart->ncoarseparts) {
354 PetscCall(PetscViewerASCIIPrintf(viewer, " Number of coarse parts: %" PetscInt_FMT "\n", hpart->ncoarseparts));
394 PetscErrorCode MatPartitioningHierarchicalSetNcoarseparts(MatPartitioning part, PetscInt ncoarseparts)
399 hpart->ncoarseparts = ncoarseparts;
430 PetscCall(PetscOptionsInt("-mat_partitioning_hierarchical_ncoarseparts", "number of coarse parts", NULL, hpart->ncoarseparts, &hpart->ncoarseparts, &flag));
540 hpart->ncoarseparts = 0; /* number of coarse parts (first level) */