Coder Social home page Coder Social logo

lusongno1 / ngsxfem Goto Github PK

View Code? Open in Web Editor NEW

This project forked from ngsxfem/ngsxfem

0.0 1.0 0.0 11.7 MB

Add-On to NGSolve for unfitted finite element discretizations (XFEM, CutFEM, TraceFEM, etc...)

License: GNU Lesser General Public License v3.0

CMake 2.07% C++ 70.85% Python 26.94% Shell 0.07% Dockerfile 0.08%

ngsxfem's Introduction

GitHub Workflow Status GitHub Workflow Status GitHub release (latest by date)

PyPI PyPI - Implementation PyPI - Downloads

docker build Docker Pulls badge

About ngsxfem

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 features of ngsxfem

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.

Examples and Documentation

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 by ngsxfem. 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 of ngsxfem features. See demos/README.md for details.

Installation

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.

List of contributing authors (with major contributions)

  • Christoph Lehrenfeld (main author)
  • Fabian Heimann (cut integration, space-time)
  • Thomas Ludescher (multigrid)
  • Janosch Preuss (space-time)
  • Henry von Wahl (multiple levelsets)

Community guidelines

If you observe any problems with the software / examples / documentation / installation or want to contribute, you can get in touch with us through either:

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.