Lines Matching refs:part

28 static PetscErrorCode PetscPartitionerDestroy_ParMetis(PetscPartitioner part)
30 PetscPartitioner_ParMetis *p = (PetscPartitioner_ParMetis *)part->data;
34 PetscCall(PetscFree(part->data));
38 static PetscErrorCode PetscPartitionerView_ParMetis_ASCII(PetscPartitioner part, PetscViewer viewer)
40 PetscPartitioner_ParMetis *p = (PetscPartitioner_ParMetis *)part->data;
52 static PetscErrorCode PetscPartitionerView_ParMetis(PetscPartitioner part, PetscViewer viewer)
57 PetscValidHeaderSpecific(part, PETSCPARTITIONER_CLASSID, 1);
60 if (isascii) PetscCall(PetscPartitionerView_ParMetis_ASCII(part, viewer));
64 static PetscErrorCode PetscPartitionerSetFromOptions_ParMetis(PetscPartitioner part, PetscOptionItems PetscOptionsObject)
66 PetscPartitioner_ParMetis *p = (PetscPartitioner_ParMetis *)part->data;
78 static PetscErrorCode PetscPartitionerPartition_ParMetis(PetscPartitioner part, PetscInt nparts, PetscInt numVertices, PetscInt start[], PetscInt adjacency[], PetscSection vertSection, PetscSection edgeSection, PetscSection targetSection, PetscSection partSection, IS *partition)
81 PetscPartitioner_ParMetis *pm = (PetscPartitioner_ParMetis *)part->data;
101 PetscCall(PetscObjectGetComm((PetscObject)part, &comm));
167 err = METIS_PartGraphRecursive(&nvtxs, &ncon, xadj, adjncy, vwgt, NULL, adjwgt, &nparts, tpwgts, ubvec, options, &part->edgeCut, assignment);
179 err = METIS_PartGraphKway(&nvtxs, &ncon, xadj, adjncy, vwgt, NULL, adjwgt, &nparts, tpwgts, ubvec, options, &part->edgeCut, assignment);
205 err = ParMETIS_V3_PartKway(vtxdist, xadj, adjncy, vwgt, adjwgt, &wgtflag, &numflag, &ncon, &nparts, tpwgts, ubvec, options, &part->edgeCut, assignment, &pcomm);
227 SETERRQ(PetscObjectComm((PetscObject)part), PETSC_ERR_SUP, "Mesh partitioning needs external package support.\nPlease reconfigure with --download-parmetis.");
231 static PetscErrorCode PetscPartitionerInitialize_ParMetis(PetscPartitioner part)
234 part->noGraph = PETSC_FALSE;
235 part->ops->view = PetscPartitionerView_ParMetis;
236 part->ops->setfromoptions = PetscPartitionerSetFromOptions_ParMetis;
237 part->ops->destroy = PetscPartitionerDestroy_ParMetis;
238 part->ops->partition = PetscPartitionerPartition_ParMetis;
258 PETSC_EXTERN PetscErrorCode PetscPartitionerCreate_ParMetis(PetscPartitioner part)
263 PetscValidHeaderSpecific(part, PETSCPARTITIONER_CLASSID, 1);
265 part->data = p;
267 PetscCallMPI(MPI_Comm_dup(PetscObjectComm((PetscObject)part), &p->pcomm));
273 PetscCall(PetscPartitionerInitialize_ParMetis(part));