Building NGSolve from scratch trouble

So “make” continues until I get this:

CMake Error at CMakeLists.txt:310 (message):
Could NOT find Pardiso

because I had -DUSE_PARDISO=ON

looking in the CMakeLists.txt file, it looks for the Pardiso library in:

libpardiso500-GNU481-X86-64.so

But I installed oneAPI MKL (which I thought had Pardiso).

After searching my entire Ubuntu, I don’t see any pardiso file with .so extension. I see some others, like .fi and .f90.

Do I need to build Pardiso?

I think this is an error in the cmake script. Perhaps -DUSE_PARDISO should not be set. I don’t think this is my error.

So, I reran cmake and set -DUSE_PARDISO=OFF. Then I was able to run make just fine. Then make install.

I could then run some of the examples, e.g. poisson.py and navierstokes.py, through python3.

If I modify poisson.py to use “pardiso” for the inverse, then it still works by running:

python3 poisson.py

However, if I run:

netgen poisson.py

then I get this:

NETGEN-6.2.2304-9-g340c34bc
Developed by Joachim Schoeberl at
2010-xxxx Vienna University of Technology
2006-2010 RWTH Aachen University
1996-2006 Johannes Kepler University Linz
Including OpenCascade geometry kernel
Including MPI version 3.1
optfile ./ng.opt does not exist - using default values
togl-version : 2
OCC module loaded
loading ngsolve library
NGSolve-6.2.2304-57-g3df0e63b9
Using Lapack
Including sparse direct solver Pardiso
Including sparse direct solver UMFPACK
Running parallel using 12 thread(s)
Generate Mesh from spline geometry
Setup and Factorization: PARDISO returned error -3!
err = reordering problem
symmetric = 0
spd = 0
compressed = 1
inner = 0x7fcc08020b40
cluster = 0
wrote matrix to file ‘pardiso.err’, please check
Traceback (most recent call last):
File “”, line 36, in
netgen.libngpy._meshing.NgException: PardisoInverse: Setup and Factorization failed.

I don’t understand why netgen can’t use pardiso, but just running with python3 is fine.