Lines Matching refs:part

34 static PetscErrorCode MatPartitioningApply_Hierarchical(MatPartitioning part, IS *partitioning)  in MatPartitioningApply_Hierarchical()  argument
36 MatPartitioning_Hierarchical *hpart = (MatPartitioning_Hierarchical *)part->data; in MatPartitioningApply_Hierarchical()
40 Mat mat = part->adj, adj, sadj; in MatPartitioningApply_Hierarchical()
55 PetscCall(PetscObjectGetComm((PetscObject)part, &comm)); in MatPartitioningApply_Hierarchical()
73 …PetscCheck(hpart->ncoarseparts || part->n, PETSC_COMM_SELF, PETSC_ERR_ARG_WRONGSTATE, " did not ei… in MatPartitioningApply_Hierarchical()
76 if (part->n == 1) { in MatPartitioningApply_Hierarchical()
87 if (part->n) { in MatPartitioningApply_Hierarchical()
88 hpart->ncoarseparts = part->n / hpart->nfineparts; in MatPartitioningApply_Hierarchical()
90 if (part->n % hpart->nfineparts != 0) hpart->ncoarseparts++; in MatPartitioningApply_Hierarchical()
92 part->n = hpart->ncoarseparts * hpart->nfineparts; in MatPartitioningApply_Hierarchical()
99 if (part->n % hpart->nfineparts != 0) offsets[1] = part->n % hpart->nfineparts; in MatPartitioningApply_Hierarchical()
102 part_weights[0] = ((PetscReal)offsets[1]) / part->n; in MatPartitioningApply_Hierarchical()
106 part_weights[i - 1] = ((PetscReal)offsets[i]) / part->n; in MatPartitioningApply_Hierarchical()
115 PetscCall(PetscObjectGetOptionsPrefix((PetscObject)part, &prefix)); in MatPartitioningApply_Hierarchical()
135 if (part->vertex_weights) { in MatPartitioningApply_Hierarchical()
137 PetscCall(PetscArraycpy(coarse_vertex_weights, part->vertex_weights, mat_localsize)); in MatPartitioningApply_Hierarchical()
141 PetscCall(MatPartitioningGetUseEdgeWeights(part, &use_edge_weights)); in MatPartitioningApply_Hierarchical()
150 …if (part->vertex_weights) PetscCall(ISCreateGeneral(comm, mat_localsize, part->vertex_weights, PET… in MatPartitioningApply_Hierarchical()
155 …PetscCall(MatPartitioningHierarchical_DetermineDestination(part, hpart->coarseparts, i, i + size, … in MatPartitioningApply_Hierarchical()
157 …PartitioningHierarchical_AssembleSubdomain(adj, part->vertex_weights ? vweights : NULL, destinatio… in MatPartitioningApply_Hierarchical()
159 if (part->vertex_weights) { in MatPartitioningApply_Hierarchical()
204 …if (part->vertex_weights) PetscCall(MatPartitioningSetVertexWeights(hpart->fineMatPart, fp_vweight… in MatPartitioningApply_Hierarchical()
224 if (part->vertex_weights) PetscCall(ISDestroy(&vweights)); in MatPartitioningApply_Hierarchical()
316 static PetscErrorCode MatPartitioningHierarchical_DetermineDestination(MatPartitioning part, IS par… in MatPartitioningHierarchical_DetermineDestination() argument
324 PetscCall(PetscObjectGetComm((PetscObject)part, &comm)); in MatPartitioningHierarchical_DetermineDestination()
343 static PetscErrorCode MatPartitioningView_Hierarchical(MatPartitioning part, PetscViewer viewer) in MatPartitioningView_Hierarchical() argument
345 MatPartitioning_Hierarchical *hpart = (MatPartitioning_Hierarchical *)part->data; in MatPartitioningView_Hierarchical()
351 PetscCallMPI(MPI_Comm_rank(PetscObjectComm((PetscObject)part), &rank)); in MatPartitioningView_Hierarchical()
374 PetscErrorCode MatPartitioningHierarchicalGetFineparts(MatPartitioning part, IS *fineparts) in MatPartitioningHierarchicalGetFineparts() argument
376 MatPartitioning_Hierarchical *hpart = (MatPartitioning_Hierarchical *)part->data; in MatPartitioningHierarchicalGetFineparts()
384 PetscErrorCode MatPartitioningHierarchicalGetCoarseparts(MatPartitioning part, IS *coarseparts) in MatPartitioningHierarchicalGetCoarseparts() argument
386 MatPartitioning_Hierarchical *hpart = (MatPartitioning_Hierarchical *)part->data; in MatPartitioningHierarchicalGetCoarseparts()
394 PetscErrorCode MatPartitioningHierarchicalSetNcoarseparts(MatPartitioning part, PetscInt ncoarsepar… in MatPartitioningHierarchicalSetNcoarseparts() argument
396 MatPartitioning_Hierarchical *hpart = (MatPartitioning_Hierarchical *)part->data; in MatPartitioningHierarchicalSetNcoarseparts()
403 PetscErrorCode MatPartitioningHierarchicalSetNfineparts(MatPartitioning part, PetscInt nfineparts) in MatPartitioningHierarchicalSetNfineparts() argument
405 MatPartitioning_Hierarchical *hpart = (MatPartitioning_Hierarchical *)part->data; in MatPartitioningHierarchicalSetNfineparts()
412 static PetscErrorCode MatPartitioningSetFromOptions_Hierarchical(MatPartitioning part, PetscOptionI… in MatPartitioningSetFromOptions_Hierarchical() argument
414 MatPartitioning_Hierarchical *hpart = (MatPartitioning_Hierarchical *)part->data; in MatPartitioningSetFromOptions_Hierarchical()
436 static PetscErrorCode MatPartitioningDestroy_Hierarchical(MatPartitioning part) in MatPartitioningDestroy_Hierarchical() argument
438 MatPartitioning_Hierarchical *hpart = (MatPartitioning_Hierarchical *)part->data; in MatPartitioningDestroy_Hierarchical()
455 static PetscErrorCode MatPartitioningImprove_Hierarchical(MatPartitioning part, IS *partitioning) in MatPartitioningImprove_Hierarchical() argument
457 MatPartitioning_Hierarchical *hpart = (MatPartitioning_Hierarchical *)part->data; in MatPartitioningImprove_Hierarchical()
458 Mat mat = part->adj, adj; in MatPartitioningImprove_Hierarchical()
478 PetscCall(MatPartitioningCreate(PetscObjectComm((PetscObject)part), &hpart->improver)); in MatPartitioningImprove_Hierarchical()
479 PetscCall(PetscObjectGetOptionsPrefix((PetscObject)part, &prefix)); in MatPartitioningImprove_Hierarchical()
486 PetscCall(MatPartitioningSetNParts(hpart->improver, part->n)); in MatPartitioningImprove_Hierarchical()
488 if (part->vertex_weights) { in MatPartitioningImprove_Hierarchical()
490 PetscCall(PetscArraycpy(vertex_weights, part->vertex_weights, adj->rmap->n)); in MatPartitioningImprove_Hierarchical()
529 PETSC_EXTERN PetscErrorCode MatPartitioningCreate_Hierarchical(MatPartitioning part) in MatPartitioningCreate_Hierarchical() argument
535 part->data = (void *)hpart; in MatPartitioningCreate_Hierarchical()
546 part->ops->apply = MatPartitioningApply_Hierarchical; in MatPartitioningCreate_Hierarchical()
547 part->ops->view = MatPartitioningView_Hierarchical; in MatPartitioningCreate_Hierarchical()
548 part->ops->destroy = MatPartitioningDestroy_Hierarchical; in MatPartitioningCreate_Hierarchical()
549 part->ops->setfromoptions = MatPartitioningSetFromOptions_Hierarchical; in MatPartitioningCreate_Hierarchical()
550 part->ops->improve = MatPartitioningImprove_Hierarchical; in MatPartitioningCreate_Hierarchical()