CFD Online Logo CFD Online URL
Home > Wiki > Visit


From CFD-Wiki

Revision as of 06:32, 8 September 2005 by Praveen (Talk | contribs)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

VisIt is a free interactive parallel visualization and graphical analysis tool for viewing scientific data on Unix and PC platforms. Users can quickly generate visualizations from their data, animate them through time, manipulate them, and save the resulting images for presentations. VisIt contains a rich set of visualization features so that you can view your data in a variety of ways. It can be used to visualize scalar and vector fields defined on two- and three-dimensional (2D and 3D) structured and unstructured meshes. VisIt was designed to handle very large data set sizes in the terascale range and yet can also handle small data sets in the kilobyte range. See the table below for more details about the tool's features.


VisIt was developed by the Department of Energy (DOE) Advanced Simulation and Computing Initiative (ASCI) to visualize and analyze the results of terascale simulations. It was developed as a framework for adding custom capabilities and rapidly deploying new visualization technologies. After an initial prototype effort, work on VisIt began in the summer of 2000, and the initial version of VisIt was released in the fall of 2002. Although the primary driving force behind the development of VisIt was for visualizing terascale data, it is also well suited for visualizing data from typical simulations on desktop systems. Because of its applicability beyond visualizing terascale data, we are making VisIt freely available as open source software.

Key Features

Feature Description/Example

Has rich feature set for scalar and vector field visualization

VisIt's visualization capabilities are primarily grouped into two categories:

  • Plots are used to visualize data and include boundary, contour, curve, mesh, pseudocolor, streamline, surface, vector, and volume. See plotting screen shots.
  • Operators consist of operations that can be performed on the data prior to visualization. Some examples include slice, index select, iso-surface, onion peel, reflect, threshold, and part selection. See operator screen shots.

VisIt handles 2D and 3D data equally well. VisIt also has the ability to animate data, allowing users to see the time evolution of their data. See table of visualization features.

Provides qualitative and quantitative visualization and analysis

VisIt is also a powerful analysis tool. It provides support for derived fields, which allow new fields to be calculated using existing fields. For example, if a dataset contains a velocity field, it is possible to define a new field that is the velocity magnitude. VisIt's quantitative analysis tools include:

  • Line-out, which allows you to create curves from higher dimensional datasets by interactively defining lines using the mouse.
  • Pick and query, which allows you to query the dataset by clicking on images.

VisIt also supports a generalized query interface, which allows you to query derived quantities such as volume or surface area. See data exploration screen shots.

Supports multiple mesh types

VisIt provides support for a wide range of computational meshes, including two- and three-dimensional rectilinear, curvilinear, and unstructured meshes. See screenshots of 2D and 3D images produced by VisIt.

Powerful, full-featured graphical user interface (GUI)

VisIt's graphical user interface (see screen shots) allows novice users to quickly get started visualizing their data, as well as allowing power users access to advanced features. VisIt automatically creates time-based animations from data sets that contain multiple time steps. In addition, it also has a keyframe animation capability that allows users to create sophisticated animations. VisIt's on-line help system contains a hyperlinked version of the User's Manual. VisIt allows users to pan, zoom, and rotate objects interactively using the mouse. It also gives users the ability to interactively size and position geometric objects such as planes and spheres.

Parallel and distributed architecture for visualizing terascale data sets

VisIt employs a distributed and parallel architecture in order to handle extremely large data sets interactively. VisIt's rendering and data processing capabilities are split into viewer and engine components that may be distributed across multiple machines:

  • Viewer'Responsible for rendering and is typically run on a local desktop or visualization server so that it can leverage the extremely powerful graphics cards that have been developed in the last few years.
  • Engine'Responsible for the bulk of the data processing and input/output (I/O) and is typically run on a remote machine where the data is located. This eliminates the need move the data and makes high-end compute and I/O resources available to it. The engine can be run serially on a single processor or in parallel on thousands of processors.

Interfaces with C++, Python, and Java

VisIt also supports C++, Python and Java interfaces. The C++ and Java interfaces make it possible to provide alternate user interfaces for VisIt or allow existing C++ or Java applications to add visualization support. The Python scripting interface gives users the ability to batch process data using a powerful scripting language. This feature can be used to create extremely sophisticated animations or implement regression suites. It also allows simulation systems that use Python as a back-plane to easily integrate visualization capabilities into their systems.

Extensible with dynamically loaded plug-ins

VisIt achieves extensibility through the use of dynamically loaded plugins. All of VisIt's plots, operators, and database readers are implemented as plugins and are loaded at run-time from the plugin directory. New plugins can be added simply by installing them in this directory. VisIt comes with a graphical plugin creation tool, which greatly simplifies the process of creating new plugins. The user describes the properties of the plugin and then the tool generates most of the code necessary to implement the plugin. For example, in the case of an operator, the plugin creation tool creates the code necessary for the graphical user interface attribute window; the C++, Python, and Java interfaces; and the code necessary to interface to VisIt. The only code you need to write is the C++ code that actually performs the operation.

Multi-platform support

VisIt operates on UNIX (Irix, Tru64, AIX, Linux, Solaris) and Windows platforms. Software for these platforms can be downloaded.

Open-source code

VisIt's code is open source, allowing programmers to read, redistribute, and modify the source code.

External Link

My wiki