NGSolve / ngsolve

Netgen/NGSolve is a high performance multiphysics finite element software. It is widely used to analyze models from solid mechanics, fluid dynamics and electromagnetics. Due to its flexible Python interface new physical equations and solution algorithms can be implemented easily.

Home Page:https://ngsolve.org/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Compiling on linux broken

ddt7 opened this issue · comments

commented

/home/user/ngsuite/ngsolve-src/ngstd/ngstd.hpp:131:27: fatal error: core/ngcore.hpp: No such file or directory
Merge branch 'ngcore' into 'master' 3 days ago
maybe this caused the issue?

Did you update the submodules (i.e. Netgen) after doing a git pull?
> git submodule update --recursive

commented

I am following instructions from:
https://ngsolve.org/docu/latest/install/installlinux.html

I did:
cd $BASEDIR/ngsolve-src
git submodule update --init --recursive

I have tried also to pull the last release and run:
~/ngsuite/ngsolve-build$ make
........................
[ 30%] Built target netgen_project
[ 10%] Performing check_submodules1 step for 'netgen'
[ 20%] Performing build step for 'netgen'
[ 9%] Built target gen
...........................
[100%] Built target ngpy
[ 30%] No install step for 'netgen'
[ 40%] Completed 'netgen'
........................
[ 99%] Built target ngsolve
[ 99%] Linking CXX executable ngs
../comp/libngcomp.so: undefined reference to `void netgen::Ngx_Mesh::MultiElementTransformation<0, 3, double __vector(4)>(int, int, double __vector(4) const*, unsigned long, double __vector(4), unsigned long, double __vector(4), unsigned long) const'

I assume the first issue is resolved now?

The second issue appears when you have the NGSolve Ubuntu package installed. You need to remove it before compiling your own version. After removing the package, clean the build directory and configure with CMake again.

commented

Thanks. I did not want to compile sources,
I installed the NGSolve in ubuntu using apt-get install and just wanted to use netgen in python
e.g.
from netgen.meshing import *
from netgen.csg import *
from ngsolve import ngsglobals

BUT after install i don't see the python library bindings, so i thought maybe compiling from source will help.
Didn't see any PIP install instruction in documentation
I managed to conda install netgen but not ngsolve
Can i import Netgen and NGSolve from my code in python without running netgen application. And how?
Thanks

The conda netgen is not maintained by us, afaik it ships without gui and without NGSolve. What do you mean by not seeing the python library bindings? Does the above code not execute and what errors do you get?
There is neither a pip installer nor a conda one available yet. It is on the wish list, but the dependency on togl and therefore some tk internal headers makes that a little messy...
But using the installer and then executing a python script with

python3 script.py

should work.
Best
Christopher