METIS_PartMeshNodal Interface

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

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(nn)

An array of size nn specifying weights of the nodes. If not passed, all nodes have an equal weight.

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

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

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 passed, 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 nodal 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 us used to partition a mesh into nparts parts based on a partitioning of the mesh's nodal 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