TimeDependentAdvector & AltTimeDependentAdvector

Synopsis

The TimeDependentAdvector and AltTimeDependentAdvector macros provide two alternative ways of visualizing time dependent data.

Input Ports

Name Type Description

in_glyph Field Geometry to use for glyph output.
filename string Name of UCD file to read.

Output Ports

Name Type Description

out_obj GDobject Renderable glyph visualization.
tracer_obj GDobject Renderable advector tail visualization.

Description

The TimeDependentAdvector and AltTimeDependentAdvector macros provide examples of how the tailed_advector module can be used with both single and multiple file datasets. The TimeDependentAdvector macro reads a UCD file containing multiple time steps and uses the time_step_number parameter to determine which time step should be output. The AltTimeDependentAdvector macro uses the time_step_number parameter to determine which of several UCD files should be read.

As well as reading UCD files both of these macros provide a set of visualization components that can be adapted to a specific application. They are not intended to provide general purpose components that can be used with no further modification. Please see the tailed_advector module documentation for more general information on the use and operation of tailed advectors.

Operation

tailed_advector support for time dependent data

The tailed_advector module provides support for time dependent data through an input parameter, time_step_interval, and an output parameter, time_step_number. time_step_interval specifies the time interval between each time step and time_step_number outputs which time step should be currently active.

Before we begin the advection process the time_step_number has a value of 0. Each time the elapsed time reaches the time_step_interval value the time_step_number is incremented. At the same time a new probe is created that contains the last position of the advection particles. This causes the streamline module to update, hence creating new streamlines that start at the ending particles positions. If this new probe was not created the particles for each time step would start at the original particle positions.

It should be noted that the tailed_advector module does not automatically deal with time dependent data. The time_step_number output has to be used in some way to select which time step should be operated on. The TimeDependentAdvector and AltTimeDependentAdvector macros show two ways in which this can be done.

Operation of TimeDependentAdvector macro

The TimeDependentAdvector macro provides support for UCD files containing multiple time steps. It does this by using the time_step_number parameter to automatically alter the current_step parameter of the DVread_ucd module. This causes the appropriate time step to be input into the tailed_advector module. A copy_on_change module is used to isolate the current_step parameter and prevent changes to it from propagating back to the time_step_number parameter.

Operation of TimeDependentAdvector macro

The AltTimeDependentAdvector macro provides support for series of UCD files containing a single time steps in each file. It does this by using the time_step_number parameter to automatically append an index number to the input filename string. Hence a filename string of 'yoke.inp' would result in a series of files called 'yoke.inp.0', 'yoke.inp.1' and so forth. If an alternative indexing scheme is required it should be straightforward to alter the macro to achieve this.

Inputs

in_glyph

Geometry that should be used to represent the particles. Any mesh can be used, however for convenience the Geometries library provides many suitable objects.

filename

String input that specifies which UCD file or files that should be read. If the TimeDependentAdvector macro is used the UCD file corresponding to this filename is read. If the AltTimeDependentAdvector macro is used a series of UCD files based on this filename will be read.

Parameters

Only the parameters important for time dependent operation are described here. For a full description of the parameters of the tailed_advector module please see module documentation and the AVS/Express advector documentation.

time_step_interval

This float parameter specifies the time that should elapse between each increment of the time_step_number output. For the time_step_number output to be incremented regularly the time_step_interval should be several times longer than the standard advector step period. If this parameter has a value of 0 the time_step_number output will not be incremented.

time_step_number

Integer parameter that is incremented whenever the time specified by the time_step_interval parameter has passed. This output is used by the TimeDependentAdvector and AltTimeDependentAdvector macros to choose which data set should be used as the input to the tailed_advector module.

Outputs

out_obj

GDobject containing the current particle positions. Each particle position is represented by a glyph geometry. The glyphs are orientated along the current velocity vector. They are scaled and coloured by the magnitude of the velocity vector. This output is suitable for direct connection to a viewer.

tracer_obj

GDobject containing the generated advector tracers. The internal field contains a Polyline mesh with the velocity vector stored as a node data component. This output is suitable for direct connection to a viewer.

Utility Macros

The TimeDependentAdvector macro uses the tailed_advector user macro. The AltTimeDependentAdvector macro is derived from the TimeDependentAdvector macro and hence also uses the tailed_advector user macro.

Example

One example application is provided. The TimeDependentAdvectorEg application demonstrates the use of the TimeDependentAdvector macro by reading all the time steps in the 'yoke.inp' dataset. Once these have been read the user can run the advection process and observe how the current time step changes as the advection progresses. It should be noted that the 'yoke.inp' dataset is only used to demonstrate this module. It does not contain velocity data and hence is not suitable for advector visualization.

Files

iac_proj/t_advect/tadvmods.v contains the V definitions of the TailedAdvectorCore module, the Synchronize utility module and the TailedAdvectorParams parameter block.

iac_proj/t_advect/tadvmacs.v contains the V definitions of the TailedAdvectorUI UI macro, the TailedAdvectorFunc functional macro and the tailed_advector, TimeDependentAdvector and AltTimeDependentAdvector user macros.

iac_proj/t_advect/tadvapps.v contains the V definitions of the SingleTailedAdvectorEg, DualTailedAdvectorEg and TimeDependentAdvectorEg example applications.

Prerequisites

This project relies on the successful installation of the following components. Without them it will not function correctly.

Other Notes

The low-level TailedAdvectorMods library containing the TailedAdvectorCore module does not specify a process. By default the express process will be used.

Authors

Fernand Alcatrao, Advanced Visual Systems, Inc.

Modifications

Andrew Dodd, International AVS Centre

Contact

International AVS Centre
Manchester Visualization Centre
Manchester Computing
University of Manchester
Oxford Road
Manchester
United Kingdom
M13 9PL

See Also