ParaView
Lua error in package.lua at line 80: module 'strict' not found.
250px | |
300px
Paraview 3.12
|
|
Developer(s) | Sandia National Laboratory, Kitware Inc, Los Alamos National Laboratory |
---|---|
Stable release | 4.3.1[1] / January 13, 2015[2] |
Written in | C, C++, Fortran, Python |
Operating system | Unix/Linux, Mac OS X, Microsoft Windows |
Type | Scientific visualization, Interactive visualization |
License | BSD |
Website | www.paraview.org |
ParaView is an open source multiple-platform application for interactive, scientific visualization. It has a client–server architecture to facilitate remote visualization of datasets, and generates level of detail (LOD) models to maintain interactive frame rates for large datasets. It is an application built on top of the Visualization Tool Kit (VTK) libraries. Where VTK is a set of libraries that provide visualization services for data, task, and pipeline parallelism, ParaView is an application designed for data parallelism on shared-memory or distributed-memory multicomputers and clusters. It can also be run as a single-computer application.
Contents
Summary
ParaView is an open source, multi-platform data analysis and visualization application. ParaView users can quickly build visualizations to analyze their data using qualitative and quantitative techniques. The data exploration can be done interactively in 3D or programmatically using ParaView's batch processing capabilities.
ParaView was developed to analyze extremely large datasets using distributed memory computing resources. It can be run on supercomputers to analyze datasets of terascale as well as on laptops for smaller data.
ParaView is an application framework as well as a turn-key application. The ParaView code base is designed in such a way that all of its components can be reused to quickly develop vertical applications. This flexibility allows ParaView developers to quickly develop applications that have specific functionality for a specific problem domain.
ParaView runs on distributed and shared memory parallel and single processor systems. It has been successfully tested on Windows, Mac OS X, Linux, IBM Blue Gene, Cray Xt3 and various Unix workstations, clusters and supercomputers. Under the hood, ParaView uses Visualization Tool Kit (VTK) as the data processing and rendering engine and has a user interface written using Qt.
The goals of the ParaView team include the following:
- Develop an open-source, multi-platform visualization application.
- Support distributed computation models to process large data sets.
- Create an open, flexible, and intuitive user interface.
- Develop an extensible architecture based on open standards.
History
The ParaView project started in 2000 as a collaborative effort between Kitware, Inc. and Los Alamos National Laboratory through funding provided by the US Department of Energy ASCI Views program. The first public release was announced in October 2002.
Independent of ParaView, Kitware developed a web-based visualization system in December 2001. This project was funded by Phase I and II SBIRs from the US Army Research Laboratory and eventually became the ParaView Enterprise Edition. PVEE significantly contributed to the development of ParaView's client/server architecture.
In September 2005, Kitware, Sandia National Labs and CSimSoft started the development of ParaView 3.0. ParaView 3.0 was released in May 2007.
Features
Visualization capabilities
- Handles structured (uniform rectilinear, non-uniform rectilinear, and curvilinear grids), unstructured, polygonal, image, multi-block and AMR data types.
- All processing operations (filters) produce datasets. This allows the user to either further process the result of every operation or the results as a data file. For example, the user can extract a cut surface, reduce the number of points on this surface by masking and apply glyphs (i.e. vector arrows) to the result.
- Vectors fields can be inspected by applying glyphs (arrows, cones, lines, spheres, and various 2D glyphs) to the points in a dataset. The glyphs can be scaled by scalars, vector component or vector magnitude and can be oriented using a vector field.
- Contours and isosurfaces can be extracted from all data types using scalars or vector components. The results can be colored by any other variable or processed further. When possible, structured data contours/isosurfaces are extracted with fast and efficient algorithms which make use of the efficient data layout.
- A sub-region of a dataset can be extracted by cutting or clipping with an arbitrary plane (all data types), specifying a threshold criteria to exclude cells (all data types) and/or specifying a VOI (volume of interest - structured data types only).
- Streamlines can be generated using constant step or adaptive integrators. The results can be displayed as points, lines, tubes, ribbons, etc., and can be processed by a multitude of filters. Particle paths can be extracted from temporal datasets.
- The points in a dataset can be warped (displaced) with scalars (given a user defined displacement vector) or with vectors (unavailable for non-linear rectilinear grids).
- With the array calculator, new variables can be computed using existing point or cell field arrays. A multitude of scalar and vector operations are supported.
- Advanced data processing can be done using the Python Programmable filter with VTK, NumPy, SciPy and other Python modules.
- Data can be probed at a point or along a line. The results are displayed either graphically or as text and can be exported for further analysis. Data can also be extracted over time (including statistical information such as minimum, maximum and standard deviation).
- Data can be inspected quantitatively using the powerful selection mechanism and the spreadsheet view: The selection mechanism allows the user to focus on an important subset of a dataset using either interactive selection by picking a point or selecting a rectangular area as well quantitive selection mechanisms.
- The spreadsheet view allows the user to inspect either the whole dataset or the selected subset as raw numbers.
- ParaView provides many other data sources and filters by default. Any VTK source or filter can be added by providing a simple XML description (VTK provides hundreds of algorithms, see the VTK documentation for a complete list).
Input/output and file format
- Supports a variety of file formats including: VTK (new and legacy, all types including parallel, ascii and binary, can read and written).
- EnSight 6 and EnSight Gold (all types including parallel, ascii and binary; multiple parts are supported -each part is loaded separately and can be processed individually) (read only).
- Plot3D (ascii and binary, C or Fortran; support for multiple blocks, I blanking is currently partially supported) (read only).
- Various polygonal file formats including STL and BYU (by default, read only, other VTK writers can be added by writing XML description).
- Many other file formats are supported. See ParaView Readers and ParaView Writers for a full list.
- Any VTK source or filter can be added by providing a simple XML description (VTK provides many readers, see VTK documentation for a complete list).
- Since ParaView is open source, the user can easily provide her own readers and writers.
User interaction
- Intuitive and flexible interface based on the Qt application framework.
- Allows changing the parameters of many filters by directly interacting with the 3D view using 3D widgets (manipulators). For example, the user can manipulate the seed line of a streamline filter by clicking on a control point and dragging the line to the new location.
- Compact user interface design. By default, all important tools are located in the main window. This eliminates the need for large number of windows which are often difficult to locate on a cluttered desktop. It is also possible to shear off inspectors from the main window.
- Maintains interactive frame rates even when working with large data through the use of level-of-detail (LOD) models. The user determines the threshold (number of points) beyond which a reduced version of the model is displayed during interaction (the size of the model can also be adjusted). Once the interaction is over, the large model is rendered.
Large data and distributed computing
- Runs parallel on distributed and shared memory systems using MPI. These include workstation clusters, visualization systems, large servers, supercomputers, etc.
- The user interface is run on separate computer using the client/server mode.
- ParaView uses the data parallel model in which the data is broken into pieces to be processed by different processes. Most of the visualization algorithms function without any change when running in parallel. ParaView also supports ghost levels used to produce piece invariant results. Ghost levels are points/cells shared between processes and are used by algorithms which require neighborhood information.
- Supports both distributed rendering (where the results are rendered on each node and composited later using the depth buffer), local rendering (where the resulting polygons are collected on one node and rendered locally) and a combination of both (for example, the level-of-detail models can be rendered locally whereas the full model is rendered in a distributed manner). This provides scalable rendering for large data without sacrificing performance when working with smaller data.
- Distributed rendering and tiled-display is done using Sandia's Ice-T library.
Scripting and extensibility
- ParaView is fully scriptable using the simple but powerful Python language. ParaView's data engine, called server manager, is fully accessible through the Python interface. All changes made to the engine through Python are automatically reflected to the user interface.
- ParaView can be run as a batch application using the Python interface. We have successfully run ParaView on supercomputers include IBM Blue Gene and Cray Xt3 using the batch mode.
- Distributed data processing can be done in Python using the Python Programmable Filter. This filter functions seamlessly with NumPy and SciPy.
- Additional modules can be added by either writing an XML description of the interface or by writing C++ classes. The XML interface allows users/developers to add their own VTK filters to ParaView without writing any special code and/or re-compiling. See Plug-in How To and Extending ParaView at Compile Time for details.
ParaView in use
- For examples of a wide variety of ParaView uses please visit the Sandia National Laboratories webpage http://www.sandia.gov/ParaView and the Kitware ParaView webpages http://paraview.org/paraview/resources/applications.html.
- ParaView was used by Sandia National Laboratories, to visualize a 473 million triangle isosurface, a record dataset size at the time, generated from a Richtmyer-Meshkov simulation on a 128 node cluster.[3]
- In 2005 Sandia National Laboratories, NVidia and Kitware had multiple press releases on the scalable visualization and rendering work done on ParaView. The releases announced breakthroughs in scalable performance attaining rendering rates of over 8 billion polygons per second using ParaView.[4][5]
- ParaView is used as the visualization platform for the Modeling software OpenFOAM[6]
- The Swiss National Supercomputing Center uses ParaView for visualizing the outcome of physical simulations.[7]
- The Swiss Federal Institute of Technology (EPFL) uses ParaView for visualizing fluid-dynamics simulations.[8][9][10]
- Computational Fluid Dynamics Simulation Data visualized with ParaView presented at the TeraGrid 2008 conference.[11]
- Tutorial on how to use ParaView on the University of California Argonne servers. One of the TeraGrid resource sites funded by NSF[12][13]
- Computational Fluid Dynamics Laboratory, Department of Mechanical Engineering at Indiana University-Purdue University Indianapolis (IUPUI)[14][15][16]
- Lawrence Berkeley National Laboratory Visualization Group[17]
- Arctic Region Supercomputing Center[18]
- San Diego Supercomputer Center[19]
- University of North Carolina at Chapel Hill course on Visualization on the Sciences[20]
- Pittsburgh Supercomputing Center uses ParaView for visualizing the output of the MFIX (Multiphase Flow with Interphase eXchanges) simulation program.[21][22] It also provides a ParaView Tutorial[23]
- Army Research Laboratory uses ParaView to Visualize CTH Data[24][25]
- Data Analysis and Assessment Center of the Department of Defense High Performance Computing Modernization Program (HPCMP)[26]
- The National Center for Computational Sciences at Oak Ridge National Laboratory uses ParaView for visualizing large datasets.[27]
Related software
The Visualization ToolKit (VTK) is an open source, freely available software system for 3D computer graphics, image processing, and visualization used by thousands of researchers and developers around the world. VTK consists of a C++ class library, and several interpreted interface layers including Tcl/Tk, Java, and Python. ParaView is built on top of VTK to provide additional functionality. ParaView utilizes the VTK pipeline architecture, and ParaView classes are generally derived from vtkObject.
CMake is a family of tools designed to build, test and package software. CMake is used to control the software compilation process using simple platform and compiler independent configuration files. CMake generates native makefiles and workspaces that can be used in the compiler environment of your choice. ParaView utilizes CMake for the software compilation process.
References
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.
- ↑ Lua error in package.lua at line 80: module 'strict' not found.