VisIt 2.0 Beta 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
- This is a beta release of the upcoming 2.0 release. The release notes are incomplete and only partially list the changes in this release.
Sections
General features added in version 2.0
- 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 opens 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.
- 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.
- 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.
- 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".
- 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.
-
- 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 Host Profiles window now clearly distinguishes between settings which apply to a single launch profile, and those which are global to all launch profiles on the same host.
- 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.
- Operator plugins are now grouped into categories by default and this causes operators to be grouped instead of remaining in a flat, alphabetical list. Operators each have a default category to which they like to belong. You may edit the operator categories in the Plugin Manager window's Operators tab. Double-click the operator category and type in a new name. When you click the Apply button, the gui's operator menus will be changed to fit the new customized organization. If you do not want operators to be grouped into submenus, simply remove the category name for each operator using the "Clear category for all operators" button in the Plugin Manager window. Any customizations are saved when you save your settings.
- 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.
- 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:
- Vector, tensor, array, and label data; not just scalars
- CSG meshes
- AMR meshes
- Polyhedra
- Species
- Ability to save images directly from the simulation
- Better synchronization with VisIt
- Interleaved XY, XYZ coordinate arrays
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.
-
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.
- VisIt's engine now supports 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.
File format reader changes in version 2.0
- VisIt's file opening and format detection has received a major overhaul.
- File format readers can now specify a full file pattern they match, instead of being limited to a simple dot-extension. This allows many file formats to be tried automatically that previously had to be specified manually.
- 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 behave more strictly when attempting to detect if a given file is of that format, allowing the proper reader to open the file automatically in more cases. This strictness can typically be bypassed by instructing VisIt to use a specific file format to open a file (i.e. "Open As").
- 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 in a session, and always attempts to use this plugin first when re-opening a file. This knowledge is also saved into session files and used when restoring sessions. If a file is closed explicitly by the user, this instructs VisIt to "forget" which plugin was used, allowing the user to select a different plugin the when opening the file again.
- 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. For example, if file100.xyz and file200.xyz each contains ten timesteps, opening the file*.xyz database results in a cohesive 20-timestep sequence.
- 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.
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
- 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".
- 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 Advanced Features / Python Filters)
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 Advanced Features / Python Filters)
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.
- The Molecule plot's "imposter" rendering mode now correctly sets depth
information.
- 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.
- Host profiles are now divorced from the standard configuration files and stored separately, one file per host. This makes the process of giving users configurations for a specific host trivial (simply copy the file into the new hosts/ directory), simplifies setting up remote connections to multiple sites, and makes it easier to revert any changed settings to host configurations. UNIX, OS X, and Windows variants of these profiles have been combined into a single flavor.
- Furthermore, these host profiles are no longer saved in session files. This allows sessions to be restored using current instead of outdated host configuration information.
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.
Click the following link to view the release notes for the previous version
of VisIt: VisIt 1.12.2 Release Notes.