• No results found

3.3 Unified Feature Extraction Architecture

3.3.3 Intersecting Stream Objects

This algorithm aims at finding connectors which are defined as the intersection of two stream objects. We consider the intersection of stream surfaces in 3D vector fields only. First, we give an algorithm for finding the intersection between two stream surfaces emanating from two seeding curves. Afterwards, we discuss how to find all connectors between a higher number of seeding curves.

Computing a Single Connector

Several approaches for finding connectors can be thought of. We want to discuss two of them here.

The first approach follows directly the definition of connectors as the intersection of two stream surfaces by integrating the stream surfaces and intersecting their triangle mesh representations. To ensure that the resulting intersection curves start and end at the seeding curves, each surface needs to be integrated until it comes very close to all other seeding curves that share a connector with the originating curve. Our experience has shown that especially for topologies with circulating flow behavior like focus sad- dles, this is hard to ensure. Furthermore, this approach does not only need a lot of integration steps but also a considerable amount of memory as one needs to hold all generated triangles.

We propose another algorithm with less memory consumption, which enables us to find connectors with less integration steps than the first approach. We utilize the fact that connectors are particular stream lines: knowing one (non–critical) point of a stream line is enough to integrate the whole line.

Consider a repelling seeding curve R and an attracting curve A. We apply a simul- taneous integration of the stream surfaces until an intersection point p is found. This point lies close to the connector, but due to the triangle approximation of the surfaces it is not necessarily on the connector itself. Let p0be the point on the connector which is closest to p. p0has two corresponding seeding points – one on each seeding curve. They can be described by the parameters α0∈ (αk, αk+1) and β0∈ (βh, βh+1) and are

found by applying a refinement.

To find p we only need to simultaneously compute the time ribbons RRi and RAi, and check them for intersection. For this it is sufficient to check if the last time line

Algorithm 4 Finding intersections between stream surfaces p[ ] = EmptyArrayOfPoints() S0A= Seed(A) S0R= Seed(R) S1A= PropagateSurface (A, SA 0, t1) RA 0= Triangulate (SA1, SA0) i= 0

while (Size (p[ ]) < nmax) ∧ (ti< tmax) do

Si+1R = PropagateSurface (R, SRi, ti+1)

RRi = Triangulate (SRi+1, SiR)

p[ ]+ = GetIntersectionPoints (SRi+1, RAi) p[ ]+ = GetIntersectionPoints (SA

i+1, RRi)

SA

i+2= PropagateSurface (A, SAi+1, ti+2)

RAi+1= Triangulate (SAi+2, SAi+1)

p[ ]+ = GetIntersectionPoints (SRi+1, RAi+1) p[ ]+ = GetIntersectionPoints (SA i+2, RRi) FreeMemory (SiR, RR i, SAi+1, RAi) i= i + 1 end while

of R intersects the last time ribbon of A and vice versa. This means that we do not have to check the triangular strips themselves for intersection, but line segments with triangular strips. Figure 3.9 illustrates the process of finding a connector and algorithm 4 gives a detailed description.

For two reasons this algorithm may find more than one intersection point. First, the seeding curves A and R may have multiple connectors (see figure 2.10b on page 29). Second, we perform two intersection tests after each surface propagation, and in many cases5both produce results at the same time step. The two points resulting from this are very close to each other, and one of them can be deleted safely. The algorithm terminates after finding a certain maximal number of intersection points (or if a maximal time is reached).

Algorithm 4 depends on a number of parameters: the step size of the stream line integration, the number of initial seed points, and the thresholds for inserting or deleting points for a new time line. For all these values, a reasonable compromise has to be found between performance and accuracy.

An advantage of algorithm 4 is that it avoids stream line integration in numeri- cally complicated regions (e.g., when computing saddle connectors in regions in which the separation surface of a saddle comes close to another saddle and therefore has a strongly diverging behavior). Also, the algorithm stops after a certain pre-defined

5But not in all cases: If we use different step sizes for the integration of the surfaces, these two tests may

result in only one intersection point. Thats why two tests are performed. Otherwise one time ribbon could “jump” over the other.

number nmax of maximal connectors is found. This leads to a significant reduction of

necessary integration steps. Finally, note that memory is hardly a problem, since from each stream surface only a time ribbon (represented by a triangular strip) is stored at any stage of the algorithm.

Computing all Connectors

Consider more than two seeding curves, i.e., a set of attracting seeding curves and a set of repelling ones. This yields a number of forward and backward integrated stream surfaces and we want to find all intersections of them.

A naive approach to do so – applying algorithm 4 to any pair of repelling and attracting seeding curves – is not an appropriate solution, because the time-consuming integration of a stream surface is repeated again and again.

Instead, we avoid a repeated computation of a stream surface by grouping all at- tracting and all repelling seeding curves and applying a slightly modified version of algorithm 4 on these two groups: after computing a new time ribbon in one group, they have to be checked against all current time ribbons of the other group. If a time ribbon leaves the domain of the vector field or collapses to a number of single points, the time ribbon is excluded from further consideration. This algorithm has a time complexity of O(nA× nR) where nA, nRare the numbers of considered attracting/repelling seeding

Extraction of

Parameter-Independent

Topological Structures

In the following we give a number of algorithms for extracting topological features of parameter-independent vector fields. This includes techniques for computing saddle connectors (section 4.1) and boundary switch connectors (section 4.2), which have been newly developed in the course of this thesis. Furthermore, we present a new grid- independent algorithm for finding closed stream lines in planar flows (section 4.3). In section 4.4 we apply these algorithms to a number of data sets.

4.1

Features induced by Critical Points

UNIFIEDFEATURE EXTRACTIONARCHITECTURE

Finding Zeros Integrate Stream Objects Intersect Stream Objects

In a number of applications the boundary does not have a great in- fluence on the flow and isolated closed stream lines cannot appear (divergence free flows). Here, it suffices to examine critical points and all topological features which are induced by them, i.e., the separatrices emanating from saddle points as well as saddle con-

nectors. In the following we deal with the extraction of these features. We need all three algorithms of our Unified Feature Extraction Architecture for this. Furthermore, the concept of Connectors comes into play when we extract saddle connectors. Feature Flow Fields are not needed.

Critical points are the zeros of the considered vector field and can be extracted by simply applying the algorithm for finding zeros (see section 3.3.1). However, this yields only the locations of the critical points. In order to distinguish between sources, sinks and saddles we apply an eigenvalue/eigenvector analysis of the Jacobian matrix J and classify the points as described in 2.2.1. For the classification itself we need the eigenvalues only, but the depiction of the 3D critical points as icons requires the eigenvectors as well (see figure 2.5).

Eigenvectors are also needed to compute the separatrices starting from the saddle points. While their computation itself is done by applying the algorithm for stream object integration, the starting points of this integration have to be chosen carefully. Obviously, the saddle point itself cannot serve as a seeding point since it is critical

(a) Computing the flow ribbon of the connector between xRand xAbelonging to the separation surface of xA.

(b) Double flow ribbon used for representing a saddle connector.

Figure 4.1: Visual representation of saddle connectors.

and an integration would be stuck. Instead we use the eigenvectors to find the seeding points close to the saddle and on the corresponding separatrix:

• For a separation line we take two small steps into the direction of its correspond- ing eigenvector - one step forward and one backward. This yields two seeding points for two stream line integrations.

• To integrate the separation surface of a saddle point x0, we place n0points in

an equidistant manner on a small circle in the outflow/inflow plane around x0

spanned by the corresponding two eigenvectors. They serve as the seeding points of the separation surface. This closed polygon S0= (s0,0, ..., sn0,0) can be con-

sidered as the time line of the separation surface for the time t0. This kind of

seeding yields good results for most topologies except for focus saddles with strong circulation, where the stream lines would intersect the seeding circle. In this case we place the seeding points on a small line in the outflow/inflow plane starting at the critical point.

The direction of the integration is determined by the type of the separatrix: attracting or repelling. Attracting separatrices have to be integrated in backward direction, repelling separatrices in forward direction. This can be found by the sign of the corresponding eigenvalue.

Visualizing the separation surfaces of topologically complex vector fields usually leads to visually cluttered images since the surfaces tend to hide each other as well as the critical points. A solution to this is the display of saddle connectors, which at least indicate the approximate run of the separation surfaces. In order to extract them we apply the algorithm for intersecting stream surfaces. Once saddle connectors are computed, we have to find a graphical representation. The simplest way is to use a line representation similar to stream lines. However, since saddle connectors are defined as the intersection of two separation surfaces, we can also visualize the orientation of the separation surfaces in the neighborhood of the saddle connector. To do so, we use a double flow ribbon approach as shown in figure 4.1b.

Given are the repelling saddle xR, the attracting saddle xAand their saddle connec-

tor represented by a sequence c0, . . . , cmof points. To construct the flow ribbon belong-

ing to the separation surface of xA, we have to find a sequence p0, . . . , pmof points in

such a way that the distance between ciand piis constant, and the line segments (ci, pi)

Figure 4.2: Flow behind a cir- cular cylinder. Close-up of a saddle connector between two focus saddles.

is the only eigenvector of Jv(xR) which has a negative eigenvalue, and λ is chosen in

such a way that c0and p0have a pre-defined constant distance. Then the point pi+1is

constructed from ci, ci+1and piby the following conditions:

• (pi+1− ci+1) ⊥ (ci+1− ci)

• det(pi− ci, v(pi) , pi+1− ci+1) = 0, i.e., (pi+1− ci+1) lies in the plane given by

the 3 points ci, pi, pi+ v(pi).

• kpi+1− ci+1k = kpi− cik

Figure 4.1a gives an illustration. In a similar way we compute the flow ribbon which belongs to the separation surface of xR.

Figure 4.2 shows a saddle connector between two focus saddles. This is a part of a flow behind a cylinder. The data set will be explained in section 4.4, where we apply all the above described extraction techniques.