Level Set#
OpenPisco provides dedicated modules to handle level sets.
A base class describing level sets can be found in the following module
A level set class is characterized by the following key attributes
OpenPisco.LevelSetBase.support
: background mesh on which the distance field is evaluatedOpenPisco.LevelSetBase.phi
: distance field
and the following functions to handle the evolution of the implicit shape
OpenPisco.LevelSetBase.Regularize()
: regularization of an input velocity fieldOpenPisco.LevelSetBase.Transport()
: transport with respect to a given velocity field and update the distance fieldOpenPisco.LevelSetBase.Reinitialise()
: generate a distance field from an input-possibly flat- level set field
OpenPisco differentiates bewteen structured and unstructured level sets.
Structured Level Set#
In the structured setting the support mesh is a structured uniform tetrahedral grid.

Fig. 23 Structured Level Set#
The following module contains a derived class describing structured level sets
OpenPisco.Structured.LevelSet3D()
Unstructured Level Set#
In the unstructured setting the support mesh is an unstructured tetrahedral mesh. The following module contains a derived class describing unstructured level sets
Utilitary functions helping the manipulation of unsturctured level sets can be found in
Body-fitted vs non conformal level sets#
OpenPisco support two modes :
conformal : the background mesh is dynamically adapted to fit the 0 isovalue of the level set field
non conformal : the background mesh is not adapted to the 0 isovalue of the level set field

Fig. 24 Unstructured non conformal Level Set#

Fig. 25 Unstructured conformal Level Set#
In the conformal, or body fitted, case the support mesh contains the negative part of the level set as a submesh and a triangulation of the 0 isovalue is available. In the non conformal case the 0 isovalue is not explicitely discretized. The background mesh is fixed or adapted to the problem at stake.
The boolean attribute OpenPisco.Unstructured.Levelset.conform
allows to switch from the non conformal (default) to the body-fitted mode.
Regularization#
The function OpenPisco.Unstructured.Levelset.Regularize()
allows to extend and regularize an input velocity field defined on the structural interface in both body-fitted and non conformal settings.
The regularized velocity field is the solution \(V \in H^1(D)\) of the following variational problem
where \(\alpha>0\) is a small parameter tuning the regularization level and \(v_{\partial \Omega}\) is the input velocity field. equation is solved using the finite elements framework of the library Muscat 1.
Transport#
The function OpenPisco.Unstructured.Levelset.Transport()
allows to transport an initial level set field along a given velocity field by solving the following level set transport equation
where \(\theta = -v n\) is a normal velocity field. The transport equation is numerically solved using the class OpenPisco.Unstructured.Levelset.Advect
. This class implements a python interface to the open source library Advection 2.
Reinitialization#
The redistanciation equation is numerically solved using the class OpenPisco.Unstructured.Meshdist
. This class implements a python interface to the open source library Mshdist 3.