Dear Fenics community,
I’m getting the following error when running a simulation from the stable FENICS docker and anaconda:
File “/home/fenics/shared/Arcos_revisited/Viga/modules_viga.py”, line 730, in solve_quasi_static2
theta_h, w_h, gamma_h = u.split(deepcopy=True)
File “/usr/local/lib/python3.6/dist-packages/dolfin/function/function.py”, line 571, in split
return tuple(self.sub(i, deepcopy) for i in range(num_sub_spaces))
File “/usr/local/lib/python3.6/dist-packages/dolfin/function/function.py”, line 571, in
return tuple(self.sub(i, deepcopy) for i in range(num_sub_spaces))
File “/usr/local/lib/python3.6/dist-packages/dolfin/function/function.py”, line 550, in sub
self.cpp_object().sub(i),
RuntimeError: * Error: Duplication of MPI communicator failed (MPI_Comm_dup
I have seen this error on dolfin_adjoint. This is caused by the presence of a u.split(deepcopy=True) when I’m splitting a solution inside a for loop. However, this is not happening when running the code from FENICS installed from repo, nor with Fenics from source.
The error is only for a particular code on which the solution u have 1000+ degrees of freedom and the loop runs over 4000 times. Is this some kind of limitation of the MPI communicator inside the container (virtual environment)?
Distros= Ubuntu 20.04.1 LTS, Arch-Linux
Docker image= Dolfin 2019.2.0.dev0 — Failing
Fenics Anaconda version = 2019.1.0 – Failing
Ubuntu ppa repo= 2019.2.0~git20200629.946dbd3-2 – Working
Arch - Fenics from source= 2019.2.0 – Working
How can I solve this?
Thanks!