VisIt 3.0 Release Notes

Welcome to VisIt's release notes page. This page describes the important enhancements and bug-fixes that were added to this release.

Sections

- Features for all users
- Changes in GUI behavior
- Changes to file format readers
- Changes to plots
- Changes to operators
- Changes to picks and queries
- Other bug fixes
- Configuration changes
- Changes for build_visit
- Changes for VisIt developers

General features added in version 3.0

- VisIt has been enhanced with support for Cinema. Cinema is an image-based database that offers low-cost interaction with simulation data. Images can consist of RGB pixel images and composite images that enable VisIt to bring together multiple plots independently in the Cinema viewer.
- The CLI now provides a DatabasePlugins() function that returns a dictionary containing a tuple of the available database plugins for a host.
- VisIt has been enhanced so plots can provide custom animation behaviors. These behaviors are plot-specific and are independent of the time slider animation controls. For example, the Vector plot can alter the length of its glyphs periodically lengthening and shortening them. Plot animation is enabled for the Curve and Vector plugins and can be activated by right-clicking on a plot in the Main window's plot list area and selecting Animate from the context menu. Note, this features work best for plots and data that can be rendered quickly.
- Some of VisIt's expressions can be built with support for OpenMP, letting them parallelize over multiple threads. This is available when passing -fopenmp to the C++ compiler when building VisIt. The observed speedups are between 2x and 10x when using the serial compute engine. These expressions are enhanced with OpenMP support:
  - addition +
  - multiplication *
  - vector decompose []
  - magnitude()
  - lambda2()
  - q_criterion()
  - gradient() (for logical gradient case only)
- Libsim's VisItRestoreSession() function will now attempt to broadcast the session file contents to other MPI ranks rather than having all ranks read the file.
- Whether exporting to Curve2D or saving the Window in curve format, a comment style can be selected, with choices being Ultra ("#"), and Matlab ("%"). Ultra style is the default.
- VisIt has been enhanced to leverage VTK-m for some operations. VTK-m is a version of VTK that has been rewritten to support multi-core architectures. It is based on a recent version of VTK-m. VTK-m support will only be available if it has been built with VTK-m support. VTK-m support can be enabled in one of two ways.

  When using the graphical user interface, bring up the Preferences window by selecting Preferences... from the Options menu and change the Parallel Computation Library: to VTKm. This setting will be directly below the Floating point precision: setting and will only be visible if VisIt has been built with VTK-m support.

  When using the Python scripting interface, make the following call:

  ``

      SetBackendType("VTKm")

  When VTK-m support is enabled, VisIt will use VTK-m for all operations that support it. The following operators currently support VTK-m.

  - Contour plot: Restrictions - Only supports node centered variables.
  - Isosurface operator: Restrictions - Only supports node centered variables.
  - Slice operator: Restrictions - Only works when Project to 2D is disabled.

  VTK-m functionality is currently enabled for 3D rectilinear, curvilinear and unstructured grids with only hexahedral elements. VTK-m supports both single block and multi-block grids.

Changes in GUI behavior for version 3.0

- The Set Save options window has been enhanced with a section that lets the user select which pixel data will be saved when an image is saved. The usual RGB data can be selected as well as alpha, depth, luminance, and value data. When alpha data are requested, VisIt's images will feature a transparent background that simplifies compositing of VisIt-generated images in other tools. Depth information results in a filename.depth.Z file being saved. Luminance information saves a separate image file with gray-scale luminance values. Value images save a 32-bit floating point image with plot scalars; this works with Pseudocolor plots.
- VisIt can now save images into OpenEXR format via the Set save options window. OpenEXR files save additional precision and let images contain RGBA data and other image data such as depth, value, and luminance.

File format reader changes in version 3.0

- The Image reader plug-in was extended to expose a depth variable. The depth variable serves up data from the filename.depth.Z file if it exists, enabling depth data to be plotted in addition to color data. A depth file is a zlib-compressed file of 32-bit floating point numbers storing the Z-buffer for the image. The depth file can be requested by selecting depth pixel data in the Set save options window.
- VisIt has been enhanced with an OpenEXR plugin that can
- The ffp database plugin was added to VisIt (courtesy Olivier Cessenat).
- The Curve2D reader can now read curve files with Matlab-style comments.

Changes to VisIt's plots in version 3.0

- The ray-casting volume renderer in VisIt's Volume plot was sped up in many instances. For rectilinear data, the speed increase can be over 2x, depending on the opacities in the transfer function.
- The Vector plot supports plot animation. The vector glyphs alternate between 50% and 100% of their glyph length while the plot animates, helping to see features in the vector field.
- The Curve plot supports plot animation. The line and time cue features in the plot can respond to plot animation and they advance from left to right while the plot animates.

Changes to VisIt's operators in version 3.0

- A new Grid Information query was added so the individual types, sizes, and extents of domains in a multidomain mesh can be obtained. This feature is useful for scripting.

Changes to VisIt's picks and queries in version 3.0

- The Pick Operator now supports swivelling the camera focus to center on the current pick. This can be accessed through the gui by checking the "Swivel Focus" box. If you are using the python interface, you can turn this ability on and off by setting the boolean variable "swivelFocusToPick" within the pick attributes.
- Two related features have been added to the Pick Operator, and these are the ability to force a user-defined pick label and the ability to remove all previous picks that have the same label as the current pick. When used in conjunction, you can create a specialized pick operator that, with every new pick, removes all previous picks that contain the same user-defined label. As of now, these options are only accessible through the python interface pick attributes. To force a user-defined label, set the boolean variable "overridePickLabel" to True, and set "forcedPickLabel" to your chosen label. To remove all previous picks with the same label, set "removeLabelTwins" to True.
- The Pick Operator now supports highlighting node picks.
- Default index for OnionPeel operator was changed from 1 to 0.

Other bugs fixed in version 3.0

- ANNOTATION_INT facelists with faces appearing in more than one sublist are now handled correctly.
- Fixed empty plots caused by combination of enumerated subsets plus OnionPeel operator.

Configuration changes in version 3.0

Build features added in version 3.0

- Add support for creating RPM packages via --create-rpm in build_visit

Changes for VisIt developers in version 3.0

- VisIt's VTK-m infrastructure has been updated to work with VTK-m 1.1.0. In addition, the VisIt expression infrastructure was enhanced to allow VisIt expressions to be written using VTK-m.
- VisIt has been ported to use the git/master branch of the IceT compositing library.
- avtGenericDatabase now dumps some intermmediate results of its dataset collection when -dump is in effect.

Click the following link to view the release notes for the previous version of VisIt: 2.13.2.