1 Introduction

  Topology-based flow visualization concentrates on locations in the domain that govern the motion of the surrounding fluid. When flows are steady, this provides a compact description of asymptotic particle behavior. In time-dependent flows, there are still many open research problems despite decades of research [18]. One of the earliest topology-related visualization papers was published by Dallmann [23], who studied vortex separation. His work was not only influential in later topology-driven research, such as by Helman and Hesselink [55, 56] or Globus and Levit [34], but his visualization approaches were also source of inspiration for illustrative flow visualization methods [14]. The following manuscript is written for novice readers as an entry point to topology-based methods in flow visualization, primarily giving an overview of topological elements and related concepts from feature-based visualization. Over the course of this chapter, we concentrate mainly on differential methods, covering both steady as well as time-dependent vector fields. We refer the reader to existing surveys on topology-based methods, which cover older methods in more detail or also include scalar field and tensor field topology [18, 32, 53, 72, 90, 108, 130]. Topology-based methods are not only used for feature extraction, but also found applications in vector field modeling [117, 136], editing [20], simplification [73, 124, 125], smoothing [137], and compression [68, 75, 118].

The chapter is organized as follows. We begin with steady vector fields, covering the topological elements of 2D flows and afterwards 3D flows. When it comes to time-dependent vector fields, there are two classes of approaches: streamline-oriented and pathline-oriented topology. We summarize the streamline-oriented approaches first, covering the different transitions that topological elements undergo, and proceed with the current state on pathline-oriented approaches. Finally, we discuss ongoing research opportunities in the areas of reference frame extraction, high-dimensionality, uncertainty, and scalability.

Notation. In general, we denote scalar-valued quantities such as s with italic letters. Vector-valued quantities such as \({\mathbf {v}}\) are expressed in bold letters and matrices such as \({\mathbf {J}}\) are denoted in capital bold letters. When we discuss concepts in time-dependent flows, we use an overline symbol, e.g., \(\overline{{\mathbf {p}}}\), to denote a vector in the space-time domain, which means that the time coordinate is added as an additional dimension.

2 Steady Vector Fields

Steady vector field topology is mainly interested in the asymptotic behavior of particles. That is, for each point in the domain, we would like to know where a particle will flow to in the limit and where it originally came from. In a steady vector field, the trajectory of a particle is commonly referred to as streamline. The limit behavior of particles is given by the topological skeleton, which consists of a number of points (critical points and special points on the boundary), which are connected with each other by streamlines, so-called separatrices. These separatrices divide the flow into regions with coherent behavior, as shown in Fig. 1. This means, every particle seeded from the same area will end up in the same sink or source, respectively, when tracing forward or backward. In the following, we introduce the elements of the topological skeleton for 2D and 3D flows. Note that most of these techniques only apply for steady vector fields. Time-dependent flows are covered in the subsequent section.

Fig. 1
figure 1

The topological skeleton of two steady 2D vector fields. Critical points (sources in red, sinks in blue, saddles in yellow) are connected by separatrices (black), which divide the flow into regions with the same asymptotic behavior. That is, particles released from any point inside such a region terminate in the same sink or source when tracing forward or backward, respectively

2.1 Two-Dimensional Flows

Given is a two-dimensional steady vector field \({\mathbf {v}}({\mathbf {x}}) : \mathbb {R}^2 \rightarrow \mathbb {R}^2\):

$$\begin{aligned} {\mathbf {v}}({\mathbf {x}}) = \begin{pmatrix} u(x,y) \\ v(x,y) \end{pmatrix} \end{aligned}$$
(1)

Since particles follow the flow tangentially, a particle trajectory \({\mathbf {x}}(\tau )\) can be computed by requesting that the tangent of the particle path is equal to the vector field direction at the particle position:

$$\begin{aligned} \frac{{\mathrm {d}}{\mathbf {x}}(\tau )}{{\mathrm {d}}\tau } = {\mathbf {v}}({\mathbf {x}}(\tau )) \qquad {\mathbf {x}}(0) = {\mathbf {x}}_0 \end{aligned}$$
(2)

This ordinary differential equation (ODE) is commonly solved with numerical integrators to compute the trajectory for a given initial position \({\mathbf {x}}_0\). We refer to the text book of Lapidus and Seinfeld [71] for a comprehensive introduction to the numerical integration of ordinary differential equations. In the following sections, we are also deeply interested in the spatial derivatives of the vector field, namely:

$$\begin{aligned} \frac{\partial {\mathbf {v}}({\mathbf {x}})}{\partial {\mathbf {x}}} = \nabla {\mathbf {v}}({\mathbf {x}}) = {\mathbf {J}}({\mathbf {x}}) = \begin{pmatrix} \frac{\partial u(x,y)}{\partial x} &{} \frac{\partial u(x,y)}{\partial y} \\ \frac{\partial v(x,y)}{\partial x} &{} \frac{\partial v(x,y)}{\partial y} \end{pmatrix} \end{aligned}$$
(3)

The above matrix is called the Jacobian \({\mathbf {J}}({\mathbf {x}})\) of vector field \({\mathbf {v}}({\mathbf {x}})\) and it captures the first-order flow behavior. In other words, it is a first-order estimate that tells us how particles behave in the immediate surrounding. We will later use this information to define and classify certain topological elements and flow features.

2.1.1 Critical Points

The key ingredient to steady vector field topology is the extraction of critical points. In general, critical points are locations \({\mathbf {x}}\) where the velocity vanishes:

$$\begin{aligned} {\mathbf {v}}({\mathbf {x}}) = {\mathbf {0}}\end{aligned}$$
(4)

The term critical point was coined in the flow visualization community by Helman and Hesselink [55, 56]. In other fields, these locations are also known as fixed points or stagnation points.

First-order Critical Points. A point \({\mathbf {x}}_0\) is a first-order critical point of \({\mathbf {v}}({\mathbf {x}})\) if

  1. 1.

    \({\mathbf {x}}_0\) is a critical point of \({\mathbf {v}}({\mathbf {x}})\)

  2. 2.

    \({\mathbf {v}}({\mathbf {x}})\) is differentiable at \({\mathbf {x}}_0\)

  3. 3.

    \(det({\mathbf {J}}({\mathbf {x}}_0)) \ne 0\).

The first condition is a minimal requirement. The second condition ensures that we can compute a Jacobian matrix, which is later relevant for the classification of first-order critical points. If the last condition is fulfilled, the critical point is said to be non-degenerate. In case of a first-order critical point, this means that the critical point is isolated, i.e., in an epsilon neighborhood there is no other critical point: \({\mathbf {v}}({\mathbf {x}}_0 + \epsilon ) \ne {\mathbf {0}}\). This protects us from trying to identify critical points inside of obstacles. The first-order critical points can be analyzed by an eigenanalysis of \({\mathbf {J}}({\mathbf {x}}_0)\), as described in the following.

First-Order Classification. Let \(\lambda _1\) and \(\lambda _2\) be the possibly complex-valued eigenvalues of \({\mathbf {J}}({\mathbf {x}}_0)\) and \({\mathbf {c}}_1\) and \({\mathbf {c}}_2\) be their corresponding eigenvectors, i.e.,

$$\begin{aligned} {\mathbf {J}}({\mathbf {x}}_0)\cdot {\mathbf {c}}_i = \lambda _i \cdot {\mathbf {c}}_i \qquad \mathrm {for} \qquad i\in \{1,2\}. \end{aligned}$$
(5)

By convention, we will assume that the eigenvalues are sorted in ascending order by their real parts, i.e., \(Re(\lambda _1) \le Re(\lambda _2)\). The eigenvalues characterize the behavior of the flow around the critical point and the corresponding eigenvectors indicate the direction of this behavior [55, 56]. For instance, if both eigenvalues have a positive real part, then we observe outgoing flow (source). If, on the other hand, both eigenvalues have a negative real part, then the flow is ingoing (sink). If one real part is positive and the other is negative, then a saddle is present. Finally, if both real parts are zero, then there is neither inflow nor outflow. The imaginary part of a pair of complex-conjugate eigenvalues denotes the swirling strength [145]. If this part is zero, then there is no rotation. Figure 2 illustrates the possible configurations of a steady 2D vector field.

Fig. 2
figure 2

Types of critical points in 2D steady vector fields (based on [55]). \(Re(\lambda )\) denotes the real part of the eigenvalues \(\lambda _1\) and \(\lambda _2\), and \(Im(\lambda )\) the imaginary part. The presence of imaginary parts (bottom) relates to vortical behavior

Fig. 3
figure 3

Two examples of higher-order saddle critical points. Left, the co-gradient of a monkey saddle \({\mathbf {v}}(x,y)=(6xy,3x^2-3y^2)\) is shown, which has six hyperbolic sectors. Right, the field \({\mathbf {v}}(x,y)=(2x^2-2y^2,xy)\) is visualized which has two parabolic and two elliptic sectors

Higher-Order Critical Points. When extending the classification of critical points beyond first-order, isolated critical points can become degenerate, i.e., \(det({\mathbf {J}}({\mathbf {x}}_0))=0\). An example is shown in Fig. 3 (left), where the co-gradient vector field \({\mathbf {v}}(x,y) = (6xy,3x^2-3y^2)^{\mathrm {T}}\) of a monkey saddle is visualized. Further, saddle critical points can have more than four sectors, which either exhibit parabolic, hyperbolic or elliptic behavior in their vicinity [107]. A parabolic sector contains streamlines that enter the critical point in one direction and leave it in the other direction. In an elliptic sector, streamlines enter the critical points in forward and backward direction. Finally in hyperbolic sectors, streamlines leave the critical point in both forward and backward direction. The latter is the kind of sector that is present around first-order saddles. Figure 3 shows examples of all three types of sectors around two higher-order critical points. Weinkauf et al. [136] visualized the different sectors around higher-order critical points in 3D, and Tricoche et al. [124] merged 2D critical points into higher-order critical points in order to simplify a given vector field.

Existence of Critical Points. Under certain circumstances, selected types of critical points cannot exist. For instance, in divergence-free flows, sources and sinks will never occur. Conservative vector fields, i.e., vector fields that are equivalent to the gradient of a scalar field, are always rotation-free, since their Jacobian is a symmetric matrix, having real eigenvalues only. Higher-dimensional flows that describe the motion of finite-sized objects in fluids do not contain sources [36, 40] and time-dependent flows do not contain any critical points in space-time, since particles always move forward in time. We address the topology of time-dependent flows in a later section.

Extraction of Critical Points. The numerical extraction of first-order critical points requires a root-finding in all components of the vector field. Equivalently, this can be seen as the intersection of the zero-level isolines of each flow component. For monotonic interpolation schemes, i.e., in bilinear (2D) and trilinear (3D) vectors fields, Globus et al. [34] discarded candidate cells by checking the signs of the components at the cell corners. If all signs are either all positive or all negative, then the cell cannot contain a critical point due to the mean value theorem. The position of the critical point can be located by recursive subdivision of the cell. Care must be taken, since this numerical scheme may result in duplicates, which have to be removed in a post-process. After a certain number of recursive subdivisions, exact locations may also be found by the application of multi-variate Newton-Raphson iterations [34]:

$$\begin{aligned} {\mathbf {x}}_{i+1} = {\mathbf {x}}_i - \nabla {\mathbf {v}}({\mathbf {x}}_i)^{-1} \cdot {\mathbf {v}}({\mathbf {x}}_i) \end{aligned}$$
(6)

In practice, it is advisable to either use a QR factorization or the Moore-Penrose pseudoinverse of the Jacobian \(\nabla {\mathbf {v}}({\mathbf {x}})\) to avoid numerical issues in the matrix inversion. Using a singular value decomposition (SVD), \(\nabla {\mathbf {v}}({\mathbf {x}}_i) = {\mathbf {U}}{\boldsymbol{\Sigma }}{\mathbf {V}}^{\mathrm {T}}\), with \({\mathbf {U}}\) and \({\mathbf {V}}\) being orthonormal matrices and \({\boldsymbol{\Sigma }}\) being a diagonal matrix containing the singular values, the pseudoinverse is:

$$\begin{aligned} \nabla {\mathbf {v}}({\mathbf {x}}_i)^{+} = {\mathbf {V}}{\boldsymbol{\Sigma }}^{+} {\mathbf {U}}^{\mathrm {T}}\end{aligned}$$
(7)

where \({\boldsymbol{\Sigma }}^{+}\) contains the reciprocals of the non-zero singular values. We refer the interest reader to the text book of Press et al. [92] (page 61) for a detailed explanation and discussion of the SVD. Note that the Newton method finds only one solution and requires an initial guess \({\mathbf {x}}_0\), for instance the center of a cell found by the aforementioned recursive subdivision. At most one critical point can exist per simplex, i.e., a triangle (2D) or tetrahedron (3D), and its location can be found analytically by inverting the barycentric interpolation.

2.1.2 Poincaré Index

The Poincaré index is a characteristic number of a closed curve \(\gamma \) in a 2D steady vector field \({\mathbf {v}}=(u,v)^{\mathrm {T}}\) [3]. It is computed by integrating the winding angle of the velocity vector (counterclockwise rotation) as we integrate along the closed curve \(\gamma \) in counterclockwise direction [125].

$$\begin{aligned} \mathrm {index}_\gamma = \frac{1}{2\pi } \oint _\gamma {\mathrm {d}}\alpha , \quad \mathrm {with} \quad \alpha = \arctan \frac{v}{u} \end{aligned}$$
(8)

The index of the curve is always an integer number. By placing a closed curve \(\gamma \) around a critical point such that no other critical point is inside the closed curve, the Poincaré index is extended to critical points. For first-order critical points, we have index +1 for sinks, sources and centers, and index \(-1\) for saddles. If there are multiple critical points inside the closed curve \(\gamma \), the indices of the interior critical points add up to coincide with the index of the curve \(\gamma \). Thus, if no critical point is inside the area enclosed by the closed curve, the index is 0. For higher-order critical points, the Poincaré index is found by counting the number of elliptic sectors \(n_e\) and hyperbolic sectors \(n_h\):

$$\begin{aligned} \mathrm {index}_{cp} = 1 + \frac{n_e - n_h}{2} \end{aligned}$$
(9)

In linear vector fields, i.e., on triangular cells with barycentric interpolation, the index can be efficiently computed by accumulating the angle changes of the velocity vector along the three triangle edges [125], which can be used to efficiently test, whether a critical point exists inside the triangle. Scheuermann and Hagen [105] used this approach to check for critical points in neighboring triangles that may disappear after a diagonal flip.

Fig. 4
figure 4

Along open flow boundaries, the direction of in-flow and out-flow may change when walking along the boundary. These so-called boundary switch points are seeds of streamlines that are either in-bound (enter the domain) or out-bound (leave the domain)

2.1.3 Boundary Switch Points

In case of open flow boundaries, i.e., if the fluid flow can enter or exit through a domain boundary, boundary switch points may exist [73]. When traveling along the domain boundary of a 2D flow, we either observe in-flow or out-flow, and the behavior may switch at certain locations. In practice, these locations can be determined as points at which the flow component that is normal to the boundary is zero and the flow vector is parallel to the domain boundary. Depending on whether the streamline that passes through the boundary switch point is staying in the domain or is always outside the domain, we refer to the boundary switch point as in-bound or out-bound, respectively. The type can be inferred from the direction in which the acceleration is pointing. For in-bound boundary switches, the acceleration points into the domain and for out-bound boundary switches it points outwards. An example for both cases is shown in Fig. 4. A topology-based flow visualization often views the entire domain. However, engineers might only want to study a region of interest, for example when the data becomes too large. To this end, Scheuermann et al. [106] found the structural changes of the streamlines in the region of interest by performing a topological analysis of the boundary.

Fig. 5
figure 5

Examples of attachment and detachment points on closed boundaries

2.1.4 Attachment and Detachment Points

When a flow impinges directly on a wall it is forced to split left and right. The splitting point on the wall is called an attachment point [55], since in theory a single particle would get stuck on that location, whereas all other particles would slide left or right along the boundary. If the flow direction is reversed, this location is called a detachment point. See Fig. 5 for an example of both flow configurations. Both types of point are found in the same way. They are roots in the flow component that is tangential to the wall. Whenever a no-slip boundary condition is used, i.e., if the velocity on the wall is zero, the root finding test is taken an epsilon away from the boundary.

Fig. 6
figure 6

Separatrices originate from the aforementioned topological elements

2.1.5 Separatrices

The above subsections introduced distinguished points in the domain that are of topological relevance. All the above points are connected by streamlines, which are called separatrices. At saddle critical points, separatrices emanate in direction of the eigenvectors. To numerically calculate them, the seed point is taken an epsilon away from the critical point, \({\mathbf {x}}_0 \pm \epsilon \,{\mathbf {c}}_i\), in direction of the eigenvectors \({\mathbf {c}}_i\), and the streamlines are traced in forward or backward direction, depending on the sign of the eigenvalue \(\lambda _i\). For first-order critical points, four separatrices are connected to a saddle. In addition, we obtain two separatrices for in-bound boundary switch points and one separatrix for each attachment or detachment point. Figure 6 illustrates the separatrices that grow from saddle points, in-bound boundary switch points and attachment or detachment points. The net of separatrices spans the topological skeleton, which contains cells that are bounded by the separatrices. Each of the cells has the property that the origin and destination, i.e., the points reached in the limit by either forward or backward integration, are the same for all seed points within a cell. The topological skeleton was illustrated earlier in Fig. 1.

Fig. 7
figure 7

In 2D flows, isolated closed streamlines either act as sink or source on the surrounding vector field

2.1.6 Isolated Closed Streamlines

  The last remaining topological element are closed streamlines, which are streamlines that connect to themselves. These structures are also known as periodic orbits. Similar to critical points, closed streamlines can be isolated or not. Isolated closed streamlines are either found by locating fixed points of the Poincaré map [142] by intersecting forward and backward integrated stream surfaces in space-time [121] or by Morse decomposition [20]. Due to the Poincaré index theorem, every 2D closed streamline contains at least one sink, source or center critical point, which can be used to guide the search for closed streamlines. In 2D flows, isolated closed streamlines are either acting as sink or source on the surrounding flow, as illustrated in Fig. 7, which means that they are either attracting or repelling. They can therefore not exist in divergence-free flows. In a divergence-free flow, we can find plenty of non-isolated closed streamlines.

2.2 Three-Dimensional Flows

The topological skeleton of steady 3D vector fields contains several more types of elements. The concepts, however, are very similar to the 2D case. Formally, we are given a three-dimensional steady vector field \({\mathbf {v}}({\mathbf {x}}) : \mathbb {R}^3 \rightarrow \mathbb {R}^3\):

$$\begin{aligned} {\mathbf {v}}({\mathbf {x}}) = \begin{pmatrix} u(x,y,z) \\ v(x,y,z) \\ w(x,y,z) \end{pmatrix} \end{aligned}$$
(10)

with the spatial derivatives

$$\begin{aligned} \frac{\partial {\mathbf {v}}({\mathbf {x}})}{\partial {\mathbf {x}}} = \nabla {\mathbf {v}}({\mathbf {x}}) = {\mathbf {J}}({\mathbf {x}}) = \begin{pmatrix} \frac{\partial u(x,y,z)}{\partial x} &{} \frac{\partial u(x,y,z)}{\partial y} &{} \frac{\partial u(x,y,z)}{\partial z} \\ \frac{\partial v(x,y,z)}{\partial x} &{} \frac{\partial v(x,y,z)}{\partial y} &{} \frac{\partial v(x,y,z)}{\partial z} \\ \frac{\partial w(x,y,z)}{\partial x} &{} \frac{\partial w(x,y,z)}{\partial y} &{} \frac{\partial w(x,y,z)}{\partial z} \end{pmatrix} \end{aligned}$$
(11)

2.2.1 Critical Points

As in the 2D case, we call locations \({\mathbf {x}}_0\) at which the flow vanishes critical points of \({\mathbf {v}}({\mathbf {x}})\), i.e., \({\mathbf {v}}({\mathbf {x}}_0)={\mathbf {0}}\). As before, a first-order classification is done by an eigenanalysis of the Jacobian \({\mathbf {J}}({\mathbf {x}}) = \nabla {\mathbf {v}}({\mathbf {x}})\). Let \(\lambda _i\) be the eigenvalues corresponding to the eigenvectors \({\mathbf {c}}_i\), i.e., \({\mathbf {J}}({\mathbf {x}})\cdot {\mathbf {c}}_i = \lambda _i\cdot {\mathbf {c}}_i\) for \(i\in \{1,2,3\}\). We distinguish the following types of first-order critical points based on the real-part of the eigenvalues:

$$\begin{aligned} \mathrm {source}{:}&~0 < Re(\lambda _1) \le Re(\lambda _2) \le Re(\lambda _3) \end{aligned}$$
(12)
$$\begin{aligned} \mathrm {repelling\,\,saddle}{:}&~ Re(\lambda _1)< 0 < Re(\lambda _2) \le Re(\lambda _3) \end{aligned}$$
(13)
$$\begin{aligned} \mathrm {attracting\,\,saddle}{:}&~ Re(\lambda _1) \le Re(\lambda _2)< 0 < Re(\lambda _3) \end{aligned}$$
(14)
$$\begin{aligned} \mathrm {sink}{:}&~ Re(\lambda _1) \le Re(\lambda _2) \le Re(\lambda _3) < 0 \end{aligned}$$
(15)

Figure 8 illustrates the different types. Note that there are two types of saddles in 3D, which are categorized based on their dominant behavior into attracting or repelling saddles. Each of the four cases above can be further subdivided by considering the imaginary parts of the eigenvalues:

$$\begin{aligned} \mathrm {Focus}{:}&~ Im(\lambda _1) = 0 \qquad \mathrm {and}\qquad Im(\lambda _2) = -Im(\lambda _3) \ne 0 \end{aligned}$$
(16)
$$\begin{aligned} \mathrm {Node}{:}&~ Im(\lambda _1) = Im(\lambda _2) = Im (\lambda _3) = 0 \end{aligned}$$
(17)

Without loss of generality we assumed \(\lambda _1\) to be real-valued eigenvalue in the focus classification. Note that either none or two eigenvalues will have imaginary parts, since complex eigenvalues always appear in pairs of complex-conjugates. In case of complex eigenvalues, the rotation occurs in a plane, which is spanned by the real and imaginary parts of the corresponding complex-conjugate eigenvectors. This plane is also referred to as the swirling plane.

Fig. 8
figure 8

Types of critical points in 3D steady vector fields

Fig. 9
figure 9

On open flow boundaries, there are curves that separate regions of in-flow and out-flow. Segments of the curves are classified based on the behavior of streamlines seeded from them. Curve points at which the behavior switches are called in-out points (green)

2.2.2 Boundary Switch Curves

In 3D domains, the boundary is represented by 2D surfaces. On these surfaces, the flow either enters or exits the domain. A line that separates these two behaviors is called a boundary switch curve [135]. It consists of all location \({\mathbf {x}}\) at which \({\mathbf {v}}({\mathbf {x}})\) is parallel to the tangent plane of the domain boundary. Figure 9 shows the possible configurations.

As we travel along a boundary switch curve, we can observe the behavior of streamlines passing through. Line sectors along which a passing streamline remains in the domain are called in-bound sectors. Equivalently, these are points at which the acceleration \({\mathbf {a}}={\mathbf {J}}{\mathbf {v}}\) points into the domain. Conversely, if the streamline remains outside of the domain, the point is part of an out-bound sector. Here, the acceleration \({\mathbf {a}}= {\mathbf {J}}{\mathbf {v}}\) points out of the domain. Locations at which the behavior switches from in-bound to out-bound are called in-out points. In piecewise bilinear vector fields, i.e., if the vector field is given on a regular grid and is interpolated bilinearly, boundary switch curves are either straight line segments on the boundaries of the piecewise linear fields, or they are hyperbolas inside of the piecewise bilinear fields. Figure 9d gives an example.

2.2.3 Attachment and Detachment Points

Similar to the 2D flow, attachment and detachment points occur on boundaries and obstacles. In the analysis of fluid flows, we are not only interested in the particular points, but also on the behavior of nearby particles. For instance, the attaching or detaching lines might be swirling and have more or less temporally-coherent behavior. Wiebel et al. [140] detected vortices that detach from a boundary by tracking critical points in the wall shear stress vector field and continuously releasing particles from the critical points, which assembles so-called generalized streaklines that show the swirling behavior. Nsonga et al. [80] developed an algorithm to extract the regions around attachment and detachment points, which are referred to as splats and antisplats. In the analysis of meteorological flows around mountains, scientists are interested in a characteristic number that distinguises whether a stratified air flow goes over or around a mountain. To decide this, meteorologists use the Froude number [54, 74], which was adapted from naval architecture.

2.2.4 Separatrices

In Sect. 2.2.1, we have seen that there are two types of saddles in 3D steady vector fields: repelling saddles (two positive real parts) and attracting saddles (two negative real parts). Starting an epsilon neighborhood away from the critical point, separatrices grow out in the direction of the eigenvectors. Two of the three eigenvalues have equal sign. Their corresponding eigenvectors span a surface from which a separating surface is growing, as illustrated in Fig. 10. A stream surface can be thought of as the union of infinitely many streamlines that were seeded along a seeding curve. In our case, the seeding curve lies in the plane spanned by the eigenvectors. We refer to Schneider et al. [109] for a stream surface extraction algorithm that adapts the refinement to the presence of critical points. Alternatively, Wiebel et al. [139] investigated the extraction of separatrices using suitable cross sections of the flow. The remaining eigenvalue with opposite sign emanates a streamline in direction of the eigenvector, which is referred to as virtual separatrix [1], as it does not truly separate space. In addition, separating surfaces grow from in-bound boundary switch curves. Aside from the pure geometric extraction of separating surfaces, illustrative techniques have been investigated [14] to produce informative surface visualizations that were inspired by the early work of Dallmann [23].

Fig. 10
figure 10

Separating surfaces growing out from an attracting and a repelling saddle. The remaining eigenvector direction points in the direction of a virtual separatrix

Fig. 11
figure 11

Forward and backward-integrated separating surfaces can be intersected, giving saddle connectors [120]. Here, the saddles (left), their separatring surfaces (middle) and the intersection (right) are shown

2.2.5 Saddle Connectors and Boundary Switch Connectors

The visualization of separating surfaces becomes cluttered very quickly, since the separating surfaces may occlude each other on the screen. The picture can be simplified considerably by intersecting forward-integrated and backward-integrated separating surfaces, as shown in Fig. 11. The intersecting curve is called a saddle connector [120], which is a single streamline that connects the two saddles. Saddle connectors are found by intersecting the separating surfaces of saddles and also by intersecting the separating surfaces growing from boundary switch curves. The latter gives rise to boundary switch connectors [135], as shown in Fig. 12. Boundary switch connectors arise from connection with saddles, from connection with other boundary switch curves or even by self-connection to themselves.

Fig. 12
figure 12

Boundary switch connectors arise when separating surfaces of saddles and boundary switch curves are intersected [135]. Here, the different configurations are shown

2.2.6 Isolated Closed Streamlines

Isolated closed streamlines are theoretically well-understood and studied for general dynamical systems [143]. In 3D, closed streamlines can act as sink, source, center or saddle [63]. The notion of isolated closed streamlines that locally act as centers or saddles leads us to the feature curves that are described next.

All the above elements are considered topological elements, and are therefore part of the topological skeleton. In the following, we introduce two feature curves that are closely related to topology as they also order the flow.

2.2.7 Vortex Corelines

The first feature curve are vortex corelines. These are segments of streamlines that other streamlines rotate around, see Fig. 13a. Globus et al. [34] identified them as virtual separatrices growing out from focus saddle points, by tracing them in the direction of the eigenvector with corresponding real eigenvalue. For steady vector fields, Sujudi and Haimes [115] proposed the reduced velocity criterion:

$$\begin{aligned} {\mathbf {v}}- ({\mathbf {v}}^{\mathrm {T}}{\mathbf {e}}) {\mathbf {e}}= {\mathbf {0}}\end{aligned}$$
(18)
Fig. 13
figure 13

In 3D flows, two types of feature curves are often of interest: vortex corelines (green) and bifurcation lines (yellow)

This criterion identifies locations at which the flow \({\mathbf {v}}\) flows in the direction of the eigenvector \({\mathbf {e}}\) with corresponding real eigenvalue. Since the Jacobian is also requested to have complex eigenvalues, the criterion makes sure that the projection of the flow vector onto the swirling plane gives zero. The criterion was applied in practice in various situations [31, 65]. Peikert and Roth [85] reformulated this criterion into the parallel vectors form:

$$\begin{aligned} {\mathbf {v}}\parallel {\mathbf {J}}{\mathbf {v}}\quad \Leftrightarrow \quad {\mathbf {v}}\times {\mathbf {J}}{\mathbf {v}}= {\mathbf {0}} \end{aligned}$$
(19)

with the condition that two eigenvalues of \({\mathbf {J}}\) are complex. Two vector fields are parallel if their cross product is zero, which turns the extraction into a component-wise root-finding problem. We refer to Peikert and Roth for more details on the numerical extraction of parallel vectors solutions [85]. As shown by Roth and Peikert [97], this criterion assumes that the curvature of the resulting coreline is zero. The curvature of a continuous 3D curve is calculated using curve tangent \(\dot{\mathbf {x}}(t)=\frac{{\mathrm {d}}{\mathbf {x}}(t)}{{\mathrm {d}}t}\) and acceleration \(\ddot{\mathbf {x}}(t)=\frac{{\mathrm {d}}^2 {\mathbf {x}}(t)}{{\mathrm {d}}t^2}\):

$$\begin{aligned} \kappa ({\mathbf {x}}(t)) = \frac{\dot{\mathbf {x}}(t) \times \ddot{\mathbf {x}}(t)}{\Vert \dot{\mathbf {x}}(t)\Vert ^3} \end{aligned}$$
(20)

Since streamlines are tangent curves of the vector field \({\mathbf {v}}({\mathbf {x}})\), we have \(\dot{\mathbf {x}}(t)={\mathbf {v}}({\mathbf {x}}(t))\) and \(\ddot{\mathbf {x}}(t)={\mathbf {J}}({\mathbf {x}}(t)) \cdot {\mathbf {v}}({\mathbf {x}}(t))\). Thus, with Eq. (19), the curvature in Eq. (20) evaluates to zero.

In generalization, Roth and Peikert [97] introduced a criterion for bent vortex corelines as \({\mathbf {v}}\parallel (\nabla {\mathbf {a}}){\mathbf {v}}\), which assumes that corelines have zero torsion. We refer to Günther and Theisel [42] for an overview of vortex extraction methods, including density-based methods [138], extremum lines [102, 103], and integration-based methods [7].

2.2.8 Bifurcation Lines

Bifurcation lines differ from vortex corelines in one aspect: instead of complex eigenvalues, we need to have saddle-like behavior in the plane that is spanned by the two eigenvectors that are not parallel to the flow [87, 96]. In consequence, all eigenvalues are real-valued. Bifurcation lines of a 3D steady flow are illustrated in Fig. 13b. In the fluid dynamics literature, these feature curves are also known as hyperbolic trajectories [47]. We discuss the recent definitions and extraction algorithms for time-dependent flows later.

2.2.9 Invariant Manifolds

In an n-dimensional vector field \({\mathbf {v}}({\mathbf {x}}) : \mathbb {R}^n \rightarrow \mathbb {R}^n\) sets of locations may exist that particles will never leave during advection. Formally, we can say that any point \({\mathbf {x}}_0 \in S\) of such an invariant set \(S \subset \mathbb {R}^n\) remains in S, i.e., \({\mathbf {x}}_0 + \int _{0}^{\tau } {\mathbf {v}}({\mathbf {x}}(t)) \; dt \in S\) for any \(\tau \). If the set S is a manifold in the domain, the structure is called an invariant manifold. Invariant manifolds are an essential building block of the steady vector field topology. Every critical point, every closed orbit and every separatrix is an invariant manifold. Strictly speaking, every trajectory is an invariant manifold, too, which is why being an invariant manifold is only a necessary condition for a topological element. Under this definition, bifurcation lines and vortex corelines are not topological elements, since particles can flow out of a vortex coreline or a bifurcation line, especially when a specific criterion has to be fulfilled, such as the presence of swirling behavior or a sectional separation. For this reason, vortex corelines and bifurcation lines are usually considered to be feature curves.

2.3 Remarks

As the name suggests, differential vector field topology requires that the vector field is differentiable. In practice, however, a different vector field discretization, noise in the data or numerical integration errors during streamline integration will influence the result. To address these issues, alternatives have been explored, including discrete vector field topology [21, 22] and combinatorial vector field topology [26, 93, 94]. In this overview, we concentrated on the continuous approaches, i.e., differential vector field topology. However, we encourage the interested reader to explore the discrete and combinatorial approaches as well. All methods in the previous sections were designed for steady vector fields. In the following, we cover the topology of time-dependent flows.

3 Unsteady Flows

The previous section assumed that the vector field is not changing over time. In practice, however, vector fields are often time-dependent. As shown by Theisel et al. [122], the topology of time-dependent vector fields can be analyzed from two different angles: by studying streamlines or by studying pathlines. To start with, we look at the difference between a streamline and a pathline. For this, let \({\mathbf {v}}(x,y,t)\) be a time-dependent vector field:

$$\begin{aligned} {\mathbf {v}}(x,y,t) = \begin{pmatrix} u(x,y,t) \\ v(x,y,t) \end{pmatrix} \end{aligned}$$
(21)

When freezing the vector field in time, i.e., if we only consider the trajectory of a particle in one single time slice at time \(t_0\), we obtain a streamline \({\mathbf {x}}(\tau )\):

$$\begin{aligned} \mathrm {streamline}{:} \qquad \frac{{\mathrm {d}}{\mathbf {x}}(\tau )}{{\mathrm {d}}\tau } = {\mathbf {v}}({\mathbf {x}}(\tau ), t_0) \qquad {\mathbf {x}}(0) = {\mathbf {x}}_0 \end{aligned}$$
(22)

where \({\mathbf {x}}_0\) is the seed point. Such a trajectory marks the instantaneous path of a particle, which is more relevant for the study of magnetic field lines. In fluid flow analysis, we are concerned with the trajectory of a particle over a continuously advancing time:

$$\begin{aligned} \mathrm {pathline}{:} \qquad \frac{{\mathrm {d}}{\mathbf {x}}(t)}{{\mathrm {d}}t} = {\mathbf {v}}({\mathbf {x}}(t), t) \qquad {\mathbf {x}}(t_0) = {\mathbf {x}}_0 \end{aligned}$$
(23)

Here, \({\mathbf {x}}_0\) and \(t_0\) are the seed position and seed time, respectively. The latter ODE is not autonomous, since it depends on time t, which is not a state variable of the dynamical system. In other words, the numerical particle integrator needs additional information to sample the correct time slice. However, we can turn the definition of the tangent curves into autonomous first-order ODEs by making time an explicit state variable. To do so, we lift the vector field one dimension up for which we have two options:

$$\begin{aligned} \overline{{\mathbf {s}}}(x,y,t)&= \begin{pmatrix} u(x,y,t) \\ v(x,y,t) \\ 0 \end{pmatrix}&\overline{{\mathbf {p}}}(x,y,t)&= \begin{pmatrix} u(x,y,t) \\ v(x,y,t) \\ 1 \end{pmatrix} \end{aligned}$$
(24)

The vector field \(\overline{{\mathbf {s}}}\) is called streamline vector field, since its tangent curves are streamlines of \({\mathbf {v}}({\mathbf {x}},t)\). Since the last component of \(\overline{{\mathbf {s}}}\) is zero, the time will not change during particle integration, i.e., we obtain streamlines. On the other hand, the vector field \(\overline{{\mathbf {p}}}\) is called the pathline vector field, since its tangent curves are pathlines of \({\mathbf {v}}({\mathbf {x}},t)\). Here, the last components is one, which causes the time to flow forward at the correct step size, as we numerically integrate the trajectory. On a side note, other characteristic curves such as streaklines and timelines can similarly be expressed as tangent curves of lifted vector fields [132, 134].

Note that neither \(\overline{{\mathbf {s}}}\) not \(\overline{{\mathbf {p}}}\) have isolated critical points. The vector field \(\overline{{\mathbf {s}}}\) contains critical lines, i.e., paths of critical points in space-time, and vector field \(\overline{{\mathbf {p}}}\) contains no critical points at all, since the last component is always unequal to zero.

3.1 Streamline-Oriented Topology

Streamline-oriented topology is concerned with the changes in the asymptotic behavior of streamlines, when the vector field changes over time. Essentially, this means that we observe how the topological skeleton is evolving. In the following, we discuss the possible events in unsteady 2D vector fields. We refer to Tricoche et al. [126] and Theisel et al. [122] for more details. The last section will explain the differences for 3D unsteady vector fields.

Fig. 14
figure 14

When critical points change their type, a Hopf bifurcation is present. Here, an attracting focus (blue) turns into a repelling focus (red) by transitioning through a center (green)

3.1.1 Fold Bifurcations

  Fold bifurcations occur when two critical points collapse or appear. This will always happen in pairs of critical points. Governed by the Poincaré index theorem, the only possibility is for saddles (index \(-1\)) to merge with either a sink, source or center (index \(+1\)). Conversely, two critical points will always appear together in pairs. In 2D flows, it is never possible for sinks to collapse with sources. Fold bifurcations can be found as critical points in the space-time domain of the vector field:

$$\begin{aligned} \begin{pmatrix} u(x,y,z) \\ v(x,y,z) \\ det({\mathbf {J}}(x,y,z)) \end{pmatrix} = {\mathbf {0}}\end{aligned}$$
(25)

The last component of this vector field contains the determinant of the Jacobian. In the event of two critical points merging, the two critical points are no longer isolated, due to the presence of the other point, i.e., the determinant briefly vanishes to zero. An example of a fold bifurcation is shown later in a space-time visualization in Fig. 16.

3.1.2 Hopf Bifurcation

A Hopf bifurcation is the change in the type of a critical point. Thereby, a repelling focus may turn into an attracting focus via briefly transitioning through a center, as illustrated in Fig. 14. Alternatively, an attracting focus may turn into a repelling focus via a center. In the space-time domain, these locations are found as critical points of the vector field:

$$\begin{aligned} \begin{pmatrix} u(x,y,z) \\ v(x,y,z) \\ u_x(x,y,t) + v_y(x,y,t) \end{pmatrix} = {\mathbf {0}}\end{aligned}$$
(26)

where the last component is the divergence of the flow, which is zero for the center configuration that is briefly visited when transitioning from an attracting focus to a repelling focus or vice versa.

Fig. 15
figure 15

When separatrices connect saddle points, we obtain heteroclinic (two different saddles) or homoclinic (same saddle) saddle connectors. Homoclinic saddle connectors occur when the enclosed critical point undergoes a Hopf bifurcation. The illustrations above show three time steps of time-dependent vector fields that contain such bifurcations

Fig. 16
figure 16

Space-time visualization of a Hopf bifurcation (critical point changes type) and a fold bifurcation (two critical points merge). The paths of critical points are color-coded based on the type of the critical point (attracting is blue, repelling is red, saddle is yellow). The vertical axis of the 3D domain represents the time axis

3.1.3 Saddle Connection

Usually, the probability for a streamline to directly enter a saddle is zero. However, whenever two saddles slide past each other, there is a brief moment in time, when the separatrices of the two saddles meet, as illustrated in Fig. 15a. This brief connection is called a heteroclinic saddle connection. There is also a special case called a homoclinic saddle connection, which is sometimes also referred to as periodic blue sky bifurcation. In this case, the separatrix of a saddle connects back to the same saddle, as shown in Fig. 15b. This usually happens if the area that is enclosed by the self-connecting separatrix contains a critical point that undergoes a Hopf bifurcation. All types of saddle connections are momentary events, which can be found by intersecting the forward and backward integrated separating surfaces, as described by Theisel et al. [120].

3.1.4 Cyclic Fold Bifurcations

Previously, we have seen another type of topological structure: isolated closed streamlines. Two isolated closed streamlines may collapse onto each other, letting both of them disappear. This event is referred to as a cyclic fold bifurcation. Conversely, the isolated closed streamlines may be created together. Both kinds of events are either found by tracking closed streamlines through adjacent time slices [126] or by searching for adjacent curves in space-time [122].

3.1.5 Space-Time Visualizations

The changes of the topological skeleton in 2D time-dependent flows are best shown in 2D space-time by mapping time to the third dimension. The paths of critical points appear as curves. Hopf bifurcations are points on the curves, as shown in Fig. 16 and Fold bifurcations are the junctions at which curves meet. Starting from saddles, separating surfaces can be grown. We refer to Theisel et al. [122] for examples.

3.1.6 Streamline-Oriented Topology in 3D

Most of the previous bifurcation events carry over to the 3D case. Fold bifurcations are similar to the 2D case. Hopf bifurcations include transitions from sources to attracting saddles (and vice versa), or from sinks to repelling saddles (and vice versa). Saddle connections connect a single separatrix of one saddle to the separating surface of another saddle. Saddle connectors and boundary switch connectors can also collapse and disappear, which is a called a connector fold bifurcation. We refer the reader to the work of Weinkauf [131] for a more elaborate explanation of streamline-oriented topology in 3D.

3.2 Pathline-Oriented Topology

In the previous section, we visualized how streamlines are changing when a vector field is evolving over time. The observation of streamlines, however, is not particularly meaningful, when we want to assess the behavior of particles over time. In this case, we are rather interested in the observation of pathlines. There is, however, an inherent problem. While the streamline-oriented topology could trace particles in the time slice for an infinite amount of time, enabling an asymptotic observation of the flow, a pathline-oriented topology, is limited in the integration duration by the temporal domain of the data set. Unless the flow is periodic, we cannot study asymptotic behavior. In fact, not even critical points exist in the lifted vector field \(\overline{{\mathbf {p}}}\) in Eq. (24), since the last component is always non-zero. In the absence of an asymptotic picture of the flow, we will fall back to a finite-time description of the behavior, which requires a formal definition of flow maps.

3.2.1 Flow Maps

In a time-dependent vector field \({\mathbf {v}}({\mathbf {x}},t)\), we use the flow map \(\phi _{t_0}^\tau ({\mathbf {x}}_0)\), which maps a particle that was seeded at position \({\mathbf {x}}_0\) and at time \(t_0\) to the location that it reaches after an integration in \({\mathbf {v}}({\mathbf {x}},t)\) for a given duration \(\tau \):

$$\begin{aligned} \phi _{t_0}^\tau ({\mathbf {x}}_0) = {\mathbf {x}}_0 + \int _{t_0}^{t_0+\tau } {\mathbf {v}}({\mathbf {x}}(t),t) \; dt, \quad \mathrm {with} \quad {\mathbf {x}}(t_0)={\mathbf {x}}_0 \end{aligned}$$
(27)

The flow map has a number of useful properties, such as:

$$\begin{aligned} \phi _t^0({\mathbf {x}})&= {\mathbf {x}}\end{aligned}$$
(28)
$$\begin{aligned} \frac{{\mathrm {d}}\phi _t^\tau ({\mathbf {x}})}{{\mathrm {d}}\tau }&= {\mathbf {v}}(\phi _t^\tau ({\mathbf {x}}), t_0+\tau ) \end{aligned}$$
(29)
$$\begin{aligned} \phi _{t_0}^{\tau _1 + \tau _2}({\mathbf {x}})&= \phi _{t_0 + \tau _1}^{\tau _2} (\phi _{t_0}^{\tau _1}({\mathbf {x}})) \end{aligned}$$
(30)
$$\begin{aligned} \phi _{t+\tau }^{-\tau }(\phi _t^\tau ({\mathbf {x}}))&= {\mathbf {x}} \end{aligned}$$
(31)

Equation (28) expresses the identity flow map, where a particle is traced for duration \(\tau =0\), i.e., it stays at its seed point. Equation (29) states that the derivative of the flow map with respect to the integration duration is exactly the flow direction at the end point of the flow map, which is fulfilled, since the flow map follows the trajectory of a pathline. Equation (30) shows that two flow maps can be concatenated. In practice, the flow maps are discretized, which leads to discretization errors upon concatenation [19]. And finally, Eq. (31) means that the flow map is invertible. Flow maps are an essential building block of many feature definitions, including recirculations [141] and Lagrangian coherent structures (LCS) [49], which are described in the following.

Fig. 17
figure 17

Overview of the different types of Lagrangian coherent structures (LCS) [49]. a shows vortices in the wake of Heard Island. The line structures that separate the vortices are the hyperbolic LCS. The image was released by NASA and was captured with the MODIS instrument aboard their Aqua satellite. b depicts ocean eddies, which carry plankton and pollutants across the ocean. These flow structures can persist for weeks. The image was released by the National Science Foundation and is credited to NASA. c shows a jet stream, which is a fast moving and narrow air current. In this image, it carries cirrus clouds vertically across the image. The cloud band has a distinct pattern that is created by the air current. This image is in public domain

3.2.2 Lagrangian Coherent Structures

Based on the flow map of the previous section, we can now express particle behavior that unfolds during a certain finite time range. Similar to separatrices in the previous section, we are interested in sets of particles that order the flow into regions of coherent behavior. This leads us to the definition of material lines. There are three types of material lines, which have been summarized recently by Haller [49]. We refer to Onu et al. [82] for a discussion of various LCS extraction techniques. An overview of the three types is given in Fig. 17.

Fig. 18
figure 18

Hyperbolic LCS are frequently approximated by the finite-time Lyapunov exponent (FTLE). Forward FTLE approximates repelling structures and backward FTLE approximates attracting structures. Left, we see the fluid flow past a heated cylinder and right, we see a close-up of a cumulus cloud convection simulation

Hyperbolic LCS are material lines that attract or repel locally the strongest. These lines act as transport barriers that particles do not cross. The lines are either attracting nearby particles or they are repelling them away. A common measure to approximate hyperbolic LCS is through the finite-time Lyapunov exponent (FTLE). FTLE linearly approximates the expansion of a virtual sphere by measuring the maximal separation of nearby-released particles. The expansion rate is captured by the right-hand Cauchy-Green tensor \(\nabla \phi ^{\mathrm {T}}\nabla \phi \), where \(\phi \) is the aforementioned flow map. With \(\tau \) being the integration duration, FTLE is defined as, c.f. Shadden [112]:

$$\begin{aligned} \mathrm {FTLE} = \frac{1}{|\tau |} \ln \sqrt{\lambda _{\max }(\nabla \phi ^{\mathrm {T}}\nabla \phi )} \end{aligned}$$
(32)

The flow map gradient is typically calculated by finite differences [52]. Alternatively, Kasten et al. [62] proposed localized FTLE, which linearizes the flow at each step to measure and concatenate the rate of expansion. To obtain hyperbolic LCS at subgrid accuracy and to avoid the numerical computation of flow map derivatives, Kuhn et al. [69] tracked timeline cells over time, which are adaptively refined whenever the timeline segments intersect. A benchmark comparison of multiple FTLE extraction algorithms was performed by Kuhn et al. [70]. To reduce the number of redundant particle integrations and to thereby improve performance, Brunton and Rowley [15] concatenated flow maps. Garth et al. [30] accelerated the computation and later limited the visualization of FTLE to boundaries in the flow to reduce clutter [33]. Sadlo et al. [98] and Barakat et al. [9] adaptively refined the flow maps. Barakat et al. [8] developed an interactive computation and rendering framework for unsteady 3D flows, in which the FTLE values are stored in a view-dependent and adaptively refined sparse grid. To avoid discretization artifacts entirely, Monte Carlo methods have been used [5, 38], which invoke exact FTLE calculations at each volume sample of a Monte Carlo renderer. Compared to the previous methods, this approach is far from interactive speed, but it is able to generate a ground truth image that can serve as baseline. Examples of FTLE visualizations are shown in Fig. 18. Haller introduced hyperbolic trajectories [47], which are trajectories that experience in one spatial direction repelling behavior and in the other attracting behavior in the locally strongest way.  Based on this concept, Sadlo and Weiskopf [99] defined time-dependent saddles as the intersection of forward and backward FTLE ridges, which was later extended by Üffinger et al. [129] to 3D. This approach requires the computation of the finite-time Lyapunov exponent in the entire domain in order to find the ridge intersections, which is an expensive computation. For this reason, Hofmann and Sadlo [59] developed a refinement scheme that is applied to an initial guess that was computed locally [6, 78]. Thereby, the extraction time of distinguished hyperbolic trajectories [61], i.e., hyperbolic LCS, is greatly reduced. Bujack et al. [16] recently discussed different options to calculate the separating and repelling behavior in finite time windows. The above methods were developed for continuous vector fields. For scenarios, in which the velocity field is represented in a particle-based manner, Agranovsky et al. [2] and Shi et al. [113] developed FTLE extraction algorithms from particle data.

Elliptic LCS are lines that bound regions that rotate coherently [50] or do not stretch much during advection. The latter is expressed more formally as curves across which the averaged material stretching rate shows no leading-order variability [110]. In incompressible 2D flows, these lines preserve arc length and surface area. These structures are tightly related to vortex identification [42], in particular to vortex boundaries. For instance, Haller [49] selects the outermost nested elliptic LCS as boundary of a coherent vortex. More recently, Katsanoulis et al. [64] characterized elliptic LCS as lines that inhibit the diffusion of vorticity. For a summary of more vortex identification methods we refer to Günther and Theisel [42].

Parabolic LCS are transport barriers along which the material shearing is minimized, which corresponds to the cores of jets. Since these structures are embedded inside non-stretching structures, their stretching is also low. Farazmand and Haller [24] defined them as minimally hyperbolic, structurally stable chains of tensorlines that connect singularities of the Cauchy–Green strain tensor field. In the visualization community, jets in atmospheric flows have been identified as lines with maximal velocity magnitude [66] in a local coordinate frame that is aligned with the flow direction.

3.2.3 Coherent Sets and Almost-Invariant Sets

Dynamical systems are classified into autonomous or non-autonomous systems based on whether they depend on an independent variable, such as time. In autonomous systems, regions of the domain that resist mixing over a finite-time duration are referred to as almost-invariant sets. In time-dependent systems, these regions are known as coherent sets. Coherent sets can be seen as counterpart to LCS, since LCS divide the domain into regions of coherent transport behavior. Froyland and Padberg-Gehle [27] recently introduced tracking algorithms for those regions.

3.2.4 Local Approaches

All previous methods define the vector field topology of time-dependent flows by means of particle behavior over a finite time window. A number of methods investigated the reduction of the time-dependent flow to a steady flow by estimating a transport component. Weinkauf et al. [133] demonstrated that a constant flow vector can be subtracted from a von-Kármán vortex street to approximately eliminate a linear transport. This works well in most parts of the domain, aside from the region right behind the obstacle, in which the vortices accelerate. Fuchs et al. [28] located points at which the acceleration vanishes and removed the velocity at those locations. Similarly, Bujack et al. [17] used the determinant of the Jacobian to pin down the flow features. Bhatia et al. [12] removed a harmonic flow component using a Helmholtz-Hodge decomposition (HHD). The HHD splits the flow into a divergence-free and an irrotational part. In case the domain is bounded or not simply-connected, a harmonic component can appear, which is both divergence-free and irrotational. Bhatia et al. [12] proposed to model the ambient motion of the flow features by the harmonic component. Following up on research on reference frame optimization [37, 46] for vortex extraction, Baeza Rojo and Günther [6] observed topological elements in a spatially-varying reference frame, in which the flow becomes steady. The latter connects to a formal property that is highly relevant for flow feature extraction in time-dependent flow, i.e., reference frame invariance. Section 4 explains this concept in more detail.

3.2.5 Desirable Properties

Recently, Bujack et al. [18] collected the most commonly-used mathematical properties that an approach for a time-dependent vector field topology should enjoy. Reciting Bujack et al., these properties are:

Coincidence With the Steady Flow Topology. A method that was designed for time-dependent flow should contain the standard steady vector field topology as special case, when it is applied to a steady flow [90].

Induction of a Partition of the Domain. The unsteady counterpart to the topological skeleton should divide the domain into regions of coherent temporal behavior. This means, there are material boundaries that order the flow [90].

Lagrangian Invariance. A common measure for the physical meaningfulness of a time-dependent topology is the requirement that all topological structures are invariant manifolds of the flow [28, 49]. This means that the path of a time-dependent critical point becomes a pathline, and that separatrices become material lines or surfaces that are advected with the flow.

Reference Frame Invariance. The result should be the same, independent of the choice of the reference frame [45]. In the following section, we introduce reference frame transformations and the classes of invariance that are commonly desired.

Bujack et al. [18] reviewed the mathematical properties of many of the existing extraction algorithms, using carefully-crafted benchmarks and proofs. To this day, there is no algorithm that fulfills all desirable properties.

4 Concepts

In the following, we introduce a number of concepts that are important in the ongoing research on a time-dependent vector field topology.

4.1 Reference Frame Transformation

A desirable property for any feature definition is its invariance to the motion of the observer. First of all, this requires a formal definition of reference frame motion. Recently, Baeza Rojo and Günther [6] used displacement transformations to describe the motion of the observer, which originates from continuum mechanics [111]. They used a displacement vector field \({\mathbf {F}}({\mathbf {x}}, t)\), which moves a space-time point \(({\mathbf {x}}, t)\) to its destination \(({\mathbf {x}}^*, t)\) via

$$\begin{aligned} {\mathbf {x}}^*= {\mathbf {x}}+ {\mathbf {F}}({\mathbf {x}}, t) \end{aligned}$$
(33)

Thereby, \({\mathbf {F}}\) is an invertible transformation that maps between two differential spaces, i.e., \({\mathbf {F}}\) is a diffeomorphism. By differentiation with respect to time, we see that a given vector field \({\mathbf {v}}({\mathbf {x}}, t)\) is transformed to \({\mathbf {v}}^*({\mathbf {x}}^*, t)\) via:

$$\begin{aligned} {\mathbf {v}}^*({\mathbf {x}}^*, t) = [{\mathbf {I}}+\nabla {\mathbf {F}}({\mathbf {x}}, t)] \cdot {\mathbf {v}}({\mathbf {x}}, t) + {\mathbf {F}}_t ({\mathbf {x}}, t) \end{aligned}$$
(34)

It is interesting to note that other existing classes of reference frame transformations, such as Galilean transformations [133] (equal-speed translations), objective transformations [37, 48, 128] (smooth rotation and translation) and affine transformations [41] are all included as special cases.

4.2 Reference Frame Invariance

Fig. 19
figure 19

Three observers see the same vector field from different reference frames. Here, a line integral convolution (time slice) and pathlines (black) are shown for three different reference frame movements: standing still, linearly translating and swinging along a sine curve–unfortunately, all give different results. Only the observer in the middle sees vortex structure. However, moving the observer a little bit faster of slower, would show the flow structures in a different location. Illustration from [37]

Fig. 20
figure 20

The observed vector field is the combination of the feature (blue) and its motion of the feature (red). In a, the flow is observed from a steady frame of reference. We see a closed streamline (blue). In b, the observer is moving to the right (red arrow), which creates an apparent opposite motion of the vortex. What the observer sees is the superposition of the red and blue vector, resulting in the purple vector. Note that the purple vectors no longer point along a closed streamline (right-most image). If we can estimate the ambient motion (red), it can be removed to reveal the original feature (blue)

In flow visualization, reference frame invariance has first been studied in the context of flow feature extraction, namely for the detection of vortices. Whenever an observer sees a vector-valued property, this vector will change with the movement of the observer. An example of this reference frame dependence is shown in Fig. 19. Here, three different observers look at the same flow, each seeing different flow patterns. This is because the motion of the observer and the flow feature add up, as illustrated in Fig. 20. Choosing the right reference, i.e., estimating the motion of the feature correctly, is quite important for the successful characterization of a vortex [77, 95]. Feature definitions can be classified based on the class of invariance they possess. The two most common reference frame invariances are the following.

Galilean invariance is the invariance of a measure under equal-speed translations of the reference frame of the form:

$$\begin{aligned} {\mathbf {x}}^{*} = {\mathbf {x}}+ {\mathbf {c}}_0 + t \; {\mathbf {c}}_1 ,\;\;\; t^{*} = t - a \end{aligned}$$
(35)

where \({\mathbf {c}}_0\) and \({\mathbf {c}}_1\) are constant vectors and a is a constant. Every measure that is derived from the Jacobian \({\mathbf {J}}\) of the vector field is Galilean invariant. There are only few measures that are Galilean invariant and include temporal derivatives, for instance the acceleration \({\mathbf {a}}= {\mathbf {J}}{\mathbf {v}}+ {\mathbf {v}}_t\) [101] and the subtraction of the feature flow field \(({\mathbf {v}}-{\mathbf {f}})\) [119]. Due to the relativity of the observer and the feature we want to track, all Galilean invariant feature definitions are able to identify features that perform equal-speed translations. If a vortex performs any other type of movement, Galilean invariant methods will not produce the correct solution.

Objectivity refers to the invariance of a measure under a smooth rotation and translation of the reference frame, cf. [127]:

$$\begin{aligned} {\mathbf {x}}^{*} = {\mathbf {Q}}(t) \; {\mathbf {x}}+ {\mathbf {c}}(t) \;\;\;,\;\;\; t^{*} = t - a \end{aligned}$$
(36)

where \({\mathbf {Q}}\in SO(3)\) is a rotation matrix, \({\mathbf {c}}\) is a translation vector, and a is a constant. We assume \({\mathbf {Q}}\) and \({\mathbf {c}}\) to be smooth functions of t. The most recent feature defintions aim to be objective [37, 49, 50, 64]. Among the objective quantities are the divergence \(\nabla \cdot {\mathbf {v}}\), the strain rate tensor \({\mathbf {S}}\), and the flow map gradient \(\nabla \phi _{t_0}^\tau ({\mathbf {x}})\).

Fig. 21
figure 21

Example of a reference frame decomposition using the displacement optimization [6]. A given input vector field \({\mathbf {v}}({\mathbf {x}},t)\) is split into a flow in the steady reference frame \({\mathbf {w}}({\mathbf {x}},t)\) and the ambient motion \({\mathbf {f}}({\mathbf {x}},t)\)

4.3 Topology in Steady Reference Frames

Recently, Baeza Rojo and Günther [6] optimized for steady reference frames by describing the reference frame motion as inhomogeneous displacement transformation. The motion of features in the steady reference frame is thereby modeled by more than just rotations and translations. The method thereby become invariant to even more classes of motion than with objectivity. Given the optimal reference frame, the flow \({\mathbf {v}}({\mathbf {x}},t)\) is decomposed into:

$$\begin{aligned} \underbrace{{\mathbf {v}}({\mathbf {x}},t)}_{\mathrm {input field}} = \underbrace{{\mathbf {w}}({\mathbf {x}},t)}_{\mathrm {steady frame}} + \underbrace{{\mathbf {f}}({\mathbf {x}},t)}_{\mathrm {ambient motion}} \end{aligned}$$
(37)

While they used the optimal frame \({\mathbf {w}}({\mathbf {x}},t)\) to extract topological structures, the remaining ambient flow \({\mathbf {f}}({\mathbf {x}},t)\) can be used to track critical points over time. An example is given in Fig. 21. The numerical extraction of the reference frame still remains challenging and becomes harder the more degrees of freedoms are added. The linear optimization is under-constrained, which requires a regularizer that in turn places assumptions about the smoothness of the ambient motion and its derivatives. In case, the feature moves with constant speed in a constant direction, i.e., Galilean invariance is fulfilled, then \({\mathbf {f}}({\mathbf {x}},t) = -{\mathbf {J}}^{-1}{\mathbf {v}}_t\) is the normalized feature flow field [35, 41, 119]. This means, the approach of Weinkauf et al. [133] appears as special case. Reference frame optimizations have previously been done for vortex extraction, using local optimization [37, 41], global optimization [46] and deep learning [67].

4.4 High-Dimensional Flows

All sections above concentrated on 2D or 3D domains. Vector fields also arise in the description of dynamical systems [76], namely when describing how an arbitrarily high-dimensional state of a system is changing over time. This vector field is called the phase flow, which depends on the current state of the dynamical system. Typical fluid flows can be considered as first-order ODEs. Many processes not only depend on the position of an object, but also on its velocity, which leads us to second-order ODEs. Examples of such systems are oscillators, pendulums, n-body problems [10] and the motion of finite-sized objects in fluids [86, 114, 116].

Similar to the fluid flows above, such dynamical systems also contain topologically-relevant structures and features. An introduction to the topology of dynamical systems was given by Abraham and Shaw [1]. Hofmann et al. [57] extracted and visualized all types of critical points in a four dimensional vector field. Depending on the actual structure of the phase flow, the possible types of topological structures may be limited. Inertial particles for instance, i.e., finite-sized in fluids, exhibit an attraction by a globally attracting manifold [51, 79], which causes halve the eigenvalues of the phase flow’s Jacobian to be negative, i.e., sources cannot exist [36, 40]. This attracting manifold was visualized by Baeza Rojo et al. [4] for varying particle sizes. Further, Günther et al. [40] visualized stable sets of inertial systems interactively using multi-dimensional stacking. FTLE has been calculated by Garaboa-Paz and Pérez-Muñuzuri [29] by measuring the expansion in full phase space, whereas Sagrista et al. [100] visualized the separation in the subspaces as well, using multi-dimensional stacking. Inertial vortex corelines have been extracted with the assumption of Galilean invariance [39] and objectivity [43]. The latter requires the search for parallel vectors in the high-dimensional space, for which Hofmann et al. [58] introduced the dependent vectors operator. Recently, Bartolovic [10] introduced an optimization-based dimensionality reduction method for high-dimensional trajectories that preserves geometric and topological properties.

4.5 Uncertainty

As the computational resources become more capable, the computation of multiple simulations with slightly different input conditions or parameters becomes more affordable. This allows domain scientists to quantify the uncertainty of simulation models or measurements, for instance in meteorological forecasting. These days, uncertainty visualization is considered to be among the top challenges in scientific visualization [13]. For uncertain vector field topology, integral curves and fixed points have been generalized to define an uncertain vector field topology by integrating particle density functions [83]. Petz et al. [88] used Monte Carlo sampling to extract probabilistic local features such as critical points from Gaussian distributed vector fields. Bhatia et al. [11] introduced edge maps to introduce a fuzzy topology that performs a topological decomposition based on growing of streamwaves. Hummel et al. [60] considered the variance among ensemble members to identify LCS that exist in many members. Obermaier and Joy [81] categorized ensemble visualizations into location-based methods that compare ensemble properties at a fixed location and feature-based methods that first extract, match and compare features. Guo et al. [44] used Monte Carlo sampling to determine the probability for LCS in uncertain vector fields. Uncertainty visualization remains a very active topic with plenty of research on different frontiers, including the modeling of correlations [89, 91] and the visualization of confidence [25, 84, 104, 144].

5 Outlook

While the topological elements of steady vector fields are fairly well understood, there is still an ongoing discussion on the definition of a time-dependent vector field topology. As recently shown by Bujack et al. [18], there is no approach yet that holds up in all unsteady flow scenarios. Meanwhile, the continuum mechanics and fluid dynamics community are pushing the frontiers of the Lagrangian flow analysis, which is tightly related to the classical view of vector field topology. In fact, we hope to see more synergies between the different research directions. Aside from new theoretical contributions on the feature definitions, we can also expect to see more work on uncertain data, since ensemble simulations and model variability are of high interest in the application domains. The analysis of high-dimensional flows and general dynamical systems will benefit more from synergies with dimensionality reduction research. As the data sizes are growing, global topology-based methods will see more parallelization across multiple compute nodes within in-situ environments. While scalar field topology algorithms now become more available through open-source packages such as the Topology ToolKit (TTK) [123], a similar platform for vector field topology is missing. We hope that such effort is taken soon. A general availability increases the adaption in practice, which in turn reveals new research challenges.