Overview | All Modules | Tutorial | User's Guide | Programming Guide

COVISE Online Documentation

Module category: Obsolete


TetraTrace performs computation of particle tracks inside tetrahedra-only grids. It therefore uses a runge-kutta 4th-order numerical integration method with adaptive stepsize.


Module obsolete - kept for compatibility with 5.1 only, but support discontinued - use Tracer (new with 5.2) instead!


Some precomputation (see Examples) is required in order to be capable of handling larger datasets near real-time.


  1. You can convert unstructured-mixed-celltype-grids into tetrahedra-grids with Tetrahedronize.
  2. If you use block-structured grids the particle trace could stop at computational borders of these grids. To solve this problem please use AssembleUsg and FixUsg behind the module Tetrahedronize in the pipeline, and set the parameter searchMode to Save if necessary.


Name Type Description
startpoint1 Vector Start point of a line or of a quads diagonal
startpoint2 Vector End point of a line or of a quads diagonal
normal Vector normal of the quad
direction Vector vector describing the direction of one edge of the quad (see figure)
numStart Scalar number of particles to trace
startStep Scalar if transient grid/Data: in which step should the traces start
whatOut Choice select which data to output: number, velocity, magnitude; currently only velocity and magnitude are supported
startStyle Choice how should the particles start positions be arranged:
  • line: connecting line between startpoint1 and startpoint2
  • plane: in fact it is a quad defined by its diagonal (startpoint1/2), normal and direction
  • sphere: sphere through startpoint1/2, where the center is in the middle between the two startpoints
  • box: defining a cuboid by its room-diagonal (startpoint1/2), normal and direction
NOTE: only line and plane supported at the moment
traceStyle Choice How should the particle traces be represented: currently only points is implemented and any other selection will also result in points
numSteps Scalar Number of steps to compute. If tracing on transient grid/data this number representsd the number of complete cycles traced. So if you have a non-cyclic data-set you should set this to 1
stepDuration Scalar stationary: how long should a particle be traced in each step

transient: what time does one timestep represent

numNodes Scalar number of nodes/processors to be used for multiprocessing
multiProcMode Choice Select your machines multiprocessing-mode: currently only SGI-MP is supported, selecting Workstation results in single-processing (default)
searchMode Choice quick is really quick while save is pretty slow but will not run into problems if using grids with holes. Unless you are using pretty weired grids you shouldn't use/need the save-mode.

Input Ports

Name Type Description
requiredgrinIn DO_UnstructuredGrid Unstructured grid with solely tetrahedra-cells
requiredvelIn DO_Vec3 velocity on the grid nodes
requiredvolIn DO_Float precomputed cell-volumes (use TetraVolume)
requiredneighborIn DO_Float special neighborlist (with side-to-side and time neighborship information (output of TetraNeighbor)

Figure: Meaning of the first 4 parameters with startStyle set to plane

Output Ports

Name Type Description
outputtraceOut DO_Points
representation of the computed particle-traces in the desired form
outputdataOut DO_Float DO_Vec3 the data mapped on the traces


Figure: covise/net/tutorial/tutorial_vel_2.net (obsolete)

You have to use this pipeline in order to use TetraTrace with a mixed-celltype unstructured grid. Note that you should save the results from Tetrahedronize, TetraVolume and TetraNeighbor so you don't have to recompute them. TetraNeighbor will go multi-processing (10 nodes) to speed up the process. Still TetraNeighbor is the slowest step in this pipeline.

Because no suitable (fast enough) algorithm for determining time-neighborship has yet been found those will be computed by TetraTrace (for the passed cells only) in real-time.

Tetrahedronize requires the grid on the first port and the per-vertex velocity-data on the second. You should not change Tetrahedronize's parameter because that feature has not been heavily tested and might result in non-sense output.

Authors: Martin Aumüller, Ruth Lang, Daniela Rainer, Jürgen Schulze-Döbold, Andreas Werner, Peter Wolf, Uwe Wössner
Copyright © 1993-2016 HLRS, 2004-2014 RRZK, 2005-2014 Visenso
COVISE Version 2016.3