Configure Mixed Dimensional Branch with ParMETIS

Hi all,

I am currently running @cdaversin’s mixed dimensional branch of FEniCS in Docker, and for (reasons) I need to use ParMETIS for mesh partitioning instead of SCOTCH.

I noticed, using the line

parameters["mesh_partitioner"] = "ParMETIS"

yields an error, saying DOLFIN has not been configured with support for ParMETIS.

Is there any way I can get ParMETIS support with the mixed dimensional branch on Docker?

Any help would be greatly appreciated,

You Need to build dolfin with parmetis support (for instance based on the dev images of dolfin), as we are not allowed to ship binaries of Parmetis; as explained by @jackhale on our slack:

The broader issue for the Docker images is that we cannot ship a binary of Parmetis (it is not Open Source by the definition of the Open Source Initiative). If someone wants Parmetis in a Docker image you will have to modify the Dockerfile and build the image yourself.

Hi dokken, thank you so much for your reply, and sorry for the delay in mine,

From some previous posts on the forum, am I right in saying that the master branch of DOLFIN now have the mixed dimensional features included? (I may be mistaken, as I do not have a huge amount of experience)

Therefore, can I simply build from the master branch with ParMETIS support and get the desired functionality?


That is correct.


From Bitbucket , there are a handful of fixes in Cecile’s mixed-dimensional branch that are not yet merged into master.

Hi dokken,

I tried to to build from source from
and also attempted using a docker script which you provided here (with no modifications at all)

Using a fresh install of Ubuntu 20.04 each time.
Both times, I got the error:

The following REQUIRED packages have not been found:
* UFC (required version >= 2019.2), Unified language for form-compilers (part of FFC), <>

and error in big red lettering:

CMake Error at CMakeLists.txt:626 (message):
 Generation of form files failed:
 Traceback (most recent call last):...
ImportError: cannot import name 'cellname2facetname' from 'ufl.cell'

Unsure where I am going wrong, any advice would be super helpful,

You should install the branch 2021.1.0 of ufl: GitHub - FEniCS/ufl at 2021.1.0
as the following commit Remove cellname2facetname by jpdean · Pull Request #77 · FEniCS/ufl · GitHub introduced non-backwards compatible changes.

Hi dokken,

Thanks for all you help! Built successfully and working now :slight_smile: