METIS_PartMeshDual Interface

interface
public function METIS_PartMeshDual(ne, nn, eptr, eind, vwgt, vsize, ncommon, nparts, tpwgts, options, objval, epart, npart) result(ierr) bind(C,name="METIS_PartMeshDual")

Arguments

Type IntentOptional AttributesName
integer(kind=idx_t), intent(in) :: ne

The number of elements in the mesh.

integer(kind=idx_t), intent(in) :: nn

The number of nodes in the mesh.

integer(kind=idx_t), intent(in), dimension(*):: eptr

The pair of arrays storing the mesh as described in Section 5.6 of the manual.

integer(kind=idx_t), intent(in), dimension(*):: eind

The pair of arrays storing the mesh as described in Section 5.6 of the manual.

integer(kind=idx_t), intent(in), optional :: vwgt(ne)

An array of size ne specifying the weights of the elements. If not present, all elements have an equal weight.

integer(kind=idx_t), intent(in), optional :: vsize(ne)

An array of size ne specifying the size of the elements that is used for computing the total comunication volume as described in Section 5.7 of the manual. If not present, the objective is cut or all elements have an equal size.

integer(kind=idx_t), intent(in) :: ncommon
integer(kind=idx_t), intent(in) :: nparts

The number of parts to partition the mesh.

integer(kind=idx_t), intent(in), optional :: tpwgts(nparts)

An array of size nparts that specifies the desired weight for each partition. The target partition weight for the i-th partition is specified at tpwgts(i) (the numbering for the partitions starts from 0). The sum of the tpwgts entries must be 1.0.
If not present, the graph is divided equally among the partitions.

integer(kind=idx_t), intent(in), optional :: options(METIS_NOPTIONS)

An array of options as described in Section 5.4 of the manual. See description for valid options.

integer(kind=idx_t), intent(out) :: objval

Upon successful completion, this variable stores either the edgecut or the total communication volume of the dual graph's partitioning.

integer(kind=idx_t), intent(out) :: epart(ne)

A vector of size ne that upon successful completion stores the partition vector for the elements of the mesh. The numbering of this vector starts from either 0 or 1, depending on the value of options(METIS_OPTION_NUMBERING).

integer(kind=idx_t), intent(out) :: npart(nn)

A vector of size nn that upon successful completion stores the partition vector for the nodes of the mesh. The numbering of this vector starts from either 0 or 1, depending on the value of options(METIS_OPTION_NUMBERING).

Return Value integer(kind=idx_t)

METIS_OK - Indicates that the function returned normally.
METIS_ERROR_INPUT - Indicates an input error.
METIS_ERROR_MEMORY - Indicates that it could not allocate the required memory.
METIS_ERROR - Indicates some other type of error.

Description

This function is used to partition a mesh into nparts parts based on a partitioning of the mesh's dual graph.

The following options are valid:
METIS_OPTION_PTYPE, METIS_OPTION_OBJTYPE, METIS_OPTION_CTYPE, METIS_OPTION_IPTYPE, METIS_OPTION_RTYPE, METIS_OPTION_NCUTS, METIS_OPTION_NITER, METIS_OPTION_SEED, METIS_OPTION_UFACTOR, METIS_OPTION_NUMBERING, METIS_OPTION_DBGLVL