mylittlengsolve builds fine on my Mac (also 10.15). Make sure you have no other NGSolve installation available. Maybe cmake is finding the wrong Netgen or NGSolve in /Applications/Netgen.app?
In case you cannot fix the issue, post/send the CMakeCache.txt file in you build directory.
Anyway, there is still another bug: compiled python modules shall not link to libpython, as it is statically linked to the python executable in conda. This results in a segfault when loading the module. A fix in the cmake function add_ngsolve_python_module() will be released later today.
Thanks for your fast reply. The installation is complete clean, so I’m sure there is nowhere else the NGSolve and I double checked that there are not any false environment variables.
Find attached the CMakeCache.txt. To produce this I only changed the CMakeLists.txt to give the find_package function a hint to the ngsolve CMake file:
I’m not (yet) a conda expert, but I think your given hint is wrong. That’s the path to the uninstalled package.
For me a hint is not necessary, conda sets PATH appropriately such that cmake finds Netgen/NGSolve automatically:
Ok, i see it has something to do with the path variables.
FYI: I created an own conda environment for the NGSolve installation. Activating it in the shell gives the possibility to open netgen just by typing netgen to the terminal. That works.
But I can’t find any Path variables as you showed in the post? The second thing is then to apply those environment variables of the conda environment to CLion, where cmake is started.
For curiosity I installed netgen via the classical way. Then the C++ Extension compiles as expected, but of course installs into the ‘old’ structure, which is then not used with the conda package (of course as expected).
P.S.: The update of netgen and ngsolve with conda worked flawless.
Did you have the conda environment activated when you ran the cmake configure?
I think this is the problem because you configure in clion. Maybe it is already enough to run clion in the venv. If not maybe run the cmake command by hand in the venv.
If you don’t have it activated it won’t find it, if you have it activated it should correctly install it into the virtual env as well.
Best
Christopher
However, it seems like libngsolve.so or some dynamic libraries are not properly installed. For example,
import netgen.gui
from ngsolve import *
ERROR:root:Cannot activate multiple GUI eventloops
optfile ./ng.opt does not exist - using default values
togl-version : 2
OCC module loaded
loading ngsolve library
cannot load ngsolve
error: couldn't load file "libngsolve.so": libngsolve.so: cannot open shared object file: No such file or directory
libngsolve.so is placed at /usr/share/miniconda3/pkgs/ngsolve-6.2.1909-py37_91/lib/netgen Maybe we should add an script telling its location whenever we reinstalled a new version of ngsolve.
Thanks for the report. We are currently working on an issue that is probably related to yours. A workaround is to set the LD_PRELOAD environment variable to the tcl library. In my case it’s working by starting python like this:
Looks like UMFPACK is not part of the conda package. This leads to problems. For example when using the Elasticity Modeltemplate. Would it be possible to add UMFPACK?
Not sure why mhochsteger disabled umfpack, maybe there was a problem with the suitesparse dependency in conda. I will have a look into this next week or so. In the meantime, the pardiso solver should be available in the conda installer and should work instead of umpfack.
Best
Christopher
You can get Elasticity to work without the UMFPack, if you use HookeMaterial and set nonlinear to False. But otherwise initiating the class will fail and I do not really see how I would change to the paradiso solver.
Anyways I have succeeded to compile the code from scratch within my docker setup so the issue is not pressing. Just wanted to let you know…
The installation was successful, everything is local in my folder ~/NGSolve
However, the gui is not working properly, it only pops up a window without any information. See attached photo.