This is a read only copy of the old FEniCS QA forum. Please visit the new QA forum to ask questions

Mesh partition parameters (using MPI)

0 votes

Hi,
After some research on the forum i have found it is possible to control the way fenics partition the mesh (with MPI):

For exemple, to control the overlap between partitioned adjacent meshes, one can use:

parameters["ghost_mode"] = "shared_facet"

or

parameters["ghost_mode"] = "shared_vertex"  

Running some test case, i could see clearly the effect of each choice.

Then, i have noticed these two parameters:

parameters["mesh_partitioner"] = "SCOTCH"
parameters["partitioning_approach"] = "PARTITION"

So here is my question: what are "mesh_partitioner" and "partitioning_approach" doing ? And what are the different possible options for each of them? I don't know what are the other values i can set, apart SCOTCH and PARTITION, so i can't do any test.

Also, If you know any other parameter that control the mesh partitioning, please tell me.

I use Fenics 2016.1

Regards

asked Apr 13, 2017 by fussegli FEniCS Novice (700 points)

1 Answer

0 votes

You can specify ParMETIS instead if SCOTCH, if you have it installed. The 'approach' refers to ParMETIS mode, and has no effect on SCOTCH.

answered Apr 17, 2017 by chris_richardson FEniCS Expert (31,740 points)

Thanks,

Thus, I have installed ParMETIS following the instructions there:

http://glaros.dtc.umn.edu/gkhome/metis/parmetis/download

And then i have re-run my program with the options:

parameters["mesh_partitioner"] = "ParMETIS"
parameters["partitioning_approach"] = "PARTITION"

And get this error:

    _mesh.UnitCubeMesh_swiginit(self, _mesh.new_UnitCubeMesh(*args))
RuntimeError: 

*** -------------------------------------------------------------------------
*** DOLFIN encountered an error. If you are not able to resolve this issue
*** using the information listed below, you can ask for help at
***
***     fenics-support@googlegroups.com
***
*** Remember to include the error message listed below and, if possible,
*** include a *minimal* running example to reproduce the error.
***
*** -------------------------------------------------------------------------
*** Error:   Unable to compute mesh partitioning using ParMETIS.
*** Reason:  DOLFIN has been configured without support for ParMETIS.
*** Where:   This error was encountered inside ParMETIS.cpp.
*** Process: 0
*** 
*** DOLFIN version: 2016.1.0
*** Git changeset:  unknown
*** -------------------------------------------------------------------------

Any clue?

You need to rebuild DOLFIN with ParMETIS.

Ok, Thanks,

I have only noticed we can let

parameters["ghost_mode"] = "none"

Visually, partitioned mesh created with 'none' and 'shared_vertex' are similar.
Then, what is the difference?

Although, in my code the option shared_vortex induced a segmentation error when i try to create the function space (on a imported submesh). By changing the option to 'none', the error disappeared.

Here is a separate post for this issue:
https://fenicsproject.org/qa/13109/import-submesh-code-create-associated-function-space-error?show=13155#a13155

...