VisIt 2.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.
Major features added in version 2.0
- User interface
- VisIt's main graphical user interface window has received a major overhaul.
- The new default operating mode for the main window no longer utilizes the "selected files" paradigm. Instead, users open files directly without having to first "select them". This mode was previously available via a setting in the Preferences window, and this same setting can still be toggled to return to the selected files mode for users that prefer the old behavior. However, a number of related improvements have made the new mode far more useful than it was in previous releases.
- There have been a number of rearrangements to the main window, including adding toolbars and icons for common behaviors. The new arrangement makes better use of both horizontal and vertical space in the GUI, unifies the behavior and design across Windows, Mac OS X, and Linux/UNIX systems, and generally makes main window interaction require fewer mouse clicks and less mouse motion for many common behaviors. Less frequently used widgets have been relocated away from the central area of interaction.
- The Operators menu and Operator attributes menus now group operators into different categories, which lets more operators be loaded on startup without running off the screen as they would have in a flat list. The operator categories can be customized in the Operators tab of the Plugin Manager window. Double-click on the operator category to edit it. When you apply your changes, the menus will adjust accordingly. Save your settings to make the changes permanent.
- All Plot and Operator attributes can be saved to individual XML files. This could be used, for example, to save Volume plot transfer functions for later use without requiring the use of heavyweight session files. It also enables easy sharing of settings with other users. In the GUI, each window has a Load and Save button, and in the Python interface, use the LoadAttribute and SaveAttribute functions.
- Simulation code library
- A new version 2 libsim, SimV2, has been created for instrumenting simulation codes. The new SimV2 API differs from the older libsim (SimV1) API. The control API in SimV2 is nearly the same as in SimV1. The largest difference is in the data API. Where SimV1 provided data to VisIt using C structures, SimV2 uses functions to allocate handles to data structures which are then manipulated using other functions. This eliminates a class of common coding problems and allows detection of missing or malformed data at runtime. It also makes the C and Fortran interfaces for using SimV2 the same, apart from calling different function names. In addition to being more error tolerant, SimV2 provides many new features, including:
NOTE: Simulations instrumented using SimV1 will continue to work in VisIt 2.0. In order to use the newer features provided in SimV2, migration to SimV2 is required.
- Vector, tensor, array, and label data; not just scalars
- CSG meshes
- AMR meshes
- Ability to save images directly from the simulation
- Better synchronization with VisIt
- Interleaved XY, XYZ coordinate arrays
- Analysis features
- VisIt's queries and expressions now support embedded Python Filters. The Python Filters infrastructure allows users to write python scripts with vtk level data access to implement custom expressions and queries. These scripts can be loaded and executed at runtime time via VisIt's GUI and command line interface. See wiki documentation (http://visitusers.org/index.php?title=Python_Filters) for further details.
- VisIt has new types of expressions for time iteration. For example, these expressions may calculate the maximum, minimum or average value at a location, or, alternatively, they may calculate the time when a condition occurs, for example the time when the maximum value at a location occurs. More information can be found in the Expressions Window, by looking at "Insert Function" and then "Time Iteration".
- Usability improvements
- VisIt's Host Profiles, which describe connection and launching behavior on remote or parallel systems, have had several aspects redesigned. Note that these changes break some compatibility with old saved settings and sessions, but many major sites' profiles have already been converted to the new format. If you have a host profile you need to convert, there is a script for host profile conversion.
- The Host Profiles window now separates launch-specific and host-specific settings.
- Host profiles are now divorced from the standard configuration files and session files. They are now stored separately, one file per host, in a format independent of operating system. This makes the process of sharing and updating host profiles more trivial.
- Only settings users actually change from the globally-installed system host profiles will be saved to a user's local configuration. Any updates to installed system host profiles will almost always be automatically visible when VisIt launches.
- VisIt's file opening and format detection has seen major improvements.
- File format readers can now specify a full file pattern they match, allowing automatic detection of many more file types.
- VisIt now has a special category of preferred file formats to try if there are no file formats readers which can read the given file. This subsumes the old "-assume_format" and "-fallback_format" command-line options.
- Many file format readers have improved strictness in their file detection code (though "Open As" can often bypass many of these checks).
- If multiple file format readers can successfully open a file, VisIt will warn the user, thus alerting the user to many instances where an improper reader was chosen automatically.
- VisIt now remembers which file format reader plugin was used to open a file, and always attempts to use this plugin first when re-opening a file, even when restoring a session. You may choose a different plugin by explicitly closing the file.
- VisIt's "-o" command-line option, used to specify a file to open during initialization, now supports an "Open As" variant by adding a plugin ID after the filename, separated by a comma. For instance, visit -o file.txt can now be called as visit -o file.txt,Silo_1.0 to instruct visit to use the Silo plugin when opening the file.
- Users can now group file formats which contain multiple timesteps into virtual databases combining all timesteps into a single sequence.
- Development changes
- While we largely strove for backward compatibility in version 2.0, as a major release we were able to take the opportunity for several improvements which required some incompatibility with past versions.
- Many of VisIt's third-party support libraries received version upgrades.
- The most notable is Qt, but those building from source should expect to rebuild many of them, most easily done with the build_visit script.
- Various plugin interfaces have also changed. Check http://visitusers.org/index.php?title=VisIt_2.0_changes_for_plugin_developers for details.
Other features added in version 2.0
General features added in version 2.0
- You can now animate every Nth time state when animating in the GUI by setting the animation increment via the Animation window.
- VisIt will now leave plots in the visualization window when interacting with tools unless you have enabled "bounding box" mode.
- VisIt's point tool has been enhanced so it shows a small sphere indicating the location of the point. This is helpful when placing the point within 3D geometry.
- VisIt's plane tool has been enhanced so it is drawn with shading, which provides some depth cues and improves the look of the tool.
- VisIt's legend has been enhanced to allow changing the number of tick marks automatically generated, as well as whether or not the min and max values should be included. The ability to specify numeric values and associated textual labels has also been added. There is a 1:1 correspondence between the values and the labels, so specifying empty strings will allow skipping textual labels for particular values. Values specified outside the min/max range will be ignored. For correct placement of textual labels, numeric values must be specified, but drawing of values can be turned off. Label drawing now has 4 modes: off (None), Values only, Labels only, or Values and Labels. Default is Values only.
- VisIt's plot list context menu now provides options that let you change the order of plots in the plot list. You can also provide a plot description that lets the plot list display a more informative description of the contents of a plot. This is useful when you need to tell apart many similar plots.
- Henk Krus of the dolfyn.net project was kind enough to provide a complete Dutch translation of VisIt. To try it, run "visit -locale nl".
- The material interface reconstruction (MIR) capabilities in VisIt received large improvements:
- The MIR algorithms have been renamed to match the literature.
- The default algorithm now supports a new iteration scheme to improve its accuracy while retaining good speed and connectivity properties for analysis.
- The special-purpose Isovolume algorithm also supports this iteration scheme, though it has severe limitations which reduce its effectiveness when attempting iteration.
- Additionally, there is a new piecewise-linear interface construction method (PLIC, aka Youngs) contributed by Thierry Carrard. This algorithm reconstructs volume fractions exactly, breaking connectivity at zone boundaries to do so.
- There is also a new Discrete algorithm, which currently supports only rectilinear grids, contributed by John Anderson. This algorithm subdivides cells into voxels, each of which is assigned a single material, and thus has fixed volume fraction error bounds depending on the amount of subdivision.
- Color tables now support adjustable opacity for each control point. This opacity can be used in the Pseudocolor and Volume plots.
- VisIt's various Tools which interact with plots and operators in the visualization window can now update in one of three modes, chosen via the visualization window context menu:
- Continuously: After a user grabs a hotpoint by holding down the mouse button, the tool and its connected plot/operator update while the mouse is moved. Note that this mode is not available when the "bounding box navigation" setting is enabled.
- Upon mouse release: In this mode, the user grabs a hotpoint, adjusts the tool while the plots are hidden, and the connected plot/operator updates only when the user releases the mouse. This was the former behavior, and remains the default in this version of VisIt.
- Upon tool close: In this mode, the user can grab, move, and release hotpoints many times, batching up changes to the tool. Only when the user closes the tool, ending interaction with it via its toolbar button or context menu, do these batched updates get applied to the connected plot/operator.
Advanced features added in version 2.0
- When available, the IceT parallel compositor is used by default. IceT provides significantly faster rendering times when VisIt is rendering in parallel. VisIt has supported IceT previously, but many improvements have been put into this release to allow it to work robustly. A new flag, -no-icet was added to explicitly disable IceT. The old flag, -icet, was maintained for compatibility reasons.
- An internal data structure that manages subset relations was tuned significantly. This tuning should prevent sluggishness when adding plots, deleting plots, and also is noticeable through a delay in progress reporting when drawing a plot. Note that some file formats can be updated to use new features in this data structure. If you are observing sluggishness with your file format and would like to inquire about using this data structure more efficiently, contact a VisIt developer.
It is now possible to launch the VisIt compute engine directly and have it "reverse launch" the VisIt viewer, reversing the normal launch order. This can be useful when VisIt needs to run in batch jobs and it can be useful for launching the engine directly under a debugger. To use reverse launching to execute a script, you can execute "visit -engine -reverse_launch -nowin -s script.py".
- VisIt's constructive solid geometry (CSG) discretization supports a new Multi-Pass algorithm which can successfully generate thin shells and sharp angles, thus increasing output accuracy even when starting at a lower discretization resolution. In addiiton, the clipping used in the existing Uniform CSG discretization algorithm has been upgraded, resulting in improved speed and quality.
- VisIt's axis-array window modality (used by the Parallel Coordinates plot, for example) now supports a full range of annotations.
- Users can now specify -sshtunneling as a command-line option, forcing all remote connections to use SSH port forwarding and overriding the equivalent settings in the host profile for a single session.
- VisIt's color table editor now shows index number hints for discrete color tables, or atomic symbols for atomic color tables.
- Atomic number in VisIt are now 1-origin (e.g. mapping "Hydrogen" to "1", for example). For users, this affects only saved color tables, though developers of any molecular file format reader, color table, plot, or operators should be aware of this change. Atomic number "0" is reserved for unknown elements.
- Text-based annotations now support a "$cycle" substitution variable, analogous to the existing "$time" variable.
File format reader changes in version 2.0
- VisIt's Nek reader now serves up per-domain data ranges, which optimizes operations like contouring and thresholding.
- VisIt now includes a Velodyne file format reader contributed by Corvid Technologies.
- VisIt now includes a file format reader for the Adventure (AdvIO) file format.
- VisIt now includes a reader for the MatrixMarket file format, a NIST format supporting real-valued sparse and dense matrices.
- VisIt's Enzo file format reader can now build even if only HDF5 is present, and no longer requires HDF4.
- VisIt's LAMMPS dump file reader now supports non-axis-aligned unit cell specifications.
- VisIt's ProteinDataBank reader now supports enumerations from residues.
- Various file format readers changed to support the corrected 1-origin atomic number convention.
- Ken Leiter of the Xdmf project has contributed a new Xdmf reader based on libXdmf. Thanks Ken! When the Xdmf library is not available, VisIt's Xdmf reader is used.
Changes to VisIt's plots in version 2.0
- VisIt's ray casting volume rendering mode has been overhauled.
- The result is now more accurate, that is more like a true integration. One nice by-product is that the picture should look substantially the same regardless of the number of samples, where, previously, volumes would get "thicker" when the number of samples increased.
- The samples now "count" for more, meaning that 500 samples per ray is now a "large" number of samples.
- Note that your old transfer functions will no longer produce the same pictures. We apologize for any inconvenience this may cause and made the decision to make this interface change because we felt the result was an easier to use and more accurate volume renderer.
- Lighting has been improved.
- The Volume plot's hardware accelerated mode has been enhanced.
- Support for 2D volume transfer functions was added for the SLIVR renderer.
- Histograms of the data are now shown in the Volume plot's transfer function editors. Histograms are drawn after the plot has been rendered and can be used to refine the design of the volume transfer function.
- The Pseudocolor plot can now correctly restore settings related to glyph types for point meshes, specifically the Sphere glyph type, which was previously not being restored correctly.
- Ray casting volume rendering using both kernel based sampling and lighting now produced correct pictures.
- The Molecule plot can now render dangling bonds, i.e. ones which were attached to atoms which have been removed from the data.
- The Volume plot supports reducing the amount of lighting applied to low-gradient areas. The amount of reduction is configurable and can be disabled entirely.
- The Pseudocolor plot now supports user-specified line styles and line widths when rendering topologically one-dimensional data sets.
- The Label plot now supports the display of text labels from the new 'map' expression.
Changes to VisIt's operators in version 2.0
- VisIt's CreateBonds operator now supports creation of dangling bonds across periodic boundaries when requested.
- The CreateBonds operator also utilizes a new algorithm which runs many times faster.
- VisIt has a new Edge operator which replaces each filled polygon with its defining edges.
- VisIt has a new Delaunay operator which applies a Delaunay triangulation / tetrahedralization independently to point meshes in each domain.
- VisIt's Project operator, and the Transform operator's coordinate transformation function, now treat vector variables properly. They support four transformation modes based on the semantric interpretation given by the user, treating them as either absolute point coordinates, absolute point displacements, instantaneous directions, or it can leave them untransformed.
- Several operators have been enabled which were previously hidden by default.
- The Project operator now supports a full complement of cartesian and cylindrical projections, one of each type along each of the three coordinate axes.
Changes to VisIt's expression language in version 2.0
- Negative values in expressions have received improved support, including performance enhancements. The "enumerate" expression now supports mapping to negative values as well.
- VisIt has new "cycle" and "timestep" expressions, analogous to the "time" expression, returning varying forms of the current active time state in the file.
- VisIt now provides a "key_aggregate" expression. See wiki documentation (http://visitusers.org/index.php?title=Key_Aggregate_Expression) for details.
- VisIt now provides a "map" expression. See wiki documentation (http://visitusers.org/index.php?title=Map_Expression) for details.
- Various expressions have improved support for the multi-component Array variable type.
- VisIt now supports custom python script expressions. (As outlined in Major Features)
Changes to VisIt's picks and queries in version 2.0
- There are new statistical queries for both population and sample statistics on variables, showing mean, variance, skewness, kurtosis.
- VisIt now supports custom python script queries. (As outlined in Major Features)
Other bugs fixed in version 2.0
- When a session was restored, where the user had deleted plots prior to saving the session, the legends of newly added plots might not show up in the annotation object list.
- You can now make plots of 2D data sets that have 2D quadratic elements (these elements will still be linearized).
- Simulation metadata is now immediately available after a call to OpenDatabase.
- Blanking of zones in the PDB reader works again.
- Legends of discrete level values no longer occasionally drop based on visualization window size and aspect ratio.
- Curve plots can now be rotated using the Transform operator. Setting the linear transform now works too, which enables the X and Y components of the curve to be swapped easily.
- Improved support for ghostzone and face list filtering of rectilinear datasets.
- Many third party libraries for compatibility with new platforms, or
additional features which VisIt can take advantage of.
- Some critical engine errors which would occur silently in Scalable
Rendering (SR) mode will now get reported to the user.
- 3D Axes now support enabling of title visibility separate from label visibility.
- The Molecule plot's "imposter" rendering mode now correctly sets depth
- Thanks to Andreas Kloeckner, various window "roles" are now set
correctly, allowing better handling by window managers.
Changes to configuration files in version 2.0
Note: Although efforts were made to make as much as possible backward compatible with old configuration files, we recommend removing your old configuration files and starting fresh if possible, as some new features will be disabled or hidden by using old configuration files.
Changes for VisIt developers in version 2.0
- VisIt's user interface has been ported to Qt4.
- VisIt's build system has been replaced with one based on CMake. This enables a single set of build logic to generate Makefiles or project files for all platforms that VisIt supports, eliminating the need to maintain separate Windows project files. The new system includes some other enhancements:
- Out of source builds
- make install
- make package
- Engine-only builds
- Static builds
- Better support for parallel make
- It is now easier to integrate IceT into VisIt, in terms of build_visit and CMake. Testing showed that this library made a substantial speedup with parallel rendering and is worth the compile-time effort.