VisIt
Encyclopedia
VisIt is an open source
Open source
The term open source describes practices in production and development that promote access to the end product's source materials. Some consider open source a philosophy, others consider it a pragmatic methodology...

 interactive parallel visualization and graphical analysis tool for viewing scientific data. It can be used to visualize scalar
Scalar field
In mathematics and physics, a scalar field associates a scalar value to every point in a space. The scalar may either be a mathematical number, or a physical quantity. Scalar fields are required to be coordinate-independent, meaning that any two observers using the same units will agree on the...

 and vector field
Vector field
In vector calculus, a vector field is an assignmentof a vector to each point in a subset of Euclidean space. A vector field in the plane for instance can be visualized as an arrow, with a given magnitude and direction, attached to each point in the plane...

s defined on 2D
2D geometric model
A 2D geometric model is a geometric model of an object as two-dimensional figure, usually on the Euclidean or Cartesian plane.Even though all material objects are three-dimensional, a 2D geometric model is often adequate for certain flat objects, such as paper cut-outs and machine parts made of...

 and 3D
Three-dimensional space
Three-dimensional space is a geometric 3-parameters model of the physical universe in which we live. These three dimensions are commonly called length, width, and depth , although any three directions can be chosen, provided that they do not lie in the same plane.In physics and mathematics, a...

 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.

History

VisIt was developed by the Department of Energy
United States Department of Energy
The United States Department of Energy is a Cabinet-level department of the United States government concerned with the United States' policies regarding energy and safety in handling nuclear material...

 (DOE) Advanced Simulation and Computing Initiative
Advanced Simulation and Computing Program
The Advanced Simulation and Computing Program is a supercomputing initiative of the United States government, created to help the maintenance of the United States nuclear arsenal after the 1992 moratorium on nuclear testing.Some of the program's supercomputers are on the TOP500...

 (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 extremely large data, it is also well suited for visualizing data from typical simulations on desktop systems. Because of its applicability beyond visualizing terascale data, VisIt is made freely available. In 2005 it won an R&D 100 Award..

VisIt is now supported by the DOE's SciDAC (Scientific Discovery Through Advanced Computing) program to assist with analysis and visualization of the large datasets generated by open scientific computing. As such, it is now developed in part by many organizations, including Oak Ridge National Laboratory
Oak Ridge National Laboratory
Oak Ridge National Laboratory is a multiprogram science and technology national laboratory managed for the United States Department of Energy by UT-Battelle. ORNL is the DOE's largest science and energy laboratory. ORNL is located in Oak Ridge, Tennessee, near Knoxville...

, Lawrence Berkeley National Laboratory
Lawrence Berkeley National Laboratory
The Lawrence Berkeley National Laboratory , is a U.S. Department of Energy national laboratory conducting unclassified scientific research. It is located on the grounds of the University of California, Berkeley, in the Berkeley Hills above the central campus...

, and the University of California, Davis
University of California, Davis
The University of California, Davis is a public teaching and research university established in 1905 and located in Davis, California, USA. Spanning over , the campus is the largest within the University of California system and third largest by enrollment...

, among others. Since VisIt is open source and released under the BSD license, many others have made contributions as well.

Summary

VisIt is an open source, turnkey application for large scale simulated and
experimental data sets. Its charter goes beyond pretty pictures; the
application is an infrastructure for parallelized, general post-processing of
extremely massive data sets. Target use cases include data exploration,
comparative analysis, visual debugging, quantitative analysis
Statistics
Statistics is the study of the collection, organization, analysis, and interpretation of data. It deals with all aspects of this, including the planning of data collection in terms of the design of surveys and experiments....

, and
presentation graphics.

The VisIt product delivers the efforts of many software developers in a single
package. First, VisIt leverages several third party libraries: the Qt
Qt (toolkit)
Qt is a cross-platform application framework that is widely used for developing application software with a graphical user interface , and also used for developing non-GUI programs such as command-line tools and consoles for servers...

 widget
library for its user interface, the Python programming language for a command
line interpreter, and the Visualization ToolKit (VTK)
VTK
The Visualization Toolkit is an open-source, freely available software system for 3D computer graphics, image processing and visualization. VTK consists of a C++ class library and several interpreted interface layers including Tcl/Tk, Java, and Python. Kitware, whose team created and continues to...

 library for its data
model and many of its visualization algorithms. On top of that, an
additional fifty man-years worth of effort have been devoted to the
development of VisIt itself. The VisIt-specific effort has largely been
focused on parallelization for large data sets, user interface
User interface
The user interface, in the industrial design field of human–machine interaction, is the space where interaction between humans and machines occurs. The goal of interaction between a human and a machine at the user interface is effective operation and control of the machine, and feedback from the...

, implementing
custom data analysis routines, addressing non-standard data models (such as
adaptive mesh refinement
Adaptive mesh refinement
In numerical analysis, adaptive mesh refinement is a method of adaptive meshing. Central to any Eulerian method is the manner in which it discretizes the continuous domain of interest into a grid of many individual elements...

 (AMR) and mixed materials zones), and creating a
robust overall product. VisIt consists over one and a half million lines of
code, and its third party libraries have an additional million lines of code.
It has been ported to Windows
Microsoft Windows
Microsoft Windows is a series of operating systems produced by Microsoft.Microsoft introduced an operating environment named Windows on November 20, 1985 as an add-on to MS-DOS in response to the growing interest in graphical user interfaces . Microsoft Windows came to dominate the world's personal...

, Mac
Macintosh
The Macintosh , or Mac, is a series of several lines of personal computers designed, developed, and marketed by Apple Inc. The first Macintosh was introduced by Apple's then-chairman Steve Jobs on January 24, 1984; it was the first commercially successful personal computer to feature a mouse and a...

, and many Unix variants
Unix-like
A Unix-like operating system is one that behaves in a manner similar to a Unix system, while not necessarily conforming to or being certified to any version of the Single UNIX Specification....

, including AIX,
IRIX
IRIX
IRIX is a computer operating system developed by Silicon Graphics, Inc. to run natively on their 32- and 64-bit MIPS architecture workstations and servers. It was based on UNIX System V with BSD extensions. IRIX was the first operating system to include the XFS file system.The last major version...

, Solaris, Tru64, and Linux
Linux
Linux is a Unix-like computer operating system assembled under the model of free and open source software development and distribution. The defining component of any Linux system is the Linux kernel, an operating system kernel first released October 5, 1991 by Linus Torvalds...

, including ports for SGI's Altix
Altix
Altix is a line of servers and supercomputers produced by Silicon Graphics , based on Intel processors. It succeeded the MIPS/IRIX-based Origin 3000 servers....

,
Cray's XT4, and many commodity clusters.

The basic design is a client–server model, where the server is parallelized.
The client–server aspect allows for effective visualization in a remote
setting, while the parallelization of the server allows for the largest data
sets to be processed reasonably interactively. The tool has been used to
visualize many large data sets, including a twenty seven billion data point
structured grid, a one billion point particle simulation, and
curvilinear, unstructured
Unstructured grid
An unstructured grid is a tessellation of a part of the Euclidean plane or Euclidean space by simple shapes, such as triangles or tetrahedra, in an irregular pattern...

, and AMR
Adaptive mesh refinement
In numerical analysis, adaptive mesh refinement is a method of adaptive meshing. Central to any Eulerian method is the manner in which it discretizes the continuous domain of interest into a grid of many individual elements...

 meshes with hundreds of millions to billions of
elements. The most common form of the server is as a stand alone process
that reads in data from files. However, an alternate form exists where a
simulation code can link in "lib-VisIt" and become itself the server,
allowing for in situ
In situ
In situ is a Latin phrase which translated literally as 'In position'. It is used in many different contexts.-Aerospace:In the aerospace industry, equipment on board aircraft must be tested in situ, or in place, to confirm everything functions properly as a system. Individually, each piece may...

 visualization and analysis.

VisIt follows a data flow network
Data flow diagram
A data flow diagram is a graphical representation of the "flow" of data through an information system, modelling its process aspects. Often they are a preliminary step used to create an overview of the system which can later be elaborated...

 paradigm where interoperable modules are
connected to perform custom analysis. The modules come from VisIt's five
primary user interface abstractions and there are many examples of each.
There are twenty one ``plots" (ways to render data), forty-two
``operators" (ways to manipulate data), eighty-five file format readers, over
fifty ``queries" (ways to extract quantitative information), and over one
hundred ``expressions" (ways to create derived quantities). Further, a
plugin capability allows for dynamic incorporation of new plot, operator, and
database modules. These plugins can be partially code generated, even
including automatic generation of Qt
Qt (toolkit)
Qt is a cross-platform application framework that is widely used for developing application software with a graphical user interface , and also used for developing non-GUI programs such as command-line tools and consoles for servers...

 and Python
Python (programming language)
Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

 user interfaces.

The VisIt project originated at Lawrence Livermore National Laboratory as part
of the Advanced Simulation and Computing (ASC)
Advanced Simulation and Computing Program
The Advanced Simulation and Computing Program is a supercomputing initiative of the United States government, created to help the maintenance of the United States nuclear arsenal after the 1992 moratorium on nuclear testing.Some of the program's supercomputers are on the TOP500...

 program of the Department of Energy's
United States Department of Energy
The United States Department of Energy is a Cabinet-level department of the United States government concerned with the United States' policies regarding energy and safety in handling nuclear material...

 (DOE) National Nuclear Security Agency, but it has gone on to become
a distributed project being developed by several groups. Major hubs for the
project come from:
  • VACET, a center for enabling technologies from DOE's SciDAC (Scientific Discovery through Advanced Computing) program from its Office of Science,
  • from ASC
    Advanced Simulation and Computing Program
    The Advanced Simulation and Computing Program is a supercomputing initiative of the United States government, created to help the maintenance of the United States nuclear arsenal after the 1992 moratorium on nuclear testing.Some of the program's supercomputers are on the TOP500...

    , and
  • from GNEP (the Global Nuclear Energy Partnership from the DOE's Office of Nuclear Energy).

The project has twenty developers from many organizations and universities, including five DOE Laboratories.
VisIt received an R&D 100 Award in 2005 and is downloaded approximately twenty five thousand times per year.

Features

  • Has rich feature set for scalar
    Scalar field
    In mathematics and physics, a scalar field associates a scalar value to every point in a space. The scalar may either be a mathematical number, or a physical quantity. Scalar fields are required to be coordinate-independent, meaning that any two observers using the same units will agree on the...

    , vector
    Vector field
    In vector calculus, a vector field is an assignmentof a vector to each point in a subset of Euclidean space. A vector field in the plane for instance can be visualized as an arrow, with a given magnitude and direction, attached to each point in the plane...

    , and tensor field
    Tensor field
    In mathematics, physics and engineering, a tensor field assigns a tensor to each point of a mathematical space . Tensor fields are used in differential geometry, algebraic geometry, general relativity, in the analysis of stress and strain in materials, and in numerous applications in the physical...

     visualization. VisIt handles 2D and 3D data equally well. VisIt also has the ability to animate
    Animation
    Animation is the rapid display of a sequence of images of 2-D or 3-D artwork or model positions in order to create an illusion of movement. The effect is an optical illusion of motion due to the phenomenon of persistence of vision, and can be created and demonstrated in several ways...

     data, allowing users to see the time evolution
    Time evolution
    Time evolution is the change of state brought about by the passage of time, applicable to systems with internal state . In this formulation, time is not required to be a continuous parameter, but may be discrete or even finite. In classical physics, time evolution of a collection of rigid bodies...

     of their data.

  • Provides qualitative and quantitative visualization
    Visualization (graphic)
    Visualization is any technique for creating images, diagrams, or animations to communicate a message. Visualization through visual imagery has been an effective way to communicate both abstract and concrete ideas since the dawn of man...

     and analysis
    Analysis
    Analysis is the process of breaking a complex topic or substance into smaller parts to gain a better understanding of it. The technique has been applied in the study of mathematics and logic since before Aristotle , though analysis as a formal concept is a relatively recent development.The word is...

    . VisIt 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. It also supports a generalized query interface, which allows you to query derived quantities such as volume
    Volume
    Volume is the quantity of three-dimensional space enclosed by some closed boundary, for example, the space that a substance or shape occupies or contains....

     or surface area
    Surface area
    Surface area is the measure of how much exposed area a solid object has, expressed in square units. Mathematical description of the surface area is considerably more involved than the definition of arc length of a curve. For polyhedra the surface area is the sum of the areas of its faces...

    .

  • Supports multiple mesh types. VisIt provides support for a wide range of computational meshes, including two- and three-dimensional point, rectilinear, curvilinear, and unstructured
    Unstructured grid
    An unstructured grid is a tessellation of a part of the Euclidean plane or Euclidean space by simple shapes, such as triangles or tetrahedra, in an irregular pattern...

     meshes. In addition, VisIt supports structured  AMR
    Adaptive mesh refinement
    In numerical analysis, adaptive mesh refinement is a method of adaptive meshing. Central to any Eulerian method is the manner in which it discretizes the continuous domain of interest into a grid of many individual elements...

     meshes and CSG
    Constructive solid geometry
    Constructive solid geometry is a technique used in solid modeling. Constructive solid geometry allows a modeler to create a complex surface or object by using Boolean operators to combine objects...

     meshes.

  • Powerful, full-featured graphical user interface
    Graphical user interface
    In computing, a graphical user interface is a type of user interface that allows users to interact with electronic devices with images rather than text commands. GUIs can be used in computers, hand-held devices such as MP3 players, portable media players or gaming devices, household appliances and...

    . VisIt’s graphical user interface allows novice users to quickly get started visualizing their data, as well as allowing power users access to advanced features. It automatically creates time-based animation
    Animation
    Animation is the rapid display of a sequence of images of 2-D or 3-D artwork or model positions in order to create an illusion of movement. The effect is an optical illusion of motion due to the phenomenon of persistence of vision, and can be created and demonstrated in several ways...

    s 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 allows users to pan
    Panning (camera)
    In photography, panning refers to the horizontal movement or rotation of a still or video camera, or the scanning of a subject horizontally on video or a display device...

    , zoom
    Zoom
    Zoom is an onomatopoeiac sound that indicates swiftness.Zoom may also refer to:-Technology:* Zoom lens, a lens assembly allowing for adjustable focal length* Digital zoom, an electronic emulation of focal length change...

    , 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. VisIt employs a distributed
    Distributed computing
    Distributed computing is a field of computer science that studies distributed systems. A distributed system consists of multiple autonomous computers that communicate through a computer network. The computers interact with each other in order to achieve a common goal...

     and parallel
    Parallel computing
    Parallel computing is a form of computation in which many calculations are carried out simultaneously, operating on the principle that large problems can often be divided into smaller ones, which are then solved concurrently . There are several different forms of parallel computing: bit-level,...

     architecture in order to handle extremely large data sets interactively. VisIt’s rendering
    Rendering (computer graphics)
    Rendering is the process of generating an image from a model , by means of computer programs. A scene file contains objects in a strictly defined language or data structure; it would contain geometry, viewpoint, texture, lighting, and shading information as a description of the virtual scene...

     and data processing
    Data processing
    Computer data processing is any process that a computer program does to enter data and summarise, analyse or otherwise convert data into usable information. The process may be automated and run on a computer. It involves recording, analysing, sorting, summarising, calculating, disseminating and...

     capabilities are split into viewer and engine components that may be distributed across multiple machines:
    • Viewer is responsible for rendering
      Rendering (computer graphics)
      Rendering is the process of generating an image from a model , by means of computer programs. A scene file contains objects in a strictly defined language or data structure; it would contain geometry, viewpoint, texture, lighting, and shading information as a description of the virtual scene...

       and is typically run on a local desktop or visualization server so that it can leverage the extremely powerful graphics cards.
    • Engine is responsible for the bulk of the data processing and input/output
      Input/output
      In computing, input/output, or I/O, refers to the communication between an information processing system , and the outside world, possibly a human, or another information processing system. Inputs are the signals or data received by the system, and outputs are the signals or data sent from it...

        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
      Single threading
      In computer programming, single threading is the processing of one command at a time. The opposite of single threading is multithreading. While it has been suggested that the term single threading is misleading, the term has been widely accepted within the functional programming community....

       on a single processor or in parallel on thousands of processors.

  • Interfaces with C++
    C++
    C++ is a statically typed, free-form, multi-paradigm, compiled, general-purpose programming language. It is regarded as an intermediate-level language, as it comprises a combination of both high-level and low-level language features. It was developed by Bjarne Stroustrup starting in 1979 at Bell...

    , Python
    Python (programming language)
    Python is a general-purpose, high-level programming language whose design philosophy emphasizes code readability. Python claims to "[combine] remarkable power with very clear syntax", and its standard library is large and comprehensive...

    , and Java
    Java (programming language)
    Java is a programming language originally developed by James Gosling at Sun Microsystems and released in 1995 as a core component of Sun Microsystems' Java platform. The language derives much of its syntax from C and C++ but has a simpler object model and fewer low-level facilities...

    . 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
    Batch processing
    Batch processing is execution of a series of programs on a computer without manual intervention.Batch jobs are set up so they can be run to completion without manual intervention, so all input data is preselected through scripts or command-line parameters...

     data using a scripting language. This feature can be used to create extremely sophisticated animations or implement regression suites.

  • Extensible with dynamically loaded plug-ins. VisIt achieves extensibility
    Extensibility
    In software engineering, extensibility is a system design principle where the implementation takes into consideration future growth. It is a systemic measure of the ability to extend a system and the level of effort required to implement the extension...

     through the use of dynamically loaded
    Dynamic loading
    Dynamic loading is a mechanism by which a computer program can, at run time, load a library into memory, retrieve the addresses of functions and variables contained in the library, execute those functions or access those variables, and unload the library from memory...

     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.

External links

The source of this article is wikipedia, the free encyclopedia.  The text of this article is licensed under the GFDL.
 
x
OK