I'm hoping to get some resolution on an interesting issue I am running into. Specifically, I am running into issues when attempting to invert a matrix using pardiso. In my case, the process running my code is either killed or produces a segfault.
In conjunction with NGSolve, I am running the following:
-Python 3.6.10, compiled with gcc-9.2.0
-CMake version 3.16.2, compiled with gcc-9.2.0
-NGSolve-6.2.1910-28-g130a6d7, compiled with gcc-9.2.0
-NGSolve is compiled so that pardiso and UMFPACK are enabled via -DUSE_MKL and -DUSE_UMFPACK
The script resolvent_test.py is the script I am running to reproduce the issue, and contains a number of parameters in the
__main__ section at the bottom of the script. The parameters I am concerned with are as follows:
-inverse: A string that specifies the driver for the computation of the inverse
-hermitian_conjugate: A flag that indicates whether to compute the hermitian conjugate of the
resolvents (z*B - A), where A and B are complex square matrices.
To run the script, run python3 resolvent_test.py with inverse = '' or inverse = 'pardiso'. This will result in the
process stalling when inside of the apply_resolvents() method, after which I get one of two single-line messages: 'Killed' or 'Segmentation fault'.
-This happens regardless of whether hermitian_conjugate is True or False. When setting
inverse = 'umfpack' or 'sparsecholesky', however, everything works regardless of whether
hermitian_conjugate is True or False.
I'm wondering if there is something I am missing in the compilation step of NGSolve. Either way, it seems like a strange issue to run into. Any help on the matter is greatly appreciated.
-Ben