This framework aims at helping the implementation of algorithms in a multiphase flow (originally two-phase flow) setting, where data is provided as volume of fluid (VOF) fields and velocity fields. It is split into multiple parts, where the main part is the header-only library TPF. Additionally, it provides filters for the visualization framework ParaView by wrapping TPF modules. This way, all modules can be easily ported to other visualization software by providing a wrapper responsible for directing input and output.
The library is separated into several categories:
Namespace | Description |
---|---|
algorithm | General algorithms that are independent of the types provided by this library. |
data | Mostly spatial data types, such as grids and trees. |
exception | Additional exceptions for internal exception handling. |
geometry | Implementation of geometric objects using CGAL. |
log | Thread-safe logging implementation. |
math | Basic math for geometry and linear algebra. |
module | Base classes and interface for the implementation of modules. |
mpi | High-level MPI functions for TPF data types. |
performance | Performance logging capabilities. |
policies | Policies through interface classes. |
stdext | Extension and specializations of classes from the standard template library. |
traits | Traits for templates. |
utility | Small utility functions for templated operations. |
vtk | VTK wrapper for conversion of VTK data types to TPF and vice versa. |
The following modules are available, most of which are wrapped in a ParaView plugin:
Module | Description |
---|---|
Correct VOF | Correct the volume of fluid (VOF) field by removing isolated non-zero cells. |
Droplets | Segmentation of droplets in the VOF field, and calculation of droplet-specific properties. |
Dynamic Droplets | Static glyph-based visualization of dynamic droplet information over multiple time steps. |
Flow Field | Stream-, streak- and pathline computation, with emphasis on per-droplet frames of reference. |
Fluid Position | Calculate a point per cell as the representative fluid position. |
FS3D Reader | Read temporal FS3D files, containing VOF and other scalar fields, as well as velocity fields. |
FS3D Writer | Allows to write rectilinear grids and their attached fields in the FS3D file format. |
Interface Bending | Calculate the bending as the change of interface curvature. |
Interface Curvature | Calculate the curvature at the phase interface. |
Interface Deformation Glyph | Provide a glyph that can visualize interface stretching and bending. |
Interface Gradient | Calculate the gradient at the phase interface. |
Interface Stretching | Calculate how the interface stretches or contracts. |
PLIC | Reconstruct the interface between two fluid phases with PLIC. |
PLIC 3 | Reconstruct the interface between two fluid phases and a solid phase with PLIC. |
STL Reader | Read an STL file containing a triangle mesh. |
Surface Tension | Calculate the surface tension force at the phase interface. |
Test Data | Create simple 3D test geometry, represented as VOF field and velocity field. |
Every module is wrapped as a filter or source for ParaView, with multiple modules bundled into a plugin.
Plugin | Description |
---|---|
basic | Basic computations for droplets, e.g., interface gradient and interface curvature, mostly on rectilinear grids. |
deformation | Calculation and visualization of droplet interface deformation from interface stretching and bending. |
flow | Flow visualizations, such as stream-, streak- and pathline computation. |
octovis | Computation on octrees, for handling data from Octo Tiger, emphasizing on stellar data sets. |
This plugin contains several basic data readers, writers, sources, and filters.
These modules are data readers for loading data from files.
Reader | Description |
---|---|
FS3D Reader | Read temporal FS3D files, containing VOF and other scalar fields, as well as velocity fields. |
STL Reader | Read an STL file containing a triangle mesh. |
These modules are data writers for writing data to files.
Filter | Description |
---|---|
FS3D Writer | Allows to write rectilinear grids and their attached fields in the FS3D file format. |
These modules are sources for generating data based on input parameters.
Source | Description |
---|---|
Test Data | Create simple 3D test geometry, represented as VOF field and velocity field. |
These modules are filters for manipulating input data, mostly defined on rectilinear grids.
Filter | Description |
---|---|
Correct VOF | Correct the volume of fluid (VOF) field by removing isolated non-zero cells. |
Droplets | Segmentation of droplets in the VOF field, and calculation of droplet-specific properties. |
Dynamic Droplets | Static glyph-based visualization of dynamic droplet information over multiple time steps. |
Fluid Position | Calculate a point per cell as the representative fluid position. |
Interface Curvature | Calculate the curvature at the phase interface. |
Interface Gradient | Calculate the gradient at the phase interface. |
PLIC | Reconstruct the interface between two fluid phases with PLIC. |
PLIC 3 | Reconstruct the interface between two fluid phases and a solid phase with PLIC. |
Surface Tension | Calculate the surface tension force at the phase interface. |
This plugin contains filters for the calculation and visualization of interface deformation.
Filter | Description |
---|---|
Interface Bending | Calculate the change in interface curvature of a droplet. |
Interface Deformation | Calculate the interface deformation as interface bending and stretching. |
Interface Deformation Glyph | Visualize a glyph for interface deformation. |
Interface Stretching | Calculate the interface stretching of a droplet. |
This plugin contains filters for the computation of droplet-local stream-, streak-, and pathlines.
These modules are filters for computing and visualizing flow and flow properties.
Filter | Description |
---|---|
Flow Field | Stream-, streak- and pathline computation, with emphasis on per-droplet frames of reference. |
This plugin contains specific filters for binary star mergers.
These modules are filters for processing stellar simulation data from Octo Tiger, represented in octrees.
Filter | Description |
---|---|
Binary Star | Classification of binary stars in a stellar merger, defined by physical properties. |
Flow Field (Octree) | Specific version of the Flow Field (see Flow plugin) to handle simulation data from a stellar merger. |
Seed Octree | Use the octree data structure to create a seed. |
This project is published under the MIT license. In the following you can find a list of contributors in alphabetical order.
- Alexander Straub, University of Stuttgart, Germany
([email protected]) - Moritz Heinemann, University of Stuttgart, Germany
([email protected]) - Grzegorz K. Karch, University of Stuttgart, Germany
The MIT License (MIT)
Copyright (c) 2017-2020 University of Stuttgart Visualization Research Center
Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the "Software"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.