ngsxfem
is an add-on library to the finite element package Netgen
/NGSolve
which enables the use of unfitted finite element technologies known as XFEM, CutFEM, TraceFEM, Finite Cell, ... . ngsxfem
is an academic software. Its primary intention is to facilitate the development and validation of new numerical methods for partial differential equations.
The main features of ngsxfem
are:
-
Tools to work on an a subset of the triangulation, the "active mesh" only
-
Numerical integration on geometries that are (implicitly) described through level set functions.
-
Higher order representation of level set geometries
-
Space-Time Finite Elements for the treatment of moving domain problems
-
All these features combined with the usual flexibility and power of NGSolve.
ngsxfem
has been used in a variety of applications. In doc/paper.md
more details on the features and references to applications where ngsxfem
is used are given.
Not all features of ngsxfem
and NGSolve
can directly be combined. Here is an overview of ngsxfem
and NGSolve
features and if they can directly be combined:
Features โฒ | CFE |
XFE |
DGF |
Iso |
MLS |
STF |
GhP |
Hex |
Tet |
MPI |
---|---|---|---|---|---|---|---|---|---|---|
CFE : CutFEM form. |
/ | / | yes | yes | yes | no | yes | yes | yes | yes |
XFE : XFEM formulation |
/ | / | yes | yes | no | no | yes | yes | yes | yes |
DGF : Discont. Galerkin |
yes | yes | / | yes | no | no | yes | no | yes | no |
Iso : isoparametric map |
yes | yes | yes | / | no | yes | yes | yes | yes | yes |
MLS : multiple level set |
yes | no | no | no | / | no | yes | no | yes | yes |
STF : space-time FEM |
yes | no | no | yes | no | / | yes | yes | yes | yes |
GhP : Ghost penalty |
yes | yes | yes | yes | yes | yes | / | yes | yes | no |
Hex : quads / hexes |
yes | yes | no | yes | no | yes | yes | / | / | yes |
Tet : trigs./tets |
yes | yes | yes | yes | yes | yes | yes | / | / | yes |
MPI : MPI |
yes | yes | no | yes | yes | yes | no | yes | yes | / |
Some of the nos are work in progress (e.g. MLS
&STF
) and some have not been considered so far (e.g. DGF
&STF
). If you need a certain combination to work, please contact us and we will see what we can do.
We provide two main sources with which to learn how to use ngsxfem
:
- At https://github.com/ngsxfem/ngsxfem-jupyter you can find tutorial-style jupyter notebooks for
ngsxfem
. These explain the core functionalities and usage of the tools provided byngsxfem
. You can run those tutorials interactively (without the need of a local installation) through binder. - in the
demos
-directory we provide several examples that demonstrate the usage ofngsxfem
features. Seedemos/README.md
for details.
We provide installation instructions for building/installing through pip
and building/installing from sources in INSTALLATION.md
. Further, a docker image is available which can be used to run ngsxfem
through docker.
- Christoph Lehrenfeld (main author)
- Fabian Heimann (cut integration, space-time)
- Thomas Ludescher (multigrid)
- Janosch Preuss (space-time)
- Henry von Wahl (multiple levelsets)
If you observe any problems with the software / examples / documentation / installation or want to contribute, you can get in touch with us through either:
- the github issue tracker
- the
NGSolve
user forum.