fast_advector

Synopsis

The fast_advector user macro uses points to display advector movement. Due to this it allows faster animation and the display of many more particles than the standard advector module.

Input Ports

Name Type Description

in_field Mesh+Node_Data Vector field data to be visualized.
in_probe Mesh Initial advector particle positions.

Parameters

The parameters of the fast_advector macro are the same as these for the standard advector module except that the glyph normalize and scale parameters have been removed.

Output Ports

Name Type Description

out_fld Point Mesh Current advector particle positions.
out_obj DataObject Directly Renderable Output Object.

Description

The fast_advector user macro is based on the standard AVS/Express advector modules and performs point cloud animation through 3D vector fields. This allows for visualizations to be performed with higher frame rates and larger number of particles than would be possible with the standard module.

The standard advector module allows vector fields to be visualized by moving particles through the vector field. Internally it uses the glyph system to display a symbol for each particle. This allows arrows and other similar geometry to be used to represent advector particles. However the glyph system does carry a rather large overhead.

The fast_advector macro avoids this overhead by using a simple point to represent each advector particle. This allow many more particles to be simulated and displayed than would be possible with the standard advector module. Alternatively the same number of particles can be displayed at higher frame rates. The user interface controls for the fast_advector macro are the same as for the advector module except that the the glyph normalize and scale controls have been removed. As the macro does not use glyphs these are not necessary. Similarly the glyph input port has been removed. The actual performance of the fast_advector macro will vary between platforms and data-sets. However overall it appears to be around 3 times faster than the standard advector module. If you wish to perform your own timing test remember to turn off status checking and module flashing.

As the fast_advector macro allows many more particles to be animated at reasonable frame rates it is how possible to perform visualizations with thousands of points visible. This sort of 'point cloud' visualization can be very useful in certain situations. Its is particularly useful for getting an overall impression of the flow within a visualization. The supplied example applications are good examples of how this technique can be useful.

The project contains only V code and no modules within the project contain procedural code. Hence the project does not have to be compiled. The project makes use of low-level AVS/Express modules and hence requires the Developer's Edition of AVS/Express.

Inputs

The inputs to the fast_advector macro are the same as these for the standard advector module except that the glyph input port has been removed.

in_field

Input field data that is to be used to calculate the advector animation. The field should contain a Mesh and a single set of vector Node_Data.

in_probe

Mesh input that contains the initial sample positions that will be used to generate advector particles. The number of particles simulated can be increased by increasing the number of nodes in this mesh.

Parameters

The parameters of the fast_advector macro are the same as these for the standard advector module except that the glyph normalize and scale parameters have been removed.

Outputs

The outputs of the fast_advector macro are the same as these for the standard advector module.

Utility Macros

The FastAdvect functional macro takes field data, probe and parameter inputs and outputs a generated point mesh containing the advector particles. The fast_advector_noui functional macro uses the FastAdvect macro and adds an internal paramter block and a DataObject output that can be directly rendered. This macro can be used when a separate user interface is being used to control the advection. The fast_advector user macro extends the fast_advector_noui macro by adding a standard module user interface. This user macro will be normally used.

Example

Two example applications are provided with the FastAdvector project. The FastAdvectorEg1 example application reads the 'bluntfin' data-set and injects an array of particles into this field. This example is comparable to the standard advector example that is supplied with AVS/Express. You should be able to see that a much higher number of particles is being simulated. The FastAdvectorEg2 example application reads in a data-set that represents the convection in a room. This example is a particularly good demonstration of how a point-cloud can be used.

Files

iac_proj/f_advect/fadvmacs.v contains the V definitions of the FastAdvectUI user interface macro, the FastAdvect and fast_advector_noui functional macros and the fast_advector user macro.

iac_proj/f_advect/fadvapps.v contains the V definitions of the FastAdvectorEg1 and FastAdvectorEg2 example applications.

Prerequisites

This project requires the following components to be installed correctly. Without these components the project will not work.

Other Notes

The FastAdvectorMacs library inherits its process. As this library contains no procedural code, the process is not important.

Author

Ian Curington,
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