LEA Flow Textures

Synopsis

This module provides an implementation of the "Lagrangian-Eulerian Advection for Unsteady Flow Visualization" algorithm to visualize 2D unsteady vector fields.

Input Ports

Name Type Description

Vector_Field Mesh_Struct+Node_Data Field with 2D vector node data.

Parameters

Name Type Description Name

nx, ny int output texture resolution Fields
integrationStep int integration step size Slider
blendCoef float
temporal blending Slider
licOn int enables LIC computation Toggle Button
normalizationOn int LIC vector field normalization Toggle Button
intensityCorrectionOn int LIC intensity correction Toggle Button
kernelLength int LIC kernel length Slider
maskOn int enable mask Toggle Button
alphaOn int transparency Toggle Button
velocityMaskVersion int contrast
Slider
nInitialSteps int number of initial steps Field
nStepsAtOnce int number of steps at once Field
trigger int automatic update (1); continuous run (2) Toggle Button

Output Ports

Name Type Description

lea_img IPfld the computed LEA texture
obj DefaultObject renderable version of lea_img
textured_obj DefaultObject textured input field

Description

This module provides an implementation of the "Lagrangian-Eulerian Advection for Unsteady Flow Visualization" algorithm to visualize 2D unsteady vector fields.

Vector fields are represented as grayscale textures, spatially correlated along the flow. This technique produces still images of a steady vector field, but is mainly intended to depict the dynamic behavior of unsteady vector fields. In this case, a series of subsequent textures will display the path of thousands of particles in a comprehensive and intuitive manner. These particles follow pathlines in time while any single texture shows the instantaneous structure of the flow.

Parameters

Inputs

Vector_Field

The vector field to be visualized. Must be a 2D field with either two scalar components or one component with veclen = 2. When vector field values change, the computation of a new texture is triggered. This is the way to produce unsteady flow animations. Note that subsequent vector fields must change smoothly in order to produce smooth animations. It may be useful feed this module with interpolated intermediate vector fields for optimal results.

Parameters

nx, ny

These parameters set the resulting output texture resolution. The image dimensions are forced to respect the input vector field aspect ratio.

integrationStep

Set the integration step size for the advector calculation. This integration step size specifies the maximum distance the texel property will be advected between two computations. The size, in texels, is relative to the output texture resolution. If you double nx and ny, do not forget to double the integrationStep to produce higher resolution animation of the same phenomenon.

blendCoef

Specifies the temporal blending coefficient. This coefficient controls a long time exposure photography effect enabling spatial correlation in the resulting image. A typical value for blendCoef is 0.9. If blendCoef = 0, there is no blending and the output texture shows the instantaneous distribution of particle properties.

licOn

If set enables LIC filter computation. This filter enhances the resulting texture by fading out the high frequencies along the flow.

normalizationOn

LIC vector field normalization.

intensityCorrectionOn

The LIC filters correct the resulting texture image luminosity based on the local velocity magnitude.

kernelLength

LIC filter kernel length. A typical range for this parameter is between integrationStep and 2*integrationStep .

maskOn

If set applies a mask to the resulting image to remove noise from areas with low velocity.

alphaOn

The image transparency is set depending on the local velocity magnitude.

velocityMaskVersion

This parameter sets the mask contrast value. On the user interface this slider is called Contrast.

nInitialSteps

Displays the first image after nInitialSteps advection steps. This is necessary to have a well correlated first image. A good value for nInitialSteps is 15 to 30.

nStepsAtOnce

Number of computation steps between generated images. Allows to advect property over a longer distance without changing the integrationStep .

trigger

Sets the automatic computation behavior:

On the user interface this parameter is computed from the setting of the two toggle buttons Automatic Update and run.

Outputs

lea_img

The computed texture image.

obj

Renderable version of lea_img.

textured_obj

The computed LEA image textured on a quadrilateral with the same aspect ratio of the input vector field.

Example

The LEA_Example application display LEA Flow Textures on a slice of the wind.fld demo dataset. Push the run toggle to see the flow of the vector field.

Files

iac_proj/lea/lea.v

Creates the IAC_PROJ.LEA library.

iac_proj/lea/lea_lib.v

Creates the LEALib library that integrates the build of the lea library (liblea.a) into the module build procedure.

iac_proj/lea/lea_mods.v

Creates the LEAMods library containing the low-level module LEACore and the LEAParams parameter block.

iac_proj/lea/lea_macs.v

Creates the LEAMacs library containing the high-level functional macro LEAFunc, user interface macro LEAUI and the user macro LEA_Advector as well as the support macros LEAUIParams, AdvectionUI, LICUI, VMaskUI and ComputationUI.

iac_proj/lea/lea_apps.v

Creates the LEAApps library containing the example application LEA_Example.

iac_proj/lea/lea_lib-1.0

The computation routines for the LEA algorithm. This directory is included as is received from the author. Minor changes have been applied (see ChangeLog).

Special compilation instructions

As the LEA Advector module uses an external library you might need to change the avsenv file. If there are problems compiling change the last line of the avsenv file to include the absolute path of the directory instead of a '.'

change the avsenv as follows:

original:

	#   WARNING: this file is program generated.
	#   Remove these two lines to protect the file from overwrites.
	XP_PATH=. $XP_ROOT

to

	#   WARNING: this file is program generated.
	#   Remove these two lines to protect the file from overwrites.
	XP_PATH=<absolute_path> $XP_ROOT  

i.e.:

	#   WARNING: this file is program generated.
	#   Remove these two lines to protect the file from overwrites.
	XP_PATH=C:\iac $XP_ROOT  

Author

Bruno Jobard
CSCS, Swiss Center for Scientific Computing

Modifications

Mario Valle
CSCS, Swiss Center for Scientific Computing

Tobias Schiebeck
Manchester Visualization Centre

Contact

International AVS Centre
Manchester Visualization Centre
Kilburn Building
University of Manchester
Oxford Road
Manchester
United Kingdom
M13 9PL
Bruno Jobard
bjobard@univ-pau.fr
LIUPPA, Université de Pau, BP 1155,
64013 PAU Cedex, France

See Also

The LEA algorithm is described in the paper "Lagrangian-Eulerian Advection for Unsteady Flow Visualization" written by Bruno Jobard, Gordon Erlebacher and M.Y. Hussaini. Other related papers are:

  1. Bruno Jobard, Gordon Erlebacher and Youssuf Hussaini, Lagrangian-Eulerian Advection of Noise and Dye Textures for Unsteady Flow Visualization, in IEEE Transactions on Visualization and Computer Graphics 8(3): 211-222 July-September 2002.
  2. Youssuf M. Hussaini, Gordon Erlebacher and Bruno Jobard, Real-Time Visualization of Unsteady Vector Fields, to appear in journal of American Institute for Aerospace and Aeronautics.
  3. Bruno Jobard and Jean M. Favre, Advanced Flow Representations Applied to Wind Visualization. In proceeding of the 8th Workshop on Meteorological Operational Systems, ECMWF in Reading (UK), November 12-16, 2001.
  4. Bruno Jobard, Gordon Erlebacher and Youssuf Hussaini, Lagrangian-Eulerian Advection for Unsteady Flow Visualization , In proceedings of IEEE Visualization'2001, San Diego, California, October 2001.

Paper and videos can be downloaded also from:
http://www.cscs.ch/~bjobard/Research/Publications/vis2001/lea_paper.htm