#!F-adobe-helvetica-medium-r-normal--18*
#!N 
#!N  #!Rstreakl 
Streakline #!N #!N Category #!N #!N  #!Lcatrel,dxall759 h Realization  #!EL  #!N #!N Function #!N 
#!N Computes streaklines to represent the movement of particles through changing 
vector fields. #!N #!N Syntax #!CForestGreen #!N #!N  #!F-adobe-courier-bold-r-normal--18*    #!F-adobe-times-bold-r-normal--18*   #!N 
line #!EF = Streakline(  #!F-adobe-times-bold-r-normal--18*   name, data, start, time, head, curl, 
flag, stepscale #!EF ); #!EF #!N #!N #!EC #!N #!N Inputs 
#!T,1,91,276,461,646  #!F-adobe-times-medium-r-normal--14*    #!F-adobe-times-bold-r-normal--18*   #!N TAB Name TAB Type TAB Default TAB 
Description #!EF #!N TAB name TAB string or object TAB no 
default TAB name of streakline #!N TAB data TAB vector field 
or vector field TAB none TAB vector series time-step or vector 
#!N TAB - TAB series TAB - TAB field series #!N 
TAB start TAB vector list or geometric field TAB center of 
the boundary box of the TAB starting point(s) #!N TAB - 
TAB - TAB first series member TAB #!N TAB time TAB 
scalar list TAB series start time(s) TAB starting time(s) #!N TAB 
head TAB integer TAB final series frame number TAB series time-step 
at which the #!N TAB - TAB - TAB - TAB 
streaklines end #!N TAB frame TAB integer TAB current frame TAB 
current frame #!N TAB curl TAB vector field or vector field 
TAB no curl TAB vorticity of vector field(s) #!N TAB - 
TAB series TAB - TAB #!N TAB flag TAB flag TAB 
input dependent TAB 0: curl not used #!N TAB - TAB 
- TAB - TAB 1: curl used to generate twist of 
#!N TAB - TAB - TAB - TAB streakline(s) #!N TAB 
stepscale TAB value TAB 0.1 TAB step length as a fraction 
of the #!N TAB - TAB - TAB - TAB size 
of the connection element #!N TAB - TAB - TAB - 
TAB #!EF #!N #!N Outputs #!T,1,161,321,646  #!F-adobe-times-medium-r-normal--14*    #!F-adobe-times-bold-r-normal--18*   #!N TAB Name 
TAB Type TAB Description #!EF #!N TAB line TAB field or 
group TAB one or more streaklines #!N TAB - TAB - 
TAB #!EF #!N #!N Functional Details #!N #!N This module traces 
the path of a particle through a changing vector field in 
discrete steps. The visual form of this trace is a streakline, 
which starts at a specified time and continues until the particle 
it represents exits from the field or until the field "expires." 
#!N #!I0 #!N #!N #!I0 #!N  #!F-adobe-times-bold-r-normal--18*    #!F-adobe-times-bold-r-normal--18*   name #!EF #!EF 
#!I50 #!N is required only if more than one invocation of 
Streakline in the same visual program uses the same  #!F-adobe-times-bold-r-normal--18*   start 
#!EF ,  #!F-adobe-times-bold-r-normal--18*   time #!EF ,  #!F-adobe-times-bold-r-normal--18*   head #!EF ,  #!F-adobe-times-bold-r-normal--18*   
curl #!EF , and  #!F-adobe-times-bold-r-normal--18*   flag #!EF arguments with different vector 
fields (  #!F-adobe-times-bold-r-normal--18*   data #!EF ). #!N #!N The reason for 
this requirement is that, in order to function efficiently in movie 
applications, Streakline saves intermediate results from frame to frame. This information 
is stored internally in association with a key. Each invocation of 
the Streakline module in the same graph receives a unique name, 
which is constructed from the  #!F-adobe-times-bold-r-normal--18*   name #!EF ,  #!F-adobe-times-bold-r-normal--18*   start 
#!EF ,  #!F-adobe-times-bold-r-normal--18*   time #!EF ,  #!F-adobe-times-bold-r-normal--18*   head #!EF ,  #!F-adobe-times-bold-r-normal--18*   
curl #!EF , and  #!F-adobe-times-bold-r-normal--18*   flag #!EF arguments. Thus, if more 
than one invocation of Streakline in the same graph uses the 
same arguments, varying only the vector field, a unique  #!F-adobe-times-bold-r-normal--18*   name 
#!EF string must be assigned to each. #!N #!N If you 
have only one Streakline module or if any of the inputs 
to the module other than  #!F-adobe-times-bold-r-normal--18*   data #!EF are different between 
the two modules, you do not need to specify  #!F-adobe-times-bold-r-normal--18*   name 
#!EF . #!N #!I0 #!N  #!F-adobe-times-bold-r-normal--18*    #!F-adobe-times-bold-r-normal--18*   data #!EF #!EF #!I50 
#!N specifies a vector field or vector field series. Vector fields 
are limited to  #!F-adobe-times-medium-i-normal--18*   n #!EF -D vectors defined in  #!F-adobe-times-medium-i-normal--18*   
n #!EF space; for example, 2-D vectors on a 2-D sheet 
or 3-D vectors defined in a 3-D volume. #!N #!N The 
individual time-step vector fields are passed to Streakline as  #!F-adobe-times-bold-r-normal--18*   data 
#!EF , either combined in a single series object or one 
at a time in successive executions of the graph containing the 
Streakline module, as fields. Times are associated with each vector field 
by the "series position" attached to each member of the series 
group. Vector values in between these times are interpolated linearly from 
the prior and subsequent vector fields. The times associated with each 
field should increase monotonically as they are encountered by the Streakline 
module, either as the individual series members are indexed or as 
the individual series members are encountered in successive executions of the 
graph. Vector fields encountered out of order are ignored. #!N #!N 
If  #!F-adobe-times-bold-r-normal--18*   data #!EF is a single field rather than a 
series group, then it must have a "series position" attribute for 
Streakline to accept it. This attribute is attached when a series 
member is selected with the Select module. The individual members of 
the series group can be extracted using the Select module or 
by requesting a single member of the series when using the 
Import module. #!N #!I0 #!N  #!F-adobe-times-bold-r-normal--18*    #!F-adobe-times-bold-r-normal--18*   start #!EF #!EF #!I50 
#!N specifies a set of points at which streaklines originate. It 
can be either a list of positions or a geometric field 
(e.g., the output of a Grid module). #!N #!I0 #!N  #!F-adobe-times-bold-r-normal--18*   
 #!F-adobe-times-bold-r-normal--18*   time #!EF #!EF #!I50 #!N specifies a set of times 
at which streaklines begin to be traced. The units of time 
correspond to the units of the vector field. That is, a 
particle travelling at a unit velocity moves one unit of distance 
in one unit of time. #!N #!N Both  #!F-adobe-times-bold-r-normal--18*   time #!EF 
and  #!F-adobe-times-bold-r-normal--18*   start #!EF can contain single or multiple elements. If 
either parameter contains a single element, that element is associated with 
each element of the other list. If both parameters contain multiple 
elements, they must contain the same number of elements, which are 
then matched in pairs. This allows either a single starting point 
to be associated with several different starting times, several starting points 
to be associated with a single starting time, or several starting 
points to be associated with individual starting times. If no  #!F-adobe-times-bold-r-normal--18*   
time #!EF parameter is given, the series position of the first 
member of the vector field series (either the first series member 
or the first individual vector field encountered) is used. If no 
 #!F-adobe-times-bold-r-normal--18*   start #!EF parameter is given, the center point of the 
first member of the vector field series is used. #!N #!I0 
#!N  #!F-adobe-times-bold-r-normal--18*    #!F-adobe-times-bold-r-normal--18*   head #!EF #!EF #!I50 #!N specifies an expiration 
time for streaklines that have not otherwise terminated. The streakline points 
are computed iteratively, and the spacing between the points depends on 
the element size of the connections. #!N #!I0 #!N  #!F-adobe-times-bold-r-normal--18*    #!F-adobe-times-bold-r-normal--18*   
frame #!EF #!EF #!I50 #!N allows the Streakline module to incrementally 
generate streaklines when the entire series is input as  #!F-adobe-times-bold-r-normal--18*   data 
#!EF . For example, you could attach the Sequencer to  #!F-adobe-times-bold-r-normal--18*   
frame #!EF , and as  #!F-adobe-times-bold-r-normal--18*   frame #!EF advanced, the streaklines 
would grow longer. #!N #!I0 #!N  #!F-adobe-times-bold-r-normal--18*    #!F-adobe-times-bold-r-normal--18*   flag #!EF #!EF 
#!I50 #!N specifies whether the normals of the streaklines produced rotate 
according to the vorticity of the vector field or do not 
rotate at all. #!N #!I0 #!N  #!F-adobe-times-bold-r-normal--18*    #!F-adobe-times-bold-r-normal--18*   curl #!EF #!EF 
#!I50 #!N specifies the curl of the vector field (see  #!Ldivcurl,dxall827 h DivCurl  #!EL  
). #!N #!N If the vorticity of the vector field is 
supplied by this parameter, the curl is interpolated from it. In 
that case, the field must correspond to the vector field in 
type (either both must be a series or both must be 
a single field) and they should correspond in time. If  #!F-adobe-times-bold-r-normal--18*   
curl #!EF is specified, the default value for the  #!F-adobe-times-bold-r-normal--18*   flag 
#!EF parameter is 1. If  #!F-adobe-times-bold-r-normal--18*   curl #!EF is not specified, 
the vorticity can be computed within Streakline, but at a considerable 
cost in time. In this case the default value for  #!F-adobe-times-bold-r-normal--18*   
flag #!EF is 0, and if you want Streakline to compute 
the curl of the field, you must set  #!F-adobe-times-bold-r-normal--18*   flag #!EF 
to 1. #!N #!I0 #!N  #!F-adobe-times-bold-r-normal--18*    #!F-adobe-times-bold-r-normal--18*   stepscale #!EF #!EF #!I50 
#!N specifies the accuracy of the interpolation. Streakline traces the path 
of a particle through the vector field in discrete steps. These 
steps are determined by interpolating vectors from the prior and subsequent 
vector fields at the geometric position of the current end of 
the streakline, and then linearly interpolating between the results to produce 
a vector for the current position and time. A segment is 
then appended to the current streakline, which continues it in the 
direction of the resulting vector. #!N #!N The length of the 
new segment is determined by two factors. First, the length of 
the projection of the segment along the edges of the cells 
of the prior and subsequent vector fields in which the starting 
point of the segment is found does not exceed a proportion 
(specified by the  #!F-adobe-times-bold-r-normal--18*   stepscale #!EF parameter) of the length of 
the edge. Second, if grid is irregular, the segment is truncated 
at the boundary of the element in which it begins. This 
allows the segment length to be determined anew for the next 
element. #!N #!N Thus the  #!F-adobe-times-bold-r-normal--18*   stepscale #!EF parameter offers the 
user control over the accuracy of the streakline. If  #!F-adobe-times-bold-r-normal--18*   stepscale 
#!EF is a small value (perhaps in the range of 0.01 
to 0.05), the resulting streakline contains a relatively large number of 
segments that closely trace small variations in the vector field. If 
 #!F-adobe-times-bold-r-normal--18*   stepscale #!EF is assigned a large number (0.5 to 1), 
the steps are larger and less accurate, but require less execution 
time. Note, however, that since the step is determined as a 
proportion of the size of the grid cell in which it 
is contained, the segments are small in areas in which the 
grid elements are small, and proportionally larger in areas in which 
the grid elements are large. #!I0 #!N #!N #!N #!N Streaklines 
trace particles through time. Associated with the streakline is a "time" 
component that indicates, for each position of the streakline, the time 
at which the particle reached that position. The initial value in 
this component, therefore, is equal to the starting time for that 
streak, which is by default the first series position, or settable 
by the user using the  #!F-adobe-times-bold-r-normal--18*   time #!EF parameter. The final 
value in the time component is equal to the time at 
which the particle exits from the vector field, either geometrically or 
for one of the following reasons: #!N #!I0 #!N  #!F-adobe-times-medium-r-normal--18*   #!N 
#!N #!I30 #!N o It has reached the time associated with 
the final member of the vector field series. #!N #!I30 #!N 
o It has reached the time associated with the current frame. 
#!N #!I30 #!N o It has reached the time associated with 
the series member indicated by the  #!F-adobe-times-bold-r-normal--18*   head #!EF parameter. #!N 
#!I0 #!N #!EF #!N #!N #!N The output streaklines also contain 
a "data" component that indicates the velocity of the data field 
at each position along the streakline. #!N Note: Unlike other modules 
in the system, the Streakline module maintains information about previous executions. 
If errors occur during the execution of the visual program, it 
may be necessary to use the  #!F-adobe-times-bold-r-normal--18*   Reset Server #!EF option 
to reinitialize the system. #!N #!N #!N Components #!N #!N Creates 
new "positions," "connections," "data," "time," and "colors" components. If the flag 
argument is set, "normals" and "binormals" components are also created. #!N 
#!N Example Visual Programs #!CForestGreen #!N #!N  #!F-adobe-courier-bold-r-normal--18*   #!N UsingCompute3.net #!N 
UsingStreakline.net #!EF #!N #!N #!EC #!N #!N See Also #!N #!N 
 #!Ldivcurl,dxall827 h DivCurl  #!EL  ,  #!Lribbon,dxall927 h Ribbon  #!EL  ,  #!Lstreaml,dxall955 h Streamline  #!EL  ,  #!Ltube,dxall971 h Tube  #!EL  #!N #!N #!N  #!F-adobe-times-medium-i-normal--18*   
Next Topic #!EF #!N #!N  #!Lstreaml,dxall955 h Streamline  #!EL  #!N  #!F-adobe-times-medium-i-normal--18*   #!N 
