Skip to content

NGSolve/ngsolve-addon-template

Repository files navigation

An minimal NGSolve addon with Python bindings

using the project template

To create your own NGSolve addon project you perfrom the following steps:

  1. git-fork this project
  2. fill the project with your C++ and Python files
  3. adapt CMakeList.txt (addon_name, C++ and Python files)
  4. adapt file pyproject.toml, section [project]
  5. adapt src/__init__.py file
  6. adapt README.md for installation instructions for your addon-project

installing the addon project

Quick install: install the addon package directly with pip from git:

python -m pip install  git+https://github.com/NGSolve/ngsolve-addon-template.git

Alternative needed for self-compiled NGSolve

python -m pip install scikit-build-core pybind11_stubgen toml
python -m pip install --no-build-isolation git+https://github.com/NGSolve/ngsolve-addon-template.git

test it:

python -m ngsolve_addon_template.demos.exploremesh

Step-by-step installation:

simple step-by-step installation using pip:

git clone https://github.com/NGSolve/ngsolve-addon-template.git
cd ngsolve-addon-template
python -m pip install --no-build-isolation .

alternative step-by-step installation using cmake:

git clone https://github.com/NGSolve/ngsolve-addon-template.git
cd ngsolve-addon-template
mkdir build
cd build
cmake ..
make -j4 install

Troubleshooting

Problem

Error in gihub actions when building Linux package:

    ImportError: /lib64/libstdc++.so.6: version `GLIBCXX_3.4.20' not found

Solution

Update pyproject.toml by adding the following line to the [tool.cibuildwheel] section:

[tool.cibuildwheel]
manylinux-x86_64-image = "manylinux_2_28"

Some more NGSolve addons you can find here:

About

An Minimal NGSolve Addon with Python Bindings

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published