Partition Utility
Partition is a utility used to partition the usual mien FEM connectivity into a set of contiguous subdomains using the Metis graph partitioning library. The latest version of Metis used is 4.0.1.
Documentation
This is it, and you can also look at the source code in ~behr/src/partition directory.
Data Requirements
Partition will need the connectivity array (the mien file), which should be 32-bit C-style binary, as in the MIXD format. For more information on writing C-style binary files see the EWD library documentation.
System Requirements
Partition will run, among others, on the Xeon cluster running Linux, and on Mac OS X computers.
Usage
Partition is invoked this way:
/usr/local/bin/partition [-tri|-qua|-tet|-hex] <npes> ...
The command line options are described below, and the <npes> is the number of partitions to generate. More than one partition size can be requested in a single run.
Options
Paritition accepts the following command line options:
| Option | Description | Default |
-tri |
assume triangular mesh |
|
-qua |
assume quadrilateral mesh |
|
-hex |
assume hexahedral mesh |
|
-tet |
assume tetrahedral mesh |
|
Sample Run
An example output is shown below:
tempest(test)% ls -l mien
-rw------- 1 behr user 7819024 Mar 4 18:09 mien
tempest(test)% partition 8
partition: tetrahedra
partition: found 488689 elements
partition: constructing dual...done
partition: partitioning for npes 8
partition: calling metis...done
geto2n: max(nec) is 61087
61087 61087 61087 61087 61087 61087 61087 61080
writeperm: wrote mprm.0008
Known Problems
Partition determines the number of elements from the size of themien file, so it is very important that that size is correct. Oftentimes, a previous run of e.g. DimensionMG will produce a larger mesh, and a subsequent run will result in a smaller mesh. In that case, the final mien file will have the the size corresponding to the larger mesh, i.e., it will not be properly truncated. In that case, Partition will produce unusable permutation file. It is a good idea to always delete mesh files before creating new ones. If an old file needs to be truncated, use the following:
dd if=mien of=mien.truncated bs=<nen∗ne∗4> count=1
where the block size bs is set to a desired integer file size.
The default version (based on Metis 2) has problems with large meshes and large partitions (millions of elements and thousands of PEs). Use the version based on Metis 3 instead in those cases. To deal with Metis interface changes, use -DMETIS2 for Metis 2 and -DMETIS3 for 3 and above.
Metis 3 had problems with 64-bit architectures (crashes in GKfree function, etc.); this has been fixed in Metis 4. Partition on the Xeon cluster is built using that version.
Metis uses random number generator to initialize its graphs, and so the partitioning obtained on two different machines might be visibly different.




