A cartoon cactus which serves as the Cactus logo

CactusCode.org / VisIt

What is VisIt?

VisIt is a state-of-the-art data visualization tool based on the open source visualization class-library VTK and is developed and maintained at the Lawrence Livermore National Laboratory, University of California. VisIt is a uniquely powerful, full-featured software package for the visualization of scientific, engineering and analytical data: Its open system design is built on a standard interface environment. And its sophisticated data model provides users with great flexibility in creating visualizations.

The official VisIt home page should be visited to get general information about VisIt. There are links to a "Getting Started" introduction into VisIt, a gallery of VisIt visualization examples, a user and developer discussion forum, FAQs, support contacts, and much more.

In contrast to the visualization package OpenDX, VisIt does not offer a data flow-based programming environment. Instead, plots are generated by creating "plot objects" from variables contained in a data file and adding modifiers to the corresponding plot stack. In this way, sophisticated visualizations including complicated data transformations can be created within a few mouse-clicks making it the software of choice for quick and efficient data inspection. In addition, parallel rendering with multiple processor cores enables for the processing of hugh datasets. Various features include

VisIt Visualization VisIt Visualization

A wide number of functional modules for each of the above categories is already built into the VisIt server program as provided with the standard distribution of VisIt. Developers can also add their own, specialized functionality as external plugins to link against the VisIt runtime libraries. We are using this mechanism to provide our own database plugins to read datafiles written in our customized HDF5 format. WaveToy 3D Volume-rendering Visualization 2D Pseudocolour and Mesh Visualization of the lapse function from a binary black simulation

Remote Visualisation

VisIt supports remote visualisation, where the client runs locally, but the data are stored on a remote machine.

Remote visualisation requires ssh access from the local to the remote machine. In addition, the "visit" command must be in the path on the remote machine. You may need to edit your .profile file on the remote machine.

In order to set up remote visualisation, one needs to add a "host profile" for the remote machine; see the menu entry "Options/Host profiles...". Here is my host profile for numrel02.cct.lsu.edu:

VisIt Visualization

I have also enabled ssh tunnelling. ssh tunnelling is useful if you want to access data while you are travelling and need to go through a firewall. ssh tunnelling is probably slower than using direct access.

VisIt Visualization

Remote files are accessed in the "File/Open file..." dialog by choosing the corresponding host:

VisIt Visualization

Notice that the environment variable $VISITSSH controls which executable VisIt invokes to log into the remote machine; this is particularly useful if the remote machine is not accessible via ssh, but uses, e.g., Globus tools such as gsissh. Sometimes such passwordless logins also require VisIt to not try and mediate between the user and the shell, which can be obtained with the command-line flag -nopty.

The CarpetHDF5 package

Starting with VisIt version 2.5 datafiles written in the HDF5 file format (as created by various I/O methods in Cactus) can be read by the built-in VisIt database plugins. Older versions of VisIt do not yet include the database plugin. For that reason appropriate readers must be provided as external database plugins. This is also required if the very newest version of the reader is needed.

The CarpetHDF5 package provides such readers as runtime-loadable plugins to be used in a standard installation of VisIt.

CarpetHDF5 reads arbitrary N-dimensional datasets from (parallel) HDF5 output generated by the Carpet adaptive mesh-refinement (AMR) driver for Cactus. The datasets in the HDF5 datafile are assumed to describe Carpet-AMR data, i.e., one or multiple regular nested grids with different resolutions. Since in parallel runs one usualy deals with chunked HDF5 files, the reader is capable of transparent recombination on-the-fly.

Downloading and Installing

For obtaining VisIt you can go to the VisIt download page which provides pre-compiled binaries for a number of architectures. If your architecture is not among these, or the binary distribution doesn't work for you, you can also download the sources and build VisIt yourself. Please read the README and INSTALL files in the source distribution and follow the instructions given therein.

The CarpetHDF5 package can be obtained from the Cactus Subversion server via anonymous checkout:

svn co https://svn.cactuscode.org/VizTools/CarpetHDF5/trunk/ CarpetHDF5

In order to build the CarpetHDF5 plugin you need to have a standard distribution of VisIt already installed on your system. To install the package, simply execute the install script contained in the CarpetHDF5 package. If VisIt was properly installed, a window will pop-up. In the "CMake"-tab modify the library and include path for the HDF5-library which is included in the Visit installation. For example:

CXXFLAGS: -I/path_to_visit/2.5.0/linux-x86_64/include/hdf5/include LDFLAGS: -L/path_to_visit/2.5.0/linux-x86_64/lib LIBS: -lhdf5

Then go to the "File"-menu, save the file and close the window. The plugin will then be generated and installed.

Note that there may be a problem if several plugins support HDF5 files. In this case, it can happen that the wrong plugin in chosen to open a file, even if the correct plugin is selected in the "open file" dialogue. As a work-around, you can remove all other HDF5-based plugins, such as e.g. the PIXIE plugin; alternatively, the command-line flag "-assume_format CarpetHDF5" passed to VisIt ensures that all HDF5 files are opened with this plugin.

There is a known problem with some of the 2.5.0 binaries. When trying to compile CarpetHDF5 with this, errors about VISIT_PLUGIN_TARGET_RTOD not being defined appear. You can correct this by applying the following patch to your visit installation and then retry to compile the CarpetHDF5 plugin:

--- visit2_5_0.linux-x86_64.orig/2.5.0/linux-x86_64/include/PluginVsInstall.cmake 2012-05-09 11:34:08.000000000 -0500 +++ visit2_5_0.linux-x86_64/2.5.0/linux-x86_64/include/PluginVsInstall.cmake 2012-05-24 09:51:54.000000000 -0500 @@ -360,8 +360,8 @@ ) ENDFUNCTION(ADD_TARGET_DEFINITIONS) -MACRO(VISIT_PLUGIN_TARGET_PREFIX) +MACRO(VISIT_PLUGIN_TARGET_RTOD type) IF(WIN32) SET_TARGET_PROPERTIES(${ARGN} PROPERTIES PREFIX "../lib") ENDIF(WIN32) -ENDMACRO(VISIT_PLUGIN_TARGET_PREFIX) +ENDMACRO(VISIT_PLUGIN_TARGET_RTOD)

Support and Acknowledgements

Christian Reisswig is the main author and maintainer of the CarpetHDF5 package. The development work has been supported by various people from the Cactus team and the Numerical Relativity Group at the Albert Einstein Institute. Please report bugs and send any comments to the maintainer of the visitcarpetHDF5 package.

The software in the CarpetHDF5 package is available under the GNU General Public License. In addition to the conditions in the GNU General Public License, the authors strongly suggest using this software for non-military purposes only.