Lawrence Livermore National Laboratory

General features added in version 2.3

  • Selections have been enhanced to support cumulative queries. A cumulative query lets you threshold multiple variables on a dataset for a range of time steps and then combine the results into a single time-aware selection that can then be further reduced using a histogram. The results from each time step can be combined such that the final selection will contain cells that are present in either all or any time steps. The number of cells for each time step can be displayed as a histogram. The other histogram modes are: Matches, ID, Variable. The matches histogram mode takes the selection and sorts the cells in the selection into bins based on how frequently they appear over time. The ID histogram mode sorts the selection based on cell id, creating bins of cell ids. The variable histogram mode sorts the cells in the selection using an auxiliary variable and uses that variable to create bins that group the cells. Once cells have been binned into a histogram, the histogram is returned to the GUI where users can turn off a number of start end end bins to focus on high or low histogram bins. Cumulative query selections can be created using the Selections window.
  • Selections are no longer required to be tied to plots. This lets you create complex selections using datasets that have not yet been plotted. Note that data is read and processed to create the selection but it is not plotted.
  • The Expression window's Load button now causes expressions from XML files to be appended to the expression list instead of replacing the expressions in the list.
  • The cli method GetAnnotationObject now only accepts a string argument for the desired object's name. To access an object by index, use the index in combination with the result of GetAnnotationObjectNames.
  • For Windows installs: comand-line options have been added allowing for silent installs (see the wiki for more information); and you can now associate curve file types (*.curve, *.ultra, *.ult, *.u) with VisIt, allowing double-clicking to start VisIt and open the file.
  • When restoring a Session with different sources via the GUI, if the data directory specified in the session file no longer exists, VisIt will present the session file location as the default data directory instead of the User's home directory.

Advanced features added in version 2.3

  • VisIt now provides a SWIG-generated Python binding for libsim that allows you to instrument your Python simulations so VisIt can connect to them and access their data.
  • Libsim's VisItSetupEnvironment function was enhanced so it can automatically broadcast the environment from the rank 0 processor to other processors in order to reduce simulation startup time. To ensure that you benefit from this behavior, you must call VisItSetupEnvironment after making calls to VisItSetParallel, VisItSetParallelRank, and VisItSetBroadcastStringFunction.
  • Libsim has new VisItGetEnvironment and VisItSetupEnvironment2 functions. The VisItGetEnvironment function returns the environment that VisIt needs to run. This string must be passed to VisItSetupEnvironment2 which is identical to VisItSetupEnvironment except that it lets you pass in the environment string. This is useful in the event that you need to determine the environment prior to calling MPI_Init. If you pass NULL to VisItSetupEnvironment2 for non rank 0 processes then they will participate in a broadcast of the environment from rank 0 if you have informed libsim that your simulation is parallel.
  • VisIt's X launching and parallel GPU acceleration features have been rewritten to mesh better with modern cluster installations. See the wiki for more information.
  • VisIt can now start a remote compute engine through a gateway machine. This capability has been implemented by using ssh to login to the gateway machine and then using ssh to login to the remote machine from there. It can handle giving a password to the gateway machine, but not the remote machine. To enable launching a remote compute engine in this manner, enable the Use gateway toggle button and enter the name of the gateway machine in the text field next to it on the Host settings tab on the Host profiles window.
  • Preliminary support has been added for custom user interfaces for simulations that use Libsim. Simulations can provide custom user inferfaces via a Qt-designer ui file that lets VisIt create the simulation user interface on demand.

File format reader changes in version 2.3

  • Corvid Technologies contributed a VelodyneCLE AMR reader.
  • The Nek5000 reader now properly marks interior elements as "ghost", meaning they will not show up with transparent Pseudocolor plots.
  • Kenneth Leiter from ARL enhanced the Xdmf reader. The changes include:
    • Fixing a bug that caused a seg fault when hyperslabs were read by the reader.
    • Improving the performance for reading spatially partitioned meshes. In one case, loading an Xdmf file composed of 1024 spatially partitioned blocks was taking around an hour. Now the load time for the same data is less than 30 seconds.
    • Adding support for additional topology types. These include:
      • vtkQuadraticLinearQuad (quad 6)
      • vtkQuadraticLinearWedge (wedge 12)
      • vtkBiQuadraticQuad (quad 9)
      • vtkBiQuadraticQuadraticHexahedron (hex 24)
      • vtkBiQuadraticQuadraticWedge (wedge 18)
      • vtkBiQuadraiticTriangle (triangle 7)
      • vtkTriQuadraticHexahedron (hex 27)
  • VisIt can now read Cale HDF5 files.
  • VisIt now exposes more data from Cale PDB files.
  • VisIt now exposes point meshes from all Tecplot files with spatial coordinates and handles a few new conventions for multi-zone files.
  • Initial support for vface2d cells was added to the GMV reader.

Changes to VisIt's operators in version 2.3

  • The coordinate transformation option in the Transform operator now correctly fixes up "wrap-arounds" over angles for polygonal data as well. (It previously only worked with volumetric data.)
  • The Transform operator now correctly handles the case where rectilinear meshes are scaled with a negative scaling factor.
  • The Cylinder operator was changed so it clips the plot, leaving the interior of the cylinder intact. If you need to calculate results on the cylinder surface, you can apply an ExternalSurface operator to achieve the operator's former behavior.

Changes to VisIt's expression language in version 2.3

  • There is now an external_cell expression that assigns 1.0 to cells on the exterior of a domain and 0.0 to cells on the interior.
  • A bug was fixed with the gradient expression where NaNs could be generated because of a divide by zero when a neighboring cell had an extent of zero in either of the X, Y, or Z directions. Now it ignores those cells.

Changes to VisIt's picks and queries in version 2.3

  • Pick over time now supports multiple variables. There are options in the Pick window and the Query window (pick options) to select whether the time curve creates a plot with a single Y-Axis or Multiple Y-Axes. The default is a single Y Axis.
  • There is now a query that calculates the average value of a scalar or vector field. The calculation uses area-based weighting for 2D and volume-based weighting for 3D.
  • A Connected Components Length query was added. This query provides length of each connected component of a line mesh. The Connected Components Weighted Variable Sum and Connected Components Summary queries were also updated to support line meshes. Note: The summary query now provides 17 entries per component packed into the GetQueryOutputValue() result.

Other bugs fixed in version 2.3

  • Launching the gui from the viewer no longer causes the gui to hang on startup on Windows after having first opened a database.
  • The plot list's context menu now shows the right checked state that indicates whether the selected plot follows the time slider.
  • Command recording issues on Windows have been corrected.
  • Fixed problem with pick on transformed rectilinear grids.
  • Applying the OnionPeel operator to a transformed rectilinear grid no longer crashes the engine.
  • Fixed issue with File Open dialog's focus on Windows when restoring session with different sources and the directory specified by the session file does not exist.
  • On Windows, default save location for Picks, Queries, Python Filters and Transfer functions via the GUI will only be the 'current working directory' if the user has write-permissions there. Otherwise, it will be the user's VisIt directory.
  • On Windows, double clicking a Silo file will open VisIt instead of Silex. Using silex is still available in the context menu.
  • VisIt's command recording window failed to record commands when the CLI could not write its log file.
  • The Windows version of VisIt crashed when executing a time curve of Volume for a material-selected plot.
  • The Data Level Comparison Wizard generated invalid expressions when Windows-style filenames, including a drive letter, were included in the expressions. In addition, the wizard generated invalid expressions for difference variables that contained slashes or spaces.
  • The Gadget2 reader now works on Windows.

Changes to configuration files in version 2.3

  • VisIt was ported to and installed on Sandia's Glory and Redsky systems. Serial and parallel host profiles are available for both systems.
  • VisIt was ported to and installed on LANL's Cielo system. Serial and parallel host profiles are available for both systems.

Changes for VisIt developers in version 2.3

  • Private plugins are now installed to ~/.visit/<version>/<architecture> instead of the former location ~/.visit/<architecture>. This is meant to enable the user to keep several versions of a plugin matched to specific versions of VisIt. Note that loading plugins from the former location will also still work.
  • A bug was fixed with the build_visit script with the building of the hdf4 library when the script was run multiple times. The problem arose because a patch was implemented with the "sed" command, which corrupted the code if it was run multiple times. The patch is now implemented using the "patch" command, which detects if it has already applied the patch and doesn't apply the patch in that situation.
  • VisIt now requires the use of several new libraries. These include vtk 5.0.0i, hdf4 4.2.5, and Xdmf 2.1.1. The build_visit has been enhanced to build these new versions of the libraries.
  • It is now possible to build a version of VisIt that always forces ssh tunneling for all data connections. This code is dependent on VISIT_FORCE_SSH_TUNNELING, which is off by default. To enable forcing of ssh tunneling do one of the following:
    • a) Add the line


      to your config site file.

      b) Run cmake with VISIT_FORCE_SSH_TUNNELING defined on the execute line as shown below.


  • VisIt now uses /dev/urandom to create the random seed used to generate the key used to set up data connections between components. The code is unix specific.