Hi all,
I’m currently using fenics 2019.2.0
for solving Electromagnetic wave PDEs. Since this version of FEniCS does not have the possibility to directly handle complex numbers, for each variable I define two TrialFunctions
corresponding to real and imaginary part of that variable.
Just to make an example, at the moment I’m solving a 2D problem, with a mesh containing around 4000 elements and 2000 nodes, I have 18 different TrialFunctions
(3 vector fields * 3 components * 2, where the last 2 factor is due to the splitting in real and imaginary), and for each component I use cubic CG
elements. In the end, I obtain about 300 000 DOFs. I’m using the MUMPS solver.
I have no problem in running the simulation successfully, however I noticed a remarkable difference between fenics 2019.2.0
and a commercial software in terms of computation time needed for solving this problem (40 seconds with fenics 2019.2.0
, 6 seconds with the commercial software). The number of elements for the mesh (4000) and the kind of elements used for solving the problem (cubic Lagrange) are the same in both cases, as well as the solver (MUMPS).
I tried many ways to lower the simulation time in fenics 2019.2.0
, but none of them was successful.
My question is: could dolfinx
speed up the simulation thanks to its support of complex numbers? Could there be other strategies of speeding up the simulation (e.g. changing MUMPS parameters and/or using MUMPS in MPI+OpenMP hybrid mode)?
Thank you very much