Release Notes for VisIt 2.9

Welcome to VisIt's release notes page. This page describes the important changes that were made to this release.

General features added in version 2.9

  • VisIt was ported to BlueGene/Q. The build_visit_BGQ script can be used to build a statically linked version of VisIt's server components for use on BlueGene/Q.
  • VisIt was integrated with It is now possible to easily share your visualizations results via the SeedMe python module, which is now included in VisIt's CLI. See the Seedme examples wiki page on, the SeedMe programatic guide and the SeedMe command line guide for examples.

Advanced features added in version 2.9

  • Libsim was enhanced so that it provides a VisItRestoreSession() function which can be used to set up visualizations for a simulation that is run in batch mode. VisIt can be run normally to connect interactively to the simulation to set up plots and save a session file. The session file that gets created can be used to set up plots for subsequent batch-only simulation runs. Once plots have been set up via VisItRestoreSession(), the VisItSaveWindow() function can be used to save images.
  • Libsim was enhanced so it provides a VisItExportDatabase() function which can be used to export the active plots in a simulation that is run in batch mode. This function enables users to automatically export processed geometry from libsim.
  • Libsim's plot and operator creation functions have been enhanced to use the viewercore library so that they can faithfully set up plots as the viewer would do it. This ensures that the functions work using tried and true VisIt code. Internally within libsim, the viewercore library uses VisIt engine components directly to produce the data needed by the plots.
  • VisIt's network communication was enhanced to provide an optional fixed size buffer socket communication mode. This option enables VisIt to connect to machines which expect fixed size send/recv buffers.
  • Libsim's Fortran interface was modified to include the VisItGetMixedVariable function. This change will require users of the Fortran interface to include the VisItGetMixedVariable stub function in their code to enable building. See the Fortran simulation examples in DataManualExamples for reference.
  • A global preference was added that tells VisIt to automatically remove duplicate nodes from fully disconnected unstructured grids. This preference is off by default, and can be changed in the GUI's Options->Preferences window or via SetRemoveGlobalNodes(0|1) via the CLI. This preference is saved with other settings. This new preference subsumes the behavior introduced in 2.8 series where the VTK reader would perform this duplicate node removal for .vtu files without user intervention.
  • VisIt's Parallel Integral Curve System (PICS) was enhanced to add higher-order element support for time varying Nektar++ and Nek5000 databases.
  • Libsim was enhanced so the VisItAddPlot() and VisItAddOperator() functions can create plots and operators, enabling programmatic setup of a scene for in situ visualization and data export.
  • Libsim was extended with the VisItSetPlotOptions*() and VisItSetOperatorOptions*() functions that allow plot and operator attributes to be set. Each family of functions enables callers to set plot and operator attribute data from a simulation. The functions essentially use key/value pairs to set plot and operator attributes (e.g. VisItSetPlotOptionsS("colorTableName", "hot_desaturated")). The keys are the names of the fields in the plot attribute state objects.

Changes in GUI behavior for version 2.9

  • The 'Set save options' window now has a 'Save and Dismiss' button, which performs a 'Save Window', then dismisses the options window. This is the same behavior that used to be provided by the 'Save' button. The 'Save' button is still present, but no longer dismisses the window.

File format reader changes in version 2.9

  • Material, including mixing material, support was added to the Exodus plugin. Common conventions for the naming of material volume fraction data and material specific parts of mesh variables are pre-defined. In addition, users can define their own custom variable naming conventions. These features are controlled by database options a user can set when opening Exodus files.
  • Exodus ElementBlock decomposition is now served up by the Exodus plugin as an Enumerated Scalar instead of a material.
  • Added read options to the Exodus plugin to turn off auto-detection of composite variables.
  • When the Exodus plugin auto-detects composite variables, it now defines expressions for them instead of advertising them as database variables.
  • Improved the auto-detection logic of composite variables in the Exodus plugin.
  • Improved support for cell-centered data in newer versions of Tecplot binary files.
  • The MFEM database plugin was updated to support version 3.0.1 of MFEM. This includes support for reading mfem_root files generated from the MFEM library.
  • A database reader was added to read Nektar++ databases.

Changes to VisIt's plots version in 2.9

  • Enhanced the wireframe option for the subset plot of blocks to also outline the internal domains if the "Draw Internal Surfaces" option is checked.
  • Enumerated scalar variables can now be plotted with the Subset and Label plots.

Changes to VisIt's expression language in version 2.9

  • The zonetype expression was been deprecated. Instead use either zonetype_label or zonetype_rank expressions. The zonetype_label expression behaves much like the now deprecated zonetype expression except that it creates labels three characters in length instead of one. The new zonetype_rank expression assigns an integer value to each zone based on the zone's celltype using a PATRAN-like rank ordering; first by topological dimension and then by node count.

Changes to VisIt's picks and queries in version 2.9

  • Pick Window's 'SaveAs' now saves the pick letter.
  • The XRay Image query now supports specifying background intensities. The background intensity may be specified as a single value for all the bins or on a per bin basis. An example of specifying one value per bin is:
    params = dict(output_type="png", divide_emis_by_absorb=1, theta=0., phi=0., width=10., height=10.,
    image_size=(300,300), vars=("abs", "emis"), background_intensities=(1., 2.))
    Query("XRay Image", params)
    An example of specifying a single value for all the bins is:
    params = dict(output_type="png", divide_emis_by_absorb=1, theta=0., phi=0., width=10., height=10.,
    image_size=(300,300), vars=("abs", "emis"), background_intensity=1.)
    Query("XRay Image", params)

Other bugs fixed in version 2.9

  • Setting the Contour Plot's MultiColor via a python script no longer results in an indexing or out of range error.
  • Fixed a bug with invalid arguments being sent to visit_composite during templated movie making.
  • Fixed the Histogram plot so that individual bins can count up to the largest integer that can be stored in a double.
  • The visual representations for the Line, Sphere, and Box tools have been fixed so that they are once again visible.
  • The Contour plot's invertColorTable setting was not stored in session files.
  • Lineout produced no data when applied after Displace operator.
  • Fixed a bug where VisIt internally would not handle 3D surface meshes consisting of 2D quadratic elements.
  • Fixed a bug where Silo reader would crash the engine if it encountered a ucdmesh object with no topological entities defined (e.g. not zonelist, facelist, edgelist or phzonelist). In this case, the reader will now load up the mesh as a point mesh.
  • Pick returned the incorrect information for abitrary polyhedral meshes.
  • Fixed a bug with OnionPeel of a Mesh Plot with the 'show internal' option turned on.

Build features added in version 2.9

  • The build visit script now builds boost. Previously if a system version of boost was not found VisIt would default to an internal version. This default behavior is no longer the case and the user must specify the --boost flag to build boost. This change was to support additional databases that use both boost headers and libraries.
    • The following databases depend on boost: Chombo, Exodus, H5Part, Miranda, Nektar++, Nek5000, paraDIS, paraDis_tecplot, SAS.
  • The --all-io flag will now build all the I/O libraries on an optional basis instead of stopping when a library fails to build. Specifically, when using the build_visit script with the --all-io flag, all I/O libraries will be attempted to be built. However, if a library fails to build, the failure will be reported in the log file and the build script will continue. Previously, the build script would stop. As such, one should review the build log for possible unexpected failures. The same applies to building VisIt - check the log to make sure the optional databases are built. If you need a third party library for a database reader that you definitely want built, then you should explicitly add that library's flag to the build script so it will be forced to be built. If the library fails to build it, the script will stop.
  • The build_visit script was enhanced with a --xdb command line argument that enables the user to enable FieldView XDB output.

Changes for VisIt developers in version 2.9

  • The viewer library was split into 2 parts: viewercore, and viewer. The viewercore library contains much of the viewer's machinery but it has NO Qt DEPENDENCIES so it can be used in other contexts that do not rely on Qt. The viewer library contains all of the Qt-specific code, which includes Qt vis windows, action UI's, socket notifiers, timers, information boxes, etc. The viewer creates objects via a ViewerFactory class and depending on whether -nowin is given it creates objects suitable for nowin mode or objects suitable for a Qt GUI mode. As a result of the split, the viewer in general was greatly changed internally. Outside of the viewer, there should be no obvious changes and embedded viewer applications and PySide applications should continue to work as before.
  • The xml2info and xml2cmake tools were modified to generate engine and viewer plugin information that has a shared "viewerengine" base class. The base class contains all functionality that needs to be shared by both classes of plug-ins. The additional viewer functionality now exposed to the engine plug-ins allows most viewer functions to be satisfied by engine plug-ins, as is the case when libsim is used in batch mode.
  • The xml2avt tool was modified to create the ExecuteData method with the new signature that uses avtDataRepresentation instead of vtkDataSet, domain and label.
  • An option for specifying help text for database options was added.
  • A help button and additional window for displaying help text was added to the GUI to support database options help.
  • The failure mode of avtDatabaseMetaData::DetermineVarType() was changed to return AVT_UNKNOWN_TYPE instead of excepting out.
  • The makemovie python script was changed so that can be correctly found from a development version on Windows.
  • Nameschemes now support a kind of recursive definition in that a string-valued conversion specifier in a Namescheme can itself be controlled by another, different namescheme. This feature is now being used in the Exodus plugin for nameschemes for material volume fraction data.
  • Fixed some overruns on the src buffer in several memcpy calls in avtUnstructuredDomainBoundaries::ExchangeMixedMaterial.
  • The avtMaterial constructor for full-zonal volume fraction arrays was improved to behave better in the presence of numerically likely but nonetheless mal-formed volume fractions.
  • avtMaterial will now check and assert correct structure in debug builds.
  • Some new exodus test datasets were added thanks to John Niederhaus.
  • New exodus tests were added for material data.
  • Added the full path to the szip and zlib libraries for both OSX and Linux in the build_visit support file.

For any additional questions, send e-mail to visit-users [at] (VisIt Users).