METIS ——-
This command may not work with 64 bit machines, this version of METIS is 32 bit
Interface to the METIS graph partition and reorder package with LaGriT. See METIS package description at
http://glaros.dtc.umn.edu/gkhome/views/metis
Partition algorithm divides mesh into npartition parts attempting to assign an equal number of graph vertices (nodes or elements) to each partition and also the number of adjacent elements assigned to different processors is minimized. New attributes are created to hold partition information. Node partition number is in inodeprt, element partition number is in ielemprt.
Reorder algorithm computes a permutation vector, iperm, and an inverse permutation vector, invperm. The mesh can be reordered using the permutation vector in reorder. The reorder algorithms will compute fill-reducing orderings of sparse matrices.
metis / partition / metis_partmeshnodal metis_partmeshdual/ node dual / npartitions / inodeprt / ielemprt
metis / reorder / metis\_edgend metis\_nodend / node dual /[iperm] / [invperm]
metis / reorder / mmetis\_nodewnd / node dual / [iperm] /[invperm] / ivert_weight
metis / partition / metis\_partmeshnodal / node / 32 / inodeprt / ielemprt
metis / partition / metis\_partmeshdual / dual / 32 / inodeprt / ielemprt
metis / partition / metis\_partmeshnodal / node / 32 / -def- / -def-
metis / partition / metis\_partmeshnodal / node / 32
metis / reorder / metis\_edgend / dual
metis / reorder / metis\_nodend / node
metis / reorder / metis\_nodend / dual
metis / reorder / metis\_nodend / dual / -def- / -def-
metis / reorder / metis\_nodend / dual / ieprm1 / ieinvprm1
metis / reorder / metis\_edgend / nodereorder/-def-/ieprm1
EXAMPLE LaGriT Control File:
*
* Build some meshes, tri,quad,hex,tet
*
define / NP / 21
cmo / create / mo_hex / / / hex
createpts / brick / xyz / NP NP NP / 0. 0. 0. / 1. 1. 1. / 1 1 1
cmo / setatt / mo_hex / itetclr / 1 0 0 / 1
resetpts / itp
define / NP / 101
cmo/create/mo_qua/ / / quad
quadxy/ NP NP / 0. 0. 0. / 1. 0. 0. / 1. 1. 0. / 0. 1. 0.
createpts/brick/xyz/NP NP 1/1 0 0 / connect
cmo / setatt / mo_qua / itetclr / 1 0 0 / 1
resetpts / itp
hextotet / 4 / mo_tri / mo_qua
resetpts / itp
hextotet / 24 / mo_tet / mo_hex
resetpts / itp
cmo / status / brief
*
* Run Metis partition into 16, 33 and 128
*
cmo / select / mo_qua
metis/partition/metis_partmeshnodal/node/ 16 idn016 ide016
metis/partition/metis_partmeshnodal/node/ 33 idn033 ide033
metis/partition/metis_partmeshnodal/node/128 idn128 ide128
metis/partition/metis_partmeshdual/dual/ 16 iddn016 idde016
metis/partition/metis_partmeshdual/dual/ 33 iddn033 idde033
metis/partition/metis_partmeshdual/dual/128 iddn128 idde128
metis / reorder / metis_nodend / node / iperm1 / invperm1
cmo / select / mo_tri
metis/partition/metis_partmeshnodal/node/ 16 idn016 ide016
metis/partition/metis_partmeshnodal/node/ 33 idn033 ide033
metis/partition/metis_partmeshnodal/node/ 128 idn128 ide128
metis/partition/metis_partmeshdual/dual/ 16 iddn016 idde016
metis/partition/metis_partmeshdual/dual/ 33 iddn033 idde033
metis/partition/metis_partmeshdual/dual/128 iddn128 idde128
metis / reorder / metis_nodend / node / iperm1 / invperm1
cmo / select / mo_hex
metis/partition/metis_partmeshnodal/node/ 16 idn016 ide016
metis/partition/metis_partmeshnodal/node/ 33 idn033 ide033
metis/partition/metis_partmeshnodal/node/ 128 idn128 ide128
metis/partition/metis_partmeshdual/dual/ 16 iddn016 idde016
metis/partition/metis_partmeshdual/dual/ 33 iddn033 idde033
metis/partition/metis_partmeshdual/dual/128 iddn128 idde128
metis / reorder / metis_nodend / node / iperm1 / invperm1
cmo / select / mo_tet
metis/partition/metis_partmeshnodal/node/ 16 idn016 ide016
metis/partition/metis_partmeshnodal/node/ 33 idn033 ide033
metis/partition/metis_partmeshnodal/node/ 128 idn128 ide128
metis/partition/metis_partmeshdual/dual/ 16 iddn016 idde016
metis/partition/metis_partmeshdual/dual/ 33 iddn033 idde033
metis/partition/metis_partmeshdual/dual/128 iddn128 idde128
metis / reorder / metis_nodend / node / iperm1 / invperm1
dump / gmv / metis_qua.gmv / mo_qua
dump / gmv / metis_tri.gmv / mo_tri
dump / gmv / metis_hex.gmv / mo_hex
dump / gmv / metis_tet.gmv / mo_tet
*
* Create an attribute which is the node number
*
cmo / set_id / mo_qua / node / idnode0
cmo / set_id / mo_tri / node / idnode0
cmo / set_id / mo_hex / node / idnode0
cmo / set_id / mo_tet / node / idnode0
*
* Reorder each mesh using the Metis permutation vector
*
reorder / mo_qua / iperm1
reorder / mo_tri / iperm1
reorder / mo_hex / iperm1
reorder / mo_tet / iperm1
*
* Create an attribute which is the node number after reorder
*
cmo / set_id / mo_qua / node / idnode1
cmo / set_id / mo_tri / node / idnode1
cmo / set_id / mo_hex / node / idnode1
cmo / set_id / mo_tet / node / idnode1
dump / gmv / metis_qua_reorder.gmv / mo_qua
dump / gmv / metis_tri_reorder.gmv / mo_tri
dump / gmv / metis_hex_reorder.gmv / mo_hex
dump / gmv / metis_tet_reorder.gmv / mo_tet
finish
METIS can be freely distributed provided that:
A reference to the following paper is included: *“A Fast and
Highly Quality Multilevel Scheme for Partitioning Irregular
Graphs”. George Karypis and Vipin Kumar. SIAM Journal on
Scientific Computing, Vol. 20, No. 1, pp. 359—392, 1999.*
and copyright notice is include
METIS 4.0 Copyright 2001-06, Regents of the University of Minnesota