dune-tpmc (dune-tpmc)

Provides a topology preserving implementation of the marching cubes and marching simplex algorithm. This module can be used to implement cut-cell algorithms on top of the Dune interface.

Maintainer: Christian Engwer, Andreas Nüßing
Git repository:
Exact level-set, reconstruction using the standard MC33 algorithm and reconstruction with the Topology Preserving Marching Cubes.

Given a scalar P1/Q1 function Φ on a domain Ω, we define a partition of Ω into two sub-domains {Ω1, Ω2} with a common interface Γ. The interface is given as the zero level-set of the scalar function Φ. The marching cubes algorithm computes a piece-wise linear reconstruction of Γ.

The dune-tpmc modules not only computes a reconstruction of the interface, but also further information. The user can access the following information:

  • Reconstruction of the interface Γ
  • Reconstruction of Ω1
  • Reconstruction of Ω2
  • Connectivity pattern w.r.t. each sub-domain

In order to allow the algorithm to be employed in Finite Element simulations, a reconstruction has to fulfill certain topological guarantees:

  • The connectivity pattern of the cell vertices must be preserved within each subentity. In particular this means that vertices connected along an edge, face or volume, should still be connected via the same subentity.
  • The exact interface Γ partitions each grid cell into patches belonging to either Ω1 or Ω2. We require that number of patches and their domain association is the same in the polygonal reconstruction.
  • The vertices of the reconstructed interface lie on the exact zero level-set.

Publications and Documentation

If you are using the dune-tpmc module, please cite

The first concepts of dune-tpmc go back to implementations described in

  • Ch. Engwer, An Unfitted Discontinuous Galerkin Scheme for Micro-scale Simulations and Numerical Upscaling, Heidelberg University, 2009. (PDF)


dune-tpmc depends on the TPMC library for generating of the lookup-tables.

You can install TPMC via pip. Currently it is not listed in the pypi repository and must be installed directly from the github repository:

  • for python 2:
> python -m pip install git+https://github.com/tpmc/tpmc.git
  • for python 3 we have preliminary support:
> python -m pip install git+https://github.com/tpmc/tpmc.git@python3


dune-tpmc has been written by Christian Engwer and Andreas Nüßing.

Creative Commons License   |  Legal Statements / Impressum  |  Hosted by TU Dresden  |  generated with Hugo v0.111.3 (Jun 24, 22:26, 2024)