1<!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3//EN">
2<HTML><HEAD>
3		<TITLE>User's Reference - Streamline</TITLE>
4		<META HTTP-EQUIV="keywords" CONTENT="GRAPHICS VISUALIZATION VISUAL PROGRAM DATA
5MINING">
6	<meta http-equiv="content-type" content="text/html;charset=ISO-8859-1">
7</HEAD><BODY BGCOLOR="#FFFFFF" link="#00004b" vlink="#4b004b">
8		<TABLE width=510 border=0 cellpadding=0 cellspacing=0>
9			<TR>
10				<TD><IMG src="../images/spacer.gif" width=80 height=1></TD>
11				<TD><IMG src="../images/spacer.gif" width=49 height=1></TD>
12				<TD><IMG src="../images/spacer.gif" width=24 height=1></TD>
13				<TD><IMG src="../images/spacer.gif" width=100 height=1></TD>
14				<TD><IMG src="../images/spacer.gif" width=3 height=1></TD>
15				<TD><IMG src="../images/spacer.gif" width=127 height=1></TD>
16				<TD><IMG src="../images/spacer.gif" width=6 height=1></TD>
17				<TD><IMG src="../images/spacer.gif" width=50 height=1></TD>
18				<TD><IMG src="../images/spacer.gif" width=71 height=1></TD>
19			</TR>
20			<TR>
21				<TD colspan=9><IMG src="../images/flcgh_01.gif" width=510 height=24 alt="OpenDX - Documentation"></TD>
22			</TR>
23			<TR>
24				<TD colspan=2><A href="../allguide.htm"><IMG src="../images/flcgh_02.gif" width=129 height=25 border="0" alt="Full Contents"></A></TD>
25				<TD colspan=3><A href="../qikguide.htm"><IMG src="../images/flcgh_03.gif" width=127 height=25 border="0" alt="QuickStart Guide"></A></TD>
26				<TD><A href="../usrguide.htm"><IMG src="../images/flcgh_04.gif" width=127 height=25 border="0" alt="User's Guide"></A></TD>
27				<TD colspan=3><B><A href="../refguide.htm"><IMG src="../images/flcgh_05d.gif" width=127 height=25 border="0" alt="User's Reference"></A></B></TD>
28			</TR>
29			<TR>
30				<TD><A href="refgu148.htm"><IMG src="../images/flcgh_06.gif" width=80 height=17 border="0" alt="Previous Page"></A></TD>
31				<TD colspan=2><A href="refgu150.htm"><IMG src="../images/flcgh_07.gif" width=73 height=17 border="0" alt="Next Page"></A></TD>
32				<TD><A href="../refguide.htm"><IMG src="../images/flcgh_08.gif" width=100 height=17 border="0" alt="Table of Contents"></A></TD>
33				<TD colspan=3><A href="refgu009.htm"><IMG src="../images/flcgh_09.gif" width=136 height=17 border="0" alt="Partial Table of Contents"></A></TD>
34				<TD><A href="refgu175.htm"><IMG src="../images/flcgh_10.gif" width=50 height=17 border="0" alt="Index"></A></TD>
35				<TD><A href="../srchindx.htm"><IMG src="../images/flcgh_11.gif" width=71 height=17 border="0" alt="Search"></A></TD>
36			</TR>
37		</TABLE>
38		<H3><A name="HDRSTREAML" ></A>Streamline</H3>
39		<A NAME="IDX728"></A><A NAME="IDX729"></A>
40<A NAME="IDX730"></A>
41<P><STRONG>Category</STRONG>
42<P>
43<A HREF="refgu008.htm#HDRCATREL">Realization</A>
44<P><STRONG>Function</STRONG>
45<P>
46Computes streamlines to represent the movement of particles through
47static vector fields.
48<P><STRONG>Syntax</STRONG>
49<PRE>
50<STRONG>line</STRONG> = Streamline(<STRONG>data, start, time, head, curl, flag, stepscale</STRONG>);
51</PRE>
52<P><STRONG>Inputs</STRONG>
53<BR>
54<TABLE BORDER>
55<TR>
56<TH ALIGN="LEFT" VALIGN="TOP" WIDTH="20%">Name
57</TH><TH ALIGN="LEFT" VALIGN="TOP" WIDTH="20%">Type
58</TH><TH ALIGN="LEFT" VALIGN="TOP" WIDTH="20%">Default
59</TH><TH ALIGN="LEFT" VALIGN="TOP" WIDTH="40%">Description
60</TH></TR><TR>
61<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="20%"><TT><STRONG>data</STRONG></TT>
62</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="20%">vector field
63</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="20%">none
64</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="40%">vector field
65</TD></TR><TR>
66<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="20%"><TT><STRONG>start</STRONG></TT>
67</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="20%">vector list or geometric field
68</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="20%">center of the first series member
69</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="40%">starting point(s)
70</TD></TR><TR>
71<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="20%"><TT><STRONG>time</STRONG></TT>
72</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="20%">scalar list
73</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="20%">series start time(s)
74</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="40%">starting time(s)
75</TD></TR><TR>
76<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="20%"><TT><STRONG>head</STRONG></TT>
77</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="20%">integer
78</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="20%">final series frame number
79</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="40%">series time-step at which the
80streamlines end
81</TD></TR><TR>
82<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="20%"><TT><STRONG>curl</STRONG></TT>
83</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="20%">vector field
84</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="20%">no curl
85</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="40%">vorticity of vector field(s)
86</TD></TR><TR>
87<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="20%"><TT><STRONG>flag</STRONG></TT>
88</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="20%">flag
89</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="20%">input dependent
90</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="40%">
910: curl not used
92<BR>
931: curl used to generate twist of streamline(s)
94<BR></TD></TR><TR>
95<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="20%"><TT><STRONG>stepscale</STRONG></TT>
96</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="20%">value
97</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="20%">0.1
98</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="40%">step length as a fraction of the
99size of the connection
100element
101</TD></TR></TABLE>
102<P><STRONG>Outputs</STRONG>
103<BR>
104<TABLE BORDER>
105<TR>
106<TH ALIGN="LEFT" VALIGN="TOP" WIDTH="25%">Name
107</TH><TH ALIGN="LEFT" VALIGN="TOP" WIDTH="25%">Type
108</TH><TH ALIGN="LEFT" VALIGN="TOP" WIDTH="50%">Description
109</TH></TR><TR>
110<TD ALIGN="LEFT" VALIGN="TOP" WIDTH="25%"><TT><STRONG>line</STRONG></TT>
111</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="25%">field or group
112</TD><TD ALIGN="LEFT" VALIGN="TOP" WIDTH="50%">one or more streamlines
113</TD></TR></TABLE>
114<P><STRONG>Functional Details</STRONG>
115<P>
116This module traces the path of a particle through a static vector field
117in discrete steps.
118The visual form of this trace is a streamline, which starts at a
119specified time and continues until the particle it represents
120exits from the field or reaches a region of zero velocity.
121<TABLE CELLPADDING="3">
122<TR VALIGN="TOP"><TD><P><B><TT><STRONG>data</STRONG></TT>
123</B></TD><TD><P>specifies a vector field.
124Vector fields are limited to <I>n</I>-D vectors defined in
125<I>n</I> space; for example, 2-D vectors on a 2-D sheet or
1263-D vectors defined in a 3-D volume.
127</TD></TR><TR VALIGN="TOP"><TD><P><B><TT><STRONG>start</STRONG></TT>
128</B></TD><TD><P>specifies a set of positions at which streamlines originate.
129It can be either a list of positions or a geometric field (e.g., the
130output of a Grid module or even an isosurface).
131</TD></TR><TR VALIGN="TOP"><TD><P><B><TT><STRONG>time</STRONG></TT>
132</B></TD><TD><P>specifies a set of times at which streamlines begin to be
133traced.
134The units of time correspond to the units of the vector field.
135That is, a particle travelling at a unit velocity moves one unit of
136distance in one unit of time.
137<P>
138Both <TT><STRONG>time</STRONG></TT> and <TT><STRONG>start</STRONG></TT> can
139contain
140single or multiple elements.
141If either parameter contains a single element, that element is
142associated with each element of the other list.
143If both parameters contain multiple elements, they must contain the
144same number of elements, which are then matched in pairs.
145<P>
146
147You can use the time parameter to start different streamlines at
148different times. Note that for the static vector fields used by
149Streamline, a particle at a given location will trace the same
150streamline, regardless of what time it is started.
151
152</TD></TR><TR VALIGN="TOP"><TD><P><B><TT><STRONG>head</STRONG></TT>
153</B></TD><TD><P>specifies an expiration time for streamlines that have not
154otherwise terminated.
155The streamline points are computed iteratively, and the spacing between
156the points depends on the element size of the connections and the
157stepscale.
158If this maximum is reached, a warning is produced and the streamline
159is terminated.
160The maximum number of streamline points is 25,000.
161</TD></TR><TR VALIGN="TOP"><TD><P><B><TT><STRONG>curl</STRONG></TT>
162</B></TD><TD><P>causes Streamline to produce normals and binormals components
163that represent the vorticity of the vector field.
164<A HREF="refgu049.htm#HDRDIVCURL">DivCurl</A>).
165In that case, the default value for <TT><STRONG>flag</STRONG></TT>
166is 1.
167The "normals" and "binormals" components of the resulting
168streamlines rotate according to the vorticity of the vector
169field.
170This information is either interpolated from the vector field passed
171in as the <TT><STRONG>curl</STRONG></TT> parameter or is computed
172internally.
173</TD></TR><TR VALIGN="TOP"><TD><P><B><TT><STRONG>flag</STRONG></TT>
174</B></TD><TD><P>specifies whether or not the twist specified by
175<TT><STRONG>curl</STRONG></TT> is enabled.
176A setting of 0 (zero) disables the twist.
177<P>
178However, if <TT><STRONG>curl</STRONG></TT> is not specified, the default
179value for <TT><STRONG>flag</STRONG></TT> is 0, and no twist is
180produced.
181In that case you have the option of setting <TT><STRONG>flag</STRONG></TT>
182to 1, which causes Streamline to compute the curl internally.
183</TD></TR><TR VALIGN="TOP"><TD><P><B><TT><STRONG>stepscale</STRONG></TT>
184</B></TD><TD><P>specifies the accuracy of the interpolation.
185Streamline traces the path of a particle through the vector field in
186discrete steps.
187These steps are determined by interpolating a vector from the vector
188field at the current end of the streamline and appending a new
189segment that extends the streamline in the direction of the
190vector.
191<P>
192The length of the new segment is determined by two factors.
193First, the length of the projection of the segment along the edges of
194the cells of the prior and subsequent vector fields in which the
195starting point of the segment is found does not exceed a
196proportion (specified by the <TT><STRONG>stepscale</STRONG></TT>
197parameter) of the length of the edge.
198Second, if grid is irregular, the segment is truncated at the boundary
199of the element in which it begins.
200This allows the segment length to be determined anew for the next
201element.
202<P>
203Thus the <TT><STRONG>stepscale</STRONG></TT> parameter offers the user control
204over the accuracy of the streamline.
205If <TT><STRONG>stepscale</STRONG></TT> is a small value (perhaps in the range
206of 0.01 to 0.05), the resulting streamline contains a relatively
207large number of segments that closely trace small variations
208in the vector field.
209If <TT><STRONG>stepscale</STRONG></TT> is assigned a large number (0.5 to 1),
210the steps are larger and less accurate, but require less execution
211time.
212Note, however, that since the step is determined as a proportion of the
213size of the grid cell in which it is contained, the segments are
214small in areas in which the grid elements are small, and
215proportionally larger in areas in which the grid
216elements are large.
217</TD></TR></TABLE>
218<P>
219Streamlines trace particles through time.
220Associated with the streamline is a "time" component that
221indicates, for each position of the streamline, the time at
222which the particle reached that position.
223The initial value in this component, therefore, is equal to the
224starting time for that stream, which is by default the first
225series position, or settable by the user using the
226<TT><STRONG>time</STRONG></TT> parameter.
227The final value in the time component is equal to (1) the time at which
228the particle exits from the vector field or (2) the time specified
229by the <TT><STRONG>head</STRONG></TT> parameter.
230<P>
231The output streamlines also contain a "data" component that
232indicates the velocity of the data field at each position
233in the streamline.
234<P><STRONG>Components</STRONG>
235<P>
236Creates new
237"positions,"
238"connections,"
239"data,"
240"time," and
241"colors"
242components.
243If the flag argument is set, "normals" and "binormals"
244components are also created.
245<P><STRONG>Example Visual Programs</STRONG>
246<PRE>
247Interop.net
248InvalidData.net
249RubberTube.net
250Streamline.net
251ThunderStreamlines.net
252</PRE>
253<P><STRONG>See Also</STRONG>
254<P>
255&nbsp;<A HREF="refgu049.htm#HDRDIVCURL">DivCurl</A>,
256&nbsp;<A HREF="refgu068.htm#HDRGLYPH">Glyph</A>,
257&nbsp;<A HREF="refgu122.htm#HDRRIBBON">Ribbon</A>,
258&nbsp;<A HREF="refgu148.htm#HDRSTREAKL">Streakline</A>,
259&nbsp;<A HREF="refgu163.htm#HDRTUBE">Tube</A>
260		<P>
261		<HR>
262		<DIV align="center">
263			<P><A href="../allguide.htm"><IMG src="../images/foot-fc.gif" width="94" height="18" border="0" alt="Full Contents"></A> <A href="../qikguide.htm"><IMG src="../images/foot-qs.gif" width="94" height="18" border="0" alt="QuickStart Guide"></A> <A href="../usrguide.htm"><IMG src="../images/foot-ug.gif" width="94" height="18" border="0" alt="User's Guide"></A> <A href="../refguide.htm"><IMG src="../images/foot-ur.gif" width="94" height="18" border="0" alt="User's Reference"></A></P>
264		</DIV>
265		<DIV align="center">
266			<P><FONT size="-1">[ <A href="http://www.research.ibm.com/dx">OpenDX Home at IBM</A>&nbsp;|&nbsp;<A href="http://www.opendx.org/">OpenDX.org</A>&nbsp;] </FONT></P>
267			<P></P>
268		</DIV>
269		<P></P>
270	</BODY></HTML>
271