Critical points---vanishing locations in a vector field---are the most important family of features in scientific data. Critical points are the key constitiuents of vector field topology and essentially determine the characteristics of flow transport such as sources, sinks, and saddles. Critical points are also in the gradient field of scalar functions, representing minimum, maximum, and saddles in a scalar field. Read this preprint for more details on critical point tracking in FTK.
We use a numerical method to locate critical points in the input vector field data. Without the loss of generality, we describe the case of 2D vector fields and assume the vector field is piecewise linear (PL), which implies that the data defined on a simplicial (triangular) mesh. We will discuss how our method adapt to non-simplicial meshes in following sections.
To extract critical points in a 2D PL vector field, one can iterate each triangular cell and test if the cell encircles a critical point. Let
In addition to the location, the type of critical point are determined by the eigensystem of the Jacobian/Hessian of the input vector/scalar field. In scalar fields, possible types include minimum, maximum, and saddles; in vector field, possible types include (stable and unstable) attracting, repelling, and saddle types depending on the dimensionality and eigenvalue distributions. See literature for more information on critical point types.
We generalize the above critical point extraction to tracking by assuming that the vector field is piecewise linear over 3D/4D spacetime domain. For example, a time-varying 2D vector field can be descritized into a 3D simplicial (tetrahedral) spacetime mesh; two of the 3D dimensions are space with the third dimension being time. The new mesh generalizes the original spatial mesh into spacetime while tesselating spacetime elements into simplices (see this page for more details on our high-dimensional simplicial meshes). As such, for a given spatiotemporal location
In the first pass, we use the aforementioned critical point test (
In the second pass, we connect two triangles if they both test positive and belong to the same tetrahedron. Based on the spacetime piecewise linear assumption, critical point trajectories are 1D closed curves in spacetime, and each spatiotemporal tetrahedron has up to two triangular faces that are test positive. The trajectories can be thus reconstructed by storing the spatiotemporal coordinates of each critical point.
See Section 4 of this preprint. More details are forthcoming.
In the case of critical point tracking in scalar fields, one has to use the derived gradient fields as the input, which may cause artifacts depending on the quality of gradients. The spacetime PL gradient field implies
The following are the critical point tracking results in the "capped" spiral woven data. The input values are bounded by the maximum value of 0.5, generating plateaus in the scalar field. On the left are results based on central-difference gradient estimates, and on the right are based on analytical gradients. Both results handles degeneracies, but we see artifacts (e.g. loops and zigzag trajectories) in the left figure, which are unseen in the right figure. The ParaView state file to reproduce this case is available here (FTK plug-ins and SurfaceLIC plug-ins required).
- Hanqi Guo, David Lenz, Jiayi Xu, Xin Liang, Wenbin He, Iulian R. Grindeanu, Han-Wei Shen, Tom Peterka, Todd Munson, Ian Foster, "FTK: A High-Dimensional Simplicial Meshing Framework for Robust and Scalable Feature Tracking." arXiv:2011.08697, in preprint, 2020