Partitioning a mesh the VKway

I am currently using Metis to partition a mesh, and I am much more concerned with communication times than coputational loads. Therefore,

Are there any plans to extend the function METIS_PartMeshDual to utilize the VKway function to partition a graph? I have tried to achieve this functionality with MeshToNodal and PartGraphVKway, but it seems that PartGraphVKway is not included in the libmesh.a file.

I am currently programming in Fortran in a windows enviroment.

Thank you very much.

RE: The PartGraphVKway is in the

The PartGraphVKway is in the library. What may be missing is a hook for it in for fortran. Look at the file fortan.c in the lib directory to see if contains it, and if not, it should be trivial to add it (just see how the other functions are made fortran-friendly).

RE: I managed to recompile the

I managed to recompile the library, and got the subroutine to work. However, I found the function didn't quite work as I expected.
In my situation, the communication costs are dispoportionately higher than the computational costs, so I'm trying to partition my mesh such that the I get as small a communication edge as possible. As an example, consider:


In this example, I would like the edge between partitions to be in the tunnel, even though that makes one side much larger than the other.
Would I be better off with the function METIS mCPartGraphKway, and use a low value for verticie weights, and a high value for adjacency weights?

RE: What you want to do cannot

What you want to do cannot be done in Metis :(. Multiple constraints will not help. What you need is a partitioning that minimizes the total execution time give a certain communication cost model. We have algorithms like that but they are not in Metis.
You may want to sent an email to Irene Moulitsas (moulitsa AT ) to ask for a copy of her architecture-aware partitioning programs that will solve this problem.