VisIt 2.8 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
- Features for advanced users
- Changes in GUI behavior
- Changes to file format readers
- Changes to operators
- Changes to expressions
- Changes to picks and queries
- Other bug fixes
- Changes for VisIt developers

General features added in version 2.8

- VisIt's Export mechanism has been enhanced so that all active plots in the plot list are now exported instead of just the first active plot in the plot list. The current implementation creates numbered files with one file per plot.
- VisIt now features a database plugin that enables VisIt to export FieldView XDB extract files for subsequent analysis in Intelligent Light's commercial post-processing software, FieldView.
- VisIt's Export mechanism has been enhanced so that all time states in a dataset can be exported. Click the "Export all time states" check box in the Export window to enable exporting all time states.
- VisIt's CLI now handles sys.argv like a traditional python interpreter. This shift simplifies argument parsing by standard python modules. The Argv() function is preserved for existing VisIt scripts.
- VisIt's CLI has two new command line options that select a non interactive mode: -ni or -non-interactive. With these options the CLI exits after executing the script passed with -s, bringing visit -nowin -cli -ni -s script.py closer to the execution behavior of python script.py. These options eliminate the need to add explicit sys.exit calls to existing scripts, making VisIt's CLI compatible with a wider set of python scripts, particularly setup.py scripts for python modules.
- The AMRStitchCell operator for extraction of crack-free isosurfaces from AMR data is now enabled by default and VisIt generates the approriate ghost zones by default. Specifying the command line option -create-ghosts-for-t-intersections is no longer necessary. This option has been replaced with a new option -disable-ghosts-for-t-intersections, which reverts back to the old method. Currently the BoxLib, Chombo and FLASH (experimental) database plugins add meta data required by the plugin. If you need to use this operator for other AMR file formats, please contact the VisIt developers.

Advanced features added in version 2.8

- Libsim was enhanced so that simulations can expose global node and cell ids for unstructured meshes.
- VisIt's database plugin API and load balancer were enhanced so that database plugins can return different domain decompositions for multidomain meshes. This feature enables libsim-instrumented simulations to more easily return their domain to processor mapping in the event that there are multiple multi-domain meshes that each have different domain decompositions.
- VisIt's CLI now provides a GetEngineProperties() function that returns engine properties. This makes it easier to query engines and simulations to determine the number of processors that they are using.

Changes in GUI behavior for version 2.8

- VisIt's Export window can use spaces or commas as delimiters for the variable list. This permits export of variables that contain spaces in their names via the GUI.
- VisIt's Export window can now display license strings from database plugins that provide license information. The license is displayed just before exporting the active plots to the database format.
- The color table window now has a toggle that allows grouping of color tables by a category name. This will affect how the table names appear in this window as well as ColorTable buttons for plot attribute windows (like Pseudocolor). By default, VisIt's tables will be under the 'Standard' category, while personal tables will be 'UserDefined'. Category names may be changed, and a text edit is provided in the ColorTable window when grouping is enabled. If VisIt only loads its standard tables, and the category names have not been changed, then the grouping toggle will have no effect other than to make the category name text-edit available. If you change the category name for Standard tables, saving your settings will preserve the new naming across VisIt sessions. For UserDefined tables, color tables must be re-exported to pick up changes in category.
- The "Time Curve Option" in the Pick attributes of the Query window is now defaulted to match the type of pick chosen when selecting a Time pick:
  - "Pick using domain and element Id" => "Preserve Picked Element Id"
  - "Pick using coordinate" => "Preserve Picked Coordinate"
- The tabs in the Pseudocolor plot attributes window have been replaced with collapsible panels. This is an experimental change and we would like to hear user feedback on the usefulness of the feature before adding it to other windows.

File format reader changes in version 2.8

- An enhanced version of the AMR reader was added.
- A reader for parallel Velodyne files was added.
- A reader for ViSUS IDX files was added, incorporating view-dependent data loading.
- The Silo reader was updated to use Silo 4.10.
- The Silo plugin now supports namescheme'd multi-block objects with empty Silo objects replacing the "EMPTY" keyword convention. It is no longer necessary for data producers to use the DBOPT_MB_REPR_BLOCK_IDX option.
- The Silo plugin now supports tensor multi-vars. Previously, data producers were required to write scalar multi-vars and then bundle these into a tensor multivar using a defvars object.
- The Silo plugin now supports curves stored in the Silo file via polar coordinates.
- The Silo plugin now supports variables with missing data.
- For more information regarding new features of Silo 4.10, please see these notes. But be aware that some features available in Silo 4.10 library are yet to be supported by VisIt's Silo reader.
- The Curv2d reader can now read double-precision sized data. Scaling may be required to correctly render very-large sized values.
- The CGNS reader was updated to use cngslib version 3.2.1.
- A reader for MFEM files was added. The reader supports collections of MFEM meshes and grid functions grouped by a simple JSON file. MFEM is a toolkit that supports meshes with higher order finite elements. This reader provides level-of-detail support that refines MFEM meshes to standard VTK elements of increasing resolution. Use the "MultiresControl" operator to select the refinement level for a given plot. Example datasets are available here.
- The PLOT3D reader was updated to include support for reading Fortran-formatted binary data, to pass along double-precision data if present in the files, and to fix bugs. The reader now has File Open options that can replace the use of the .vp3d Meta File for specifying file format variants. If utilizing the options, have VisIt open the grid file, and then specify the Solution file name in the options. The solution file location is assumed relative to the grid file location.
- The PLOT2D reader was removed, as the PLOT3D reader supports 2D data.

Changes to VisIt's operators version in 2.8

- A new option was added to the OnionPeel operator that can make the operator deliver results related to the currently plotted mesh instead of the original mesh. This may be helpful in the case of arbitrary polyhedral data, where zones are split and one would like to examine how the splits occurred. The default behavior for OnionPeel has been (and continues to be) to honor the original mesh as much as possible. To modify it to use the actual mesh change 'Honor original mesh' to 'Honor actual mesh' in the GUI or change 'honorOriginalMesh' from 1 to 0 in the CLI.
- The Radial Resampling operator has been added to this release. The new operator resamples a mesh onto an unstructured circular mesh (2D) or an unstructured spherical mesh (3D). There is also a "fast mode" option that uses structured mesh for both 2D and 3D, however, accuracy is sacrificed in fast mode since structured meshes can only have quadrilateral (2D) or hexahedron cells (3D) resulting in a very small hole in the center of the mesh.

Changes to VisIt's expression language in version 2.8

- Expressions can now accept double-precision sized float constants.
- The new array_sum expression computes the sum of all elements in an array and returns it as scalar.
- The new lambda2 expression produces a scalar value that is based on the observation that, in regions where lambda2 is less than zero, rotation exceeds strain and indicates the presence of a vortex.
- The new q_criterion expression produces a scalar value that is based on the observation that, in regions where q_criterion is greater than zero, rotation exceeds strain and indicates the presence of a vortex.

Changes to VisIt's picks and queries in version 2.8

- All queries now provide Xml results.
- Queries called from the CLI have been modified to always return a value. The type of returned object is user-settable, and consists of 3 options:
  - String (default): The same as calling GetQueryOutputString()
  - Value: The same as calling GetQueryOutputValue()
  - Object: The same as calling GetQueryOutputObject()
  The options are chosen via new methods: SetQueryOutputToString(), SetQueryOutputToValue(), or SetQueryOutputToObject(). The option remains valid for all queries during the current VisIt session, unless another call to SetQueryOutputToXXX is made. Calls to GetQueryOutputXXX can still be made, regardless of the query return type chosen. NOTE: The old query output messages are hereby suppressed when making a Query via the CLI.
- The Spherical and Elliptical Compactness Factor queries have a new option to select the centroid used in factor calculations. If an explicit centroid is not set, the center of mass is automatically used.

Other bugs fixed in version 2.8

- The Export Database window will no longer allow file-system browsing when exporting to a remote host.
- Corrected poor behavior with updating Curve plot attributes when 'Auto apply' was selected and multiple Curve plots were drawn.
- Corrected command recording for QueryOverTimeAttributes.
- Corrected a tesselation bug that was preventing the polyhedral simulation example from rendering correctly.
- Corrected a memory leak in the unstructured mesh ghost cell generation that was based on global node ids.
- Corrected a problem preventing ghost cells from being generated for 2D unstructured cell types. This fixes a bug where wireframe FilledBoundary plots were showing wireframes along domain boundaries.
- Eliminated a problem-sized memory leak in the Clip operator after processing domains that resulted in zero clipped geometry.
- Corrected a pick bug where global ids would sometimes not be reported correctly.
- Corrected a crash with Silo data and material subsetted variables.
- Corrected a bug where export attributes were not saved to VisIt's config file.
- Corrected a bug where the OnionPeel operator wasn't working correctly for arbitrary polyhedral data.
- Corrected a problem in libsim where the curve simulation yielded the wrong curve.
- Corrected a bug in PickByZone where the point returned did not match the picked zone's center.
- Corrected a bug where the viewer's popup menu would incorrectly reappear after doing operations that required the plots to change or update. This would happen once the popup menu had been activated.
- Corrected a bug where the Threshold operator attributes window would not use enough precision to display large values.
- Corrected a bug with the multi-pass CSG discretization. It would crash if the number of processors was large and the smallest zone size was set so that it generated a coarse mesh. For example, using 128 processors and a smallest zone size greater than 0.05.
- Corrected a bug in Exodus plugin handling single block meshes where time states are in different files.

Changes for VisIt developers in version 2.8

- VisIt has been enhanced to handle database readers that can provide 2D multi resolution versions of the data. When 2D multi resolution is enabled, the avtMultiresFilter adds a multi resolution data selection to the contract that contains the view frustum and a desired cell size. The reader then needs to return a data set that covers the frustum and has a cell size smaller than the desired cell size assuming that the mesh covers the extents and has cells smaller than the desired size. The reader also needs to add to the contract the actual frustum covered and the actual cell size returned. A working example of a reader that supports multi resolution data selection was added. It is the MRTest reader and is built when specifying -DVISIT_BUILD_ALL_PLUGINS=1 with cmake.
- The plot information in the contract is now printed to the -dump web pages.
- The avtDatabaseWriter class has been refactored so that the export process is much more configurable:
  - The expansion of the default variable is now plugin controlled.
  - Exporting is more careful about not re-executing the pipeline unless it needs to re-execute to fetch new data.
  - Geometry can now be consolidated on rank 0, combined by labels, or left alone. This simplifies the creation of readers that require geometry to be written on rank 0.
  - Plots can now alter the contract as part of export.
  - The database writer now knows the names of the plot being exported so it can change its behavior, if desired.
- Filters have been improved so they add some filter metadata that at least contains the name of the operator that was applied. Text representations of the operator attributes can also be added to the filter metadata. Filter metadata can be used during database export to make meaningful names for the visualizations being exported.
- The database plugin API has been extended so that plugins can return license strings.
- It is now possible to specify which plugins VisIt should build via CMake variables VISIT_SELECTED_type_PLUGINS, where 'type' is one of: DATABASE, PLOT, OPERATOR. Setting the variable can be accomplished in the config-site file via a SET command:

      SET(VISIT_SELECTED_DATABASE_PLUGINS Silo VTK H5Part)

  or via the cmake command line with a ';' separated list:

      -DVISIT_SELECTED_DATABASE_PLUGINS:STRING="Silo;VTK;H5Part"

  If this is variable is not set for a particular plugin type, then plugins are built according to normal rules. The spelling of the plugin must match its directory name.
- The windowsbuild directory has been reorganized to reduce the number of files a Windows developer needs to download. Third-party pre-built dll's are now stored in a separate subdirectory for each Visual Studio version (eg MSVC2012 for 32 bit or MSVC2012-x64 for 64 bit.), and are all top-level within windowsbuild.
- Pre-built third-party dll support has been dropped for Visual Studio 2008 (MSVC 9).
- For windows builds, VISIT_WINDOWS_DIR can now be specified via CMake option, allowing a different location than the standard peer-to-src windowsbuild directory.
- The Silo plugin will no longer build against older releases of Silo and now requires version 4.10. Maintining the necessary conditional compilation logic to support multiple older versions of the Silo library was becomming too much of a maintenance burden.
- VisIt is now using newer versions of the following third party support libaries:
  - cgns 3.2.1
  - Python 2.7.6
  - Silo 4.10
  - VTK 6.1.0
- VisIt's launcher now has very basic support for launching and debugging components using lldb, the LLVM debugger.
- Helper functions where added to support sourcing shell scripts and loading modules in customlaunchers. For more details see the examples on visitusers.org.

Click the following link to view the release notes for the previous version of VisIt: VisIt 2.7.3 Release Notes.