VisIt 1.9.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.

Announcements

- The VisIt team released a patch release, version 1.8.1, to fix some critical defects that surfaced in the VisIt 1.8 release. Descriptions of the defects addressed by the patch release can be found in the VisIt 1.8.1 release notes. All version 1.8.1 fixes are included in this release.
- A VisIt wiki site has been set up at http://www.visitusers.org. The wiki contains contributed user documentation and developer documentation for VisIt. Add to it today! The site also offers a user forum.
- The release notes have been reorganized so that users can more easily find the changes that interest them.
  - Features for all users
  - Features for advanced users
  - Changes to file format readers
  - Changes to plots
  - Changes to operators
  - Changes to expressions
  - Changes to the command line interface
  - Bugs fixed (bug fixes also found in other categories)
  - Changes to VisIt's libsim (for connecting to a running simulation)
  - Changes to machine configuration files
  - Changes for VisIt developers

General features added in version 1.9.0

- VisIt's Annotation Window has been redesigned and enhanced to support setting text font, size, and color for database and user information as well as for independent 2D and 3D axes. The 2D and 3D tabs now have a tab for each axis that allows you to independently set the properties for the titles and labels that comprise the axis.
- VisIt's GUI has been enhanced so that a scroll view is automatically added to tall windows when VisIt is run on short displays. This makes it possible to access controls that would otherwise extend beyond the edges of the screen.
- Visit's Plot List Context Menu has the added option to "Disconnect Plot from the TimeSlider". This functionality allows the user to plot multiple times from a database of related files, by Right-Clicking on the plot(s) in the plot list.
- VisIt now automatically saves a crash recovery file every 5 minutes. If VisIt crashes, the next time you run VisIt, you will be prompted as to whether you want to restore the crash recovery session file to return to the last saved state. This crash recovery option can be disabled in the Preferences window.
- VisIt's Windows menu now features an Unlock everything option under the Lock submenu. The Unlock everything option turns off locking for time, tools, and view in all visualization windows.
- There is a new Spreadsheet Pick mode (same icon as node/zone pick, but with an "S" next to it. In this pick mode, VisIt will behave the same as in zone pick mode, but also bring up a Spreadsheet plot with the current pick.
- The Spreadsheet plot can now highlight the currently picked cell in the viewer window
- The apply operators and selections to all plots checkbox is now split into to two separate checkboxes to control individually whether operators and/or selections will be applied to all plots.
- If a data set contains any +/- infs or nans, those are now ignored when VisIt calculates the min/max extents for variables.

Advanced features added in version 1.9.0

- VisIt's Preferences window now has an option called New plots inherit SIL restriction. SIL refers to the subset selection (such as turning off materials or domains of a plot). This button allows you to turn off VisIt's default behavior of assigning a subset selection from a compatible plot to new plots when they are created. If you turn off the inherit option, new plots will be created with all of their subsets selected.
- VisIt now looks for session files in the current directory by default. There is a preference in the Preferences window to make VisIt look for session files in your .visit directory by default.
- The visit -movie movie generation program will now preferentially use the ffmpeg encoder program to encode MPEG movies if ffmpeg is installed on your computer. The ffmpeg encoder produces higher quality MPEG movies much faster than VisIt's standard MPEG encoder. If you do not want VisIt to use ffmpeg to encode MPEG movies then you can provide the -noffmpeg command line option when generating your movie at the command prompt.
- VisIt's Equivalence Class Function (DDF) ability now has a "Count" statistical operator. This operator simply counts the number of data points that lie within a given bin. This allows for easy generation of multidimensional histograms.
- The POV-Ray export format has been enhanced. This format is used for exporting surfaces into the POV-Ray tool, which makes high end movies. It now includes exporting of atomic properties useful for molecular data, it replaces fixed-function glyph scaling with user-defined glyph scaling, and it writes all scalar arrays to the output files. It also writes data in the correct coordinate handedness without modifying data values.
- It is now possible to set options when opening files (for database plugins that provide options in their file reader). These can be accessed through the File Open dialog, or through the Plugin Manager window. Default values will be saved with the user configuration settings.
- The default file format which could be specified on the command line through the -default_format argument has been replaced by two new, more specific options:
  - -assume_format which specifies a file format reader to try before guessing, and
  - -fallback_format which specifis the file format reader to try after guessing fails
- A -viewerdisplay argument has been added to VisIt's launcher, which allows the GUI/CLI to be displayed on a separate X11 display than the viewer. This can be useful for powerwalls and other demonstration modes where the interface and visualizations will run on different monitors.
- VisIt now has custom settings files for the LBNL Applied Numerical Algorithms group and its collaborators. These files are located in <VISITINSTALLDIR>/1.9.0/.visit and are named visit-config-anag, visit-guiconfig-anag, and visit-visitrc-anag. To enable these settings, create symbolic links config, guiconfig and visitrc to these files in <VISITINSTALLDIR>/1.9.0/.visit (site-wide) or copy them to config, guiconfig and visitrc in the .visit directory in your home directory (user-specific). visitrc defines a couple of macros aimed at easing the transition of ChomboVis users to VisIt. guiconfig posts the macro window by default within the main gui. config ensures that the Chombo reader will cause plots to default only to the root level of an AMR hierarchy and display only explicitly defined Chombo materials and contains additional settings that are aimed at helping ChomboVis users making the transition to VisIt. Furthermore, visitrc allows to turn of the mapping of grids if a .map.hdf5 file exists. (See Chombo reader release notes for more details.)

File format reader changes in version 1.9.0

- VisIt now has an XDMF reader (see http://www.xdmf.org/index.php/Main_Page). The file must end with a ".xmf" extension to be recognized as an XDMF file.
  Supported features:
  - It supports all the grid types, except for the Subset grid type.
  - It supports all the topology types.
  - It supports all the geometry types.
  - It supports both XML and HDF format data items. It supports all the number formats for the data items. It only supports Uniform data items.
  - It supports Node and Cell centered variables. It does not support Grid, Face and Edge centered variables.
  - It supports Scalar, Vector, Tensor and Tensor6 variables. It does not support Matrix variables.
  - It does not support Time. This means that all the grids from a single file will be assumed to belong to the same time state.
  - It does not support XPath.
  Support for most of the remaining features will be added in later releases.
- The Nek reader was improved by adding code to discover domain boundaries, making it scale better, and supporting more options for the parallel format.
- The Flash reader was enhanced with support for
  - Subsets by processor number
  - Subsets of Morton curve
  - Concurrent subsets by Block-Level and Block-Processor Number pairs for both the domain and Morton curve
  - Submenus for the above concurrent subsets
  - Support for file format version 9
- VisIt now has a PlainText file reader which can open whitespace, comma, and tab-separated ASCII text files as either 2D grids or columnar data.
- Bugs in the CCM reader have been fixed for files that contain only a mesh and files with unusual internal indexing.
- A partial reader was added to support the AVSucd files from CEA.
- VisIt's ZeusMP reader now supports cylindrical coordinates.
- The Miranda reader supports a new file version which scales better.
- .visit files generated on unix can now successfully be read on windows systems, and vice-versa.
- VisIt now reads in and plots VTK's .vti format.
- The Silo writer (accessed through an ExportDatabase call) now correctly outputs voxels.
- A file format (AugDecomp) was added to allow existing files to be augmented with material information.
- SAMRAI file format now correctly ghosts material data.
- The CGNS reader was enhanced so it can read data from multiple bases.
- The CGNS reader now correctly handles reading time varying data, including getting time and iteration values from the BaseIterative node.
- The Chombo reader was enhanced with
  - Support for node centered Chombo files.
  - Reading Chombo files in double precision format. (Data is still converted automatically to float for all plots/operators except for the Spreadsheet plot.)
  - The Chombo reader has now two file format option that control whether new plots default to only displaying the root level of an AMR hierarchy and whether only material explicitly specified in a Chombo file are displayed by default. (These options are disabled by default.)
  - The Chombo reader has now an option "Check for mapping file and import coordinates if available." If this option is enabled, the Chombo reader will check for a file file.map.hdf5 (file.map.h5) when opening a file file.hdf5 (file.h5). If the .map.hdf5 file exists, it will create an expression that imports the variables x, y and z from that file using a conn_cmfe expression and create a file_hdf5_disp expression, which can be used with the "Displacement" operator to transform the grid to the coordinates specified in the .map.hdf5 file.

Changes to VisIt's plots in version 1.9.0

- VisIt can now be built with support for the SLIVR volume rendering library from SCI, University of Utah. SLIVR provides an advanced hardware-accelerated volume renderer and when it is available, the Volume plot attributes window provides a "SCI, University of Utah (SLIVR)" rendering method.
- VisIt now has a new Parallel Coordinates plot for viewing high-dimensional data. It also supports a new Axis Restriction tool which can interact with the Parallel Coordinates plot for viewing focus data overlaid with the context data. Note: the ParallelAxis plot is deprecated and will be removed in a future release.
- The Subset plot can now plot mesh variables. This is a convenient way to obtain a single-color lighted plot for surfaces of three dimensional data, including single-domain data sets and those without scalar variables.
- VisIt's Label plot now correctly shows untransformed 3D vector data, even when a Slice operator that projects data to 2D is present in the pipeline.
- VisIt's volume rendering plot now works correctly when the view frustum of the camera is contained entirely within a data set.

Changes to VisIt's operators in version 1.9.0

- The Create Bonds operator has been enhanced to support wildcards, allowing for much more powerful rules. The default options in this mode correspond to a heuristic algorithm providing good support for many molecule types.
- VisIt's Clip operator now has a 'fast' vs. 'accurate' option, with 'fast' being the default.
- VisIt's Clip operator no longer generates bad clips when using multiple planes.
- The Resample operator now works on meshes. This simply will output the mesh that resample operator placed the data onto.
- The quality of resampling given by the Resample operator has been improved.
- A memory leak was fixed with the Threshold operator when it used multiple variables.

Changes to VisIt's expression language in version 1.9.0

- Expressions that utilize constants now store the constants much more efficiently.
- A new "colorlookup" operator is now available for use in VisIt's expressions. This operator maps a scalar variable to a (color) vector variable by performing a lookup in one of VisIt's color tables. It can be used to "simulate" a Pseudocolor plot by means of a Truecolor plot, allowing users to perform several lookups and blend colors using expressions. CAVEAT: Unlike in the Pseudocolor plot, interpolation is performed AFTER a color table lookup instead of before. As a result, VisIt will interpolate colors after the lookup instead of values before lookup.
- Enhancements were made to allow filters to obtain ghost corrected material information for datasets where VisIt generates ghost zones. This removes the previous restriction preventing ghost zone generation when the matvf expression was used.
- VisIt now provides a value_for_material expression that gives direct access to per material values for mixed variables. This expression also utilizes ghost corrected material info and will not hinder ghost zone generation.
  Example Usage:
  - value_for_material(var,1) -- Provides the value of "var" for material 1
- The "cylindrical_radius" expression now allows a user to specify a cylinder axis.
  Example Use Cases:
  - cylindrical_radius(mesh) -- Prior use case
  - cylindrical_radius(mesh,"x")
  - cylindrical_radius(mesh,"y")
  - cylindrical_radius(mesh,"z") -- Same as default
  - cylindrical_radius(mesh,{x,y,z}) -- x,y,z should be numeric constants
- There is a new enumerate expression which maps nonnegative integers to real values.
- The cell_constant and point_constant expressions have been added as a convenient method of creating a constant on a mesh without needing to read a variable from the file.
- Several bugs with using the recenter expression were fixed.
- A bug was fixed where variables from the array_decompose expression could not be plotted.
- The zonetype(mesh) expression now creates a scalar variable that will plot single characters for the zone type (e.g. 'H'=Hex, 'Q'=Quad, 'T'=Tet, etc.)

Changes to VisIt's command-line interface in version 1.9.0

- VisIt's CLI has been enhanced so it supports registration of user-defined callback functions for many actions. Callback functions can be associated with many state objects, including all plot and operator plugin state objects. This means that whenever a state object changes, your callback function will be called and it will be passed the value of the state object that caused the update.

  Callback functions can also be installed for many ViewerRPC rpc's, which lets you attach custom behavior at a much finer grain. For example, if you register a callback function with the OpenDatabaseRPC RPC then your callback function will be called whenever a VisIt client opens a database.

  Callbacks are registered using the RegisterCallback(cbName, callback) function. The cbName parameter indicates the name of a valid callback function slot name. You can see a list of these by calling the GetCallbackNames() function. The callback argument is the name of the callback function that you want to be called. The RegisterCallback function can take an optional 3rd argument that lets you pass user-defined data to your Python callback function when VisIt calls your callback function.

- VisIt's CLI now has GetPlotOptions and GetOperatorOptions functions that can be used to return the plot attributes for the active plot as well as the operator attributes on the i'th operator on the active plot.

- Calling functions such as SetOperatorOptions() now preserves the "apply operators/apply selection to all plots" checkboxes in the GUI.

- Recording macros now appends state information of the "apply operators/apply selection to all plots" checkboxes to functions such as SetOperatorOptions(). When recording a macro it is possible to change the state of these checkboxes and the macro will recreate option changes as they were performed in the gui.

- VisIt will now check for a global site visitrc file in the same directory as VisIt's global configuration files. A user's visitrc file still has precedence over the global visitrc file.

Bugs fixed in version 1.9.0

- VisIt's Save Movie wizard now displays the command to run later in a window that allows you to cut and paste the command to run into a command prompt. (Cutting and pasting was previously not possible.)
- VisIt's Save Movie wizard does not come to the front when it is activated until the GUI's Main window is clicked on MacOS X.
- VisIt's File Open dialog immediately closes when restoring a session file with different sources and the sources do not exist on the local computer.
- VisIt's GUI no longer crashes when the plot menu is activated immediately after choosing an engine profile from the Engine Chooser dialog. The crash only happened when reading SAMRAI data.
- The CheckForNewStates function now works.
- VisIt no longer prints an error message indicating that it cannot open the "notset" database when the OpenGUI() function is called from the CLI in order to start the GUI.
- VisIt no longer has problems registering macro buttons inside of a "visitrc" file.
- Performance problems with large AMR data sets, specifically those uncovered by the FLASH team, have been resolved.
- A bug was fixed where VisIt's comparison capability ("cross mesh field evaluations") would sometimes fail when comparing files from different file formats.
- A bug was fixed where databases correlated in time across different windows could get out of synch when the VCR controls were used.
- The progress indication for queries over time is now more accurate.
- The progress indication no longer gives erroneous values at the beginning of execution.
- VisIt's viewer will no longer crash when switching to log scaling.
- Lineout's sampling mode no longer recenters zone-center variables.
- Applying the transform operator to curve plots works correctly again for transformations on the y-axis.
- The centering of a Pseudocolor Plot no longer wrongly influences query results.
- Queries from the same database, but different windows, no longer returns incorrect results.
- The Variables menu does no longer disappear for certain font sizes.
- Added a check to QPostableWindow that prevents a window from being posted if it is already posted.
- For the Windows version, updated the method by which VisIt determines the path to a user's My Documents folder to better support roaming profiles.

Changes to VisIt's "libsim" in version 1.9.0

- VisIt's SimV1 database reader plugin can now accept mixed scalar data from simulations that implement the GetMixedScalar callback function. Note that the Force interface reconstruction option still needs to be enabled in the Material Options window for mixed scalars to be plotted.
- VisIt's Simulation database reader now supports materials whose material numbers do not begin at zero. Ranges of material numbers where not all numbers are used are also supported now.
- VisIt's viewer no longer crashes when receiving commands from a simulation while already communicating with the simulation for other operations.

Changes to configuration files in version 1.9.0

- A config file was added for installations at Argonne National Lab.
- The config site files for yana have been updated to use MOAB in the LLNL open network configuration file. If the new host profiles are not showing up you will need to delete the yana host profiles, save the settings, and restart VisIt.

Changes for VisIt developers in version 1.9.0

- VisIt's source code now contains an example program, /src/viewer/proxy/proxyexample.C, which shows how to use VisIt's C++ interface to make a new VisIt client that can control VisIt's viewer. More information is online at: http://visitusers.org/index.php?title=CreatingNewClientWithC%2B%2B
- Many classes and method names in VisIt underwent a renaming for consistency purposes.
- VisIt's operators now have support for creating new variables through the expression mechanism.
- VisIt's XML tools have been enhanced to support the notion of a code generation target (one of the XML tools: xml2atts, xml2java, xml2python, etc.) Code generation targets are designated by the "Target:" keyword in the .code file and allow you to embed code destined for generated Java or Python bindings directly in the code file.
- VisIt's XMLEdit tool has been improved to support code generation targets.
- VisIt's xml2python code generation tool now better supports nested state objects.
- VisIt's XMLEdit tool has an improved look and feel, including various user-improvements such as a new menu option for regenerating plugin code. The new menu option opens a dialog that allows you to select which code generators will be run and then it runs them, regenerating your code to incorporate changes that you've made to the XML file.
- VisIt's Java API has been updated so ViewerProxy is now divided into ViewerState and ViewerMethods objects, mirroring the change in the C++ implementation that was made several releases ago. In addition, the ViewerMethods class has been annotated with JavaDoc comments that facilitate automatic generation of documentation from the Java code. The ViewerMethods class is the most important class with respect to controlling VisIt's viewer.
- The method "GetFilenames" for file format readers is now fully supported with the XML generation tools.
- Debug log file extension was changed from '.log' to '.vlog'. Also, default behavior of VisIt to over-write existing logs was eliminated. Use new command line argument, '-clobber_vlogs' to overwrite logs. Otherwise, logs from successive runs will be numbered sequentially.
- Added a -numdiff argument to runtest testing tool to specify a relative error threshold for numerical diffs. Fixed numerous issues with previous numerical difference filtering.
- New hook for checking autoconf version was added. Post-commit hook behavior was changed to exercise all hook scripts before existing the meta script. All variables associated with hook scripts were moved to a new hooks_var.sh script.
- avtDataBaseMetaData has a new field suggestedDefaultSILRestriction that allows a database plugin to suggest a default SIL restriction for plots. This field is a stringVector, where each string is considered as a "command". Supported commands are "!TurnOnAll", "!TurnOffAll" (doing the obvious thing), "+" to add a SIL set to the selection and "-" to remove a SIL set from the selection. This stringList is parsed (in order) whenever a default SIL restriction is generated for a plot.
- visit-bin-dist has now a "-configuration" option that allows overriding the behavior that LLNL open is the default configuration in a VisIt tarball. If the "-configuration" option is omitted, visit-bin-dist will still default to the LLNL open configuration. Furthermore, visit-bin-dist now also creates default symlinks for guiconfig and visitrc, if the specified configuration has these files (currently only the ANAG configuration has).
- If a system guiconfig file but no user guiconfig file exists, then the initially visible windows are created from the system guiconfig file. (This is to enable posting windows such as the "Macros" windows in a default system guiconfig file.)
- The viewer debug logs now include truncated output from xdpyinfo and glxinfo.
- VisIt's xml2projectfile tool has been improved to generate project files with correct paths when run from the public (installed from binary) version of VisIt or a development version.
  - Public Version
    - Project files are stored in the same directory as the '.xml' file from which they were generated.
    - Dll's created from building the solution are stored in the user's "Application Data" folder (with 'LLNL\VisIt' appended), and VisIt searches there on launch.
  - Development Version -- when plugin is part of the VisIt source tree:
    - Project files will be stored in the appropriate place within the source tree (projects-MSVC7.Net/plugintype)
    - The plugin can be built by using the generated plugin-specific stand-alone solution, or by adding its projects to the general solution file for the plugin's type.
    - Dll's are stored in the appropriate bin directory within the source tree.
  - Development Version -- when plugin is outside the VisIt source tree:
    - Project files will be stored in the same directory as the '.xml' file from which they were generated.
    - Dll's are stored in that same directory. They can then be moved to the user's "Application Data\LLNL\VisIt" folder.
    - When run on Linux, the generated project files are created according to this paradigm.

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

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