Frequently Asked Questions
This page contains a list of Frequently asked questions along with the answers to those questions. The questions are listed in no particular order.
|1. Contact information||17. Building VisIt on a Windows computer|
|2. Supported platforms||18. Installing VisIt on a MacOS X computer|
|3. Optimal hardware/software||19. Hanging at 12% on Windows computers|
|4. Debugging problems starting VisIt or opening files||20. Getting the Plugin Developer's Guide|
|5. Stereo rendering||21. Writing a plugin for VisIt|
|6. VisIt won't run on Linux||22. When new versions of VisIt are released|
|7. Slow performance on Linux||23. What is new in the latest version of VisIt|
|8. Slow performance Using SSH||24. Compilers that can be used to build VisIt|
|9. No output in visualization window||25. VisIt's licensing agreement|
|10. Accessing data on remote machine||26. Slow performance with ATI cards on Linux|
|11. Running VisIt in parallel||27. Custom plugins with a downloaded VisIt binary|
|12. Supported data file formats||28. Getting HDF5 data into VisIt|
|13. Getting your data into VisIt||29. Getting NETCDF data into VisIt|
|14. Making a movie of your data||30. When I run VisIt on my Linux machine, I get a black screen|
|15. Setting your user name to connect to a remote machine||31. I get the message 'Publisher cannot be verified' when installing VisIt on Windows|
|16. Cannot connect to a remote computer||32. Which libraries should I enable in build_visit?|
If you need help using VisIt or have questions about VisIt, send e-mail to one of the VisIt mailing lists. There are two open mailing lists open to anyone and three closed mailing lists for users associated with an organization that funds VisIt.
The two open mailing lists are:
The first mailing list is a venue for discussion among the VisIt community at large and is for users to ask questions and post suggestions about various aspects of VisIt, in topics anywhere from getting the code running to saving movies. The second mailing list is a venue for discussion among the VisIt developer community and is for developers to ask questions and post suggestions about various aspects of VisIt, including build issues, writing plugins, and any other aspects of VisIt development. You must subscribe to these lists before you can send and receive e-mail from them. Go to subscribe-visit-users to subscribe to the user list and go to subscribe-visit-developers to subscribe to the developers list.
If you are associated with SciDAC, GNEP or ASC, then you should send your questions to the appropriate closed mailing list:
VisIt can run on a variety of platforms from PCs running Windows or Linux all the way up to supercomputers running AIX.
The following operating systems are supported:
VisIt is known to work on other platforms as well but no binary distributions for these platforms are available due to machine retirements at LLNL.
VisIt should perform well on just about any Linux or Windows system as long as you follow these guidelines:
If you are having difficulty either starting VisIt and/or looking at some data files once VisIt is running, try some of the following...
Add '-debug 5' to the command-line to launch VisIt. This will generate debug logs for each executable component VisIt is running in the directory that VisIt was launched from.
Note that VisIt runs much slower with debugging turned on. So, it is best to use it only when you need to.
On Windows systems, if you launch VisIt by double clicking the shortcut icon, you will need to modify the "Target" text field of the shortcut and include '-debug 5' *after* the close double quote (") at the end of the existing string. Also, don't forget to remove it after you have completed debugging because running with debugging turned on causes VisIt to run much slower. Alternatively, you can make a copy of the shortcut icon, naming it something like "visit_debug" and modify only the copy.
VisIt supports 5 levels of debugging. So, each component will generate 5 different debug logs. The level 5 logs have the most information.
If you are running VisIt in a client/server scenario, then only the gui and viewer components will be running locally on your desktop. The other componets will be running on whatever system you launched them on. In this case, debug logs for those components will be generated in your login directory on those systems.
Once you have generated debug logs, searching for the string 'Exception' in them can often lead you to clues regarding the problem. But, be aware tha there are many cases where Exceptions are 'normal' in that they do NOT lead to a failure to startup or run correctly. So, don't be mislead by these.
Problems with startup can usually be found in the viewer logs. Problems with opening a file are usually found the mdserver logs and problems with getting a particular plot to work are usually found in the engine logs.
In some cases, the problems may be such that the failing components get relaunched. When this happens, the existing logs get overwritten by new ones. For this reason, they may not show the 'original' reason for the problem. The deal with this case, try also adding the command line argument '-pid' to the command to launch VisIt. This will cause the debug logs to be named with process ids so they don't get overwritten. Be aware that doing this can lead to hundreds of log files after many attempts to start/run VisIt. To find the log showing the original problem, you need to sort the logs according to time of modification.
Yes, VisIt supports stereo rendering. We have run VisIt with stereo rendering on the following systems:
Note that when you want to use stereo rendering in VisIt, you must provide the -stereo command line option when you start VisIt at the command prompt.
Some Linux systems, when they are not connected to a network, do not know how to resolve localhost. This causes problems because VisIt is network-aware and must know the host on which to launch its various components. You should check your /etc/hosts file and make sure that there are entries for localhost. If there are no lines that contain localhost, adding the following line to the /etc/hosts file might allow VisIt to run:
The standard Linux distributions do not come with vender-supplied graphics drivers, which are required to achieve full hardware acceleration. You should download and install the latest driver for your graphics card from your graphics card vendor’s Web site. In the case of an NVidia graphics card, you can get the latest driver by going to NVidia’s Web site, selecting the Download Drivers link, and then selecting the Linux Display Drivers link.
When you log into a remote system with ssh, all X Windows traffic is encrypted on the remote system and decrypted on your local system. This seriously degrades the interactivity of VisIt. There are two methods to solve this problem: (1) use xhost, or (2) use xauth. Xhost is the less secure of the two methods, so we recommend that you use the method based on xauth.
In a local window on your desktop, type:
xauth extract mycookie your_display_name:0.0
scp mycookie remote_machine_name:mycookie
On the remote machine type, type: setenv DISPLAY your_display_name:0.0 xauth merge mycookie
The your_display_name and remote_machine_name should be the completely qualified machine name (e.g., myhost.llnl.gov instead of just myhost .)
The xauth merge command adds information to the .Xauthority file in your home directory on the remote machine. The .Xauthority file can get large if you keep merging into it. For performance efficiency, you should periodically remove the file. The xauth merge command will create a new file if .Xauthority doesn't already exist.
In a local window on your desktop, type:
On the remote machine, type:
setenv DISPLAY your_display_name:0.0
This problem has arisen on Sun Blade and Linux systems and usually means that the X Server on your desktop machine does not have OpenGL support. To determine if this is the problem, type xdpyinfo on a window local to your desktop. Near the top of the resulting output is a section describing the server extensions on your system. On a Sun Blade system, you should see one named GLX. On Linux systems you should see extensions named GLX, NV-GLX, and NVIDIA-GLX . If these extensions are missing, your system administrator will have to install them for you.
First, VisIt must be installed on the remote machine. Then, in order to access data on remote machines, simply type in the name of the remote machine in the Host field in the File Selection window in the VisIt graphical user interface and include visit in your search path on the remote machine. For more information, read the Distributed Mode portion of the Remote Visualization section in the VisIt Users Manual.
VisIt is a distributed, component-based, visualization tool. The engine component, which performs file input and output as well as the data processing operations, can be run in serial or parallel. In order to run the engine in parallel, you must set up a host profile that specifies how the engine is launched in parallel. For more information, read the Host Profiles portion of the Remote Visualization section in the VisIt Users Manual.
Also note that the VisIt binary distributions will most likely not work for running in parallel on your particular computer system. The most common reason is that the MPI version used to compile VisIt binaries is not compatible with your MPI and parallel launching mechanism. This is solved if you recompile VisIt from source on your computer. We have developed a script called build_visit that automates much of this process for Linux and AIX platforms.
VisIt can read over 100 file formats. The table below lists some of the most popular data file formats that VisIt can currently read in and visualize. You can look at the What's New page for more supported file formats. Finally, the File formats table at visitusers.org is another good resource. Each file format is read in by a database reader plug-in that is distributed with VisIt. If you want to use VisIt with your data, you can write your data to a file format that VisIt already understands or you can write your own database reader plug-in. You can find out more about writing compatible files and writing a database reader plug-in in the Getting Data Into VisIt manual.
|ANALYZE||Format that stores fMRI data of brain scans.||ANALYZE file format description|
|ANSYS||ASCII file format used for input to the ANSYS suite.||ANSYS home page|
|BOV (brick of values)||BOV data are stored in two files. The first file is binary and it contains all of the data for an implied rectilinear grid stored as a brick of floats, doubles, etc. The second file is an ASCII header file that indicates the size of the data in the brick file as well as other attributes such as whether the brick is compressed. The contents of the ASCII header are described in the Getting Data Into VisIt manual.|
|Boxlib||File format used by the Boxlib library, an adaptive mesh refinement (AMR) framework. VisIt reads both 2D and 3D versions of the data file format.||View Boxlib documentation|
|CGNS||The CFD General Notation System (CGNS) consists of a collection of conventions, and software implementing those conventions, for the storage and retrieval of CFD (computational fluid dynamics) data.|
|Chombo||This database reader plugin reads files from the Chombo package, which provides a set of tools for implementing finite difference methods for the solution of partial differential equations on block-structured adaptively refined rectangular grids.||Chombo home page|
|CTRL||CTRL files are the control files for TB-LMTO software, which uses the linear muffin-tin orbital (LMTO) method.||STUTTGART TB-LMTO program|
|Curve2D||ASCII text file format containing pairs of x,y floating point values on each line. This file format is convenient for importing curve plots into VisIt. The curve format can store more than one curve provided you supply a variable name as a comment, beginning with "#".|
|Ensight Gold||Proprietary file format for 2D and 3D data.||File format described in chapter 2 of the Ensight User Manual|
|Enzo||Enzo is an adaptive mesh refinement (AMR), grid-based hybrid code (hydro + N-Body) which is designed to do simulations of cosmological structure formation.||Enzo home page|
|Exodus||Sandia National Laboratory's file format for storing data||Exodus II documentation|
|FITS||FITS stands for `Flexible Image Transport System' and is the standard astronomical data format endorsed by both NASA and the IAU. FITS is much more than an image format (such as JPG or GIF) and is primarily designed to store scientific data sets consisting of multi-dimensional arrays (1-D spectra, 2-D images or 3-D data cubes) and 2-dimensional tables containing rows and columns of data.||FITS home page|
|FLASH||ASC / Alliances Center for Astrophysical Thermonuclear Flashes||FLASH home page|
|FLUENT||FLUENT is a very popular commercial CFD code.||FLUENT home page|
|FVCOM||An unstructured grid, finite-volume, three-dimensional (3D) primitive equations ocean model that has been developed for the study of coastal oceanic and estuarine circulation.||FVCOM home page|
|GGCM||The centerpiece of the NSF/GEM, program is the development of a Geospace General Circulation Model (GGCM), to be used as a research tool as well as a prototype for space weather forecasting models.||Open Geospace General Circulation Model|
|GIS||VisIt can read in several popular Geographic Information System (GIS) file formats using the GDAL library. The content stored in GIS file formats varies widely but can include elevation maps, census data, vector data such as roads and streams, etc. Some of the supported file formats are DEM, ArcGrid, ESRI Shapefile.|
|H5Nimrod||The H5Nimrod plugin was developed at Lawrence Berkeley National Laboratory to read Nimrod's HDF5 output file format.||H5Nimrod plugin information|
|H5Part||The H5Part plugin was developed at Lawrence Berkeley National Laboratory to read HDF5 part files.||H5Part plugin information|
|Image||VisIt can read in many image file formats created by popular image editing software including: BMP, JPEG, PNG, PPM, PNM, RGB, TIFF. Stacks of images can also be assembled into 3D volumes using a .imgvol file, which is a text file containing the names of the files to assemble into the 3D volume.|
|ITAPS||VisIt's ITAPS reader is one implementation of the TSTT interface for representing mesh and geometric data. The interface is experimental and is being actively developed and refined by a follow-on SciDAC project called ITAPS (Interoperable Technologies for Advanced Petascale Simulations). The interface is designed to be used 'in-situ' and so there is no well defined, persistent file format. VisIt's ITAPS reader is currently designed around the MOAB implementation of the TSTT interface. Presently, it reads unstructured, single-block meshes consisting of any combination of the finite element zoo of element types along with zone- and node-centered fields implemented as TSTT 'tags'.||ITAPS|
|MFIX||MFIX (Multiphase Flow with Interphase eXchanges) is a general-purpose computer code developed at the National Energy Technology Laboratory (NETL) for describing the hydrodynamics, heat transfer and chemical reactions in fluid-solids systems.||MFIX home page|
|MM5||MM5 is a limited-area, nonhydrostatic, terrain-following sigma-coordinate model designed to simulate or predict mesoscale atmospheric circulation.||MM5 Community Model home page|
|NASTRAN||NASTRAN Bulk data file format is an ASCII format that describes unstructured meshes.||NASTRAN home page|
|Nek5000||Nek5000 is a file format developed for the Nek 5000 code at Argonne National Laboratory.||Nek5000 home page|
NetCDF (network Common Data Form) is an interface for array-oriented data access and a library that provides an implementation of the interface. The netCDF library also defines a machine-independent format for representing scientific data. Together, the interface, library, and format support the creation, access, and sharing of scientific data.
VisIt's NetCDF reader plugin supports conventions for the ADAPT, Lodi, and FVCOM simulation codes. If your NetCDF files were not generated with those codes then VisIt's basic NetCDF reader will attempt to expose all 1D, 2D, 3D arrays as variables that VisIt can plot. The basic reader does not permit you to specify coordinates for your mesh nor does it allow more than one time step in a file. If your file's variables are disabled in VisIt's plot menus then you may need to extend VisIt's NetCDF reader to support your code's conventions.
|OpenFOAM||The OpenFOAM (Open Field Operation and Manipulation) CFD Toolbox can simulate anything from complex fluid flows involving chemical reactions, turbulence and heat transfer, to solid dynamics, electromagnetics and the pricing of financial options. OpenFOAM is freely available and open source, licensed under the GNU General Public License.||OpenFOAM home page|
|PATRAN||PATRAN neutral file, which is an ASCII file containing the definition for an unstructured mesh.||PATRAN home page|
|PLOT3D||Visualization application with accompanying file format developed at NASA Ames.||Download PLOT3D|
Point3D is a simple ASCII text format for 3D particles that have 1 scalar variable. Point3D is not a widely used format but it can be useful for scripts or simple particle simulations that want an easy way to get particle data into VisIt. The file format consists of a comment line that includes the names of the coordinates and the variable name. The variable name is used in VisIt's plot menus. After the comment line, each subsequent line contains the (x,y,z) coordinates and variable value for a point. If you have more than 1 scalar variable to plot on your particles then consider using Silo or Xmdv file formats.
|Protein Databank||Protein Databank (PDB) files contain molecular data describing the structures of biological macromolecules.||RCSB Protein Databank|
|SAMRAI||Format used by SAMRAI, which is a high-performance library for handling structured AMR data.||SAMRAI home page|
|Silo||LLNL data file format for storing rectilinear, curvilinear, unstructured, or point meshes in 2D and 3D. Scalar, vector, and material data can be defined on meshes. Data can be broken up into different files (multi-block) to increase parallel performance.||Download Silo source code
Download Silo documentation [PDF]
|Spheral||Spheral++ is a steerable parallel environment for performing coupled hydrodynamical and gravitational numerical simulations.||Spheral++ home page|
|STL||STL, or stereo lithography format, is an ASCII or binary file used in manufacturing. It is a list of the triangular surfaces that describe a computer generated solid model. This is the standard input for most rapid prototyping machines.||STL file format description|
|TecPlot||TecPlot is another popular visualization tool. VisIt can read the ASCII version of the TecPlot file format, though VisIt's reader does not handle all forms of the ASCII Tecplot file format.||TecPlot home page|
|VASP||VAMP/VASP is a package for performing ab-initio quantum-mechanical molecular dynamics (MD) using pseudopotentials and a plane wave basis set.||VASP Group|
|Vis5D||Vis5d is a free OpenGL-based volumetric visualization program for scientific datasets in 3+ dimensions.||Vis5D+ home page|
|VTK||Visualization Toolkit (VTK) data file format. This is an ASCII-based file format that can store 2D and 3D meshes and data on those meshes.||Download file format manual|
|Wavefront OBJ||Alias Wavefront's OBJ file format is useful for incorporating 3D models into your visualizations.||Wavefront OBJ file format description|
|Xmdv||File format used by XmdvTool, a public-domain software package for the interactive visual exploration of multivariate data sets.||Xmdv file format description|
|XDMF||A standardized method to exchange scientific data between High Performance Computing codes and tools. It uses XML to store light data and HDF5 to store heavy data.||XDMF home page|
|ZeusMP (HDF4)||This database reader plugin reads HDF4 files from ZEUS-MP, which is a parallel addition to the ZEUS line of community application codes developed by the Laboratory for Computational Astrophysics.|
VisIt can read in a variety of data file formats due to its database reader plug-ins. If you want VisIt to read your data there are three approaches that you can take. These approaches are all described in the Getting Data Into VisIt manual. First, you could convert your data files into a format that VisIt understands. If you do not want to double your stored data or if you have not yet created your data, you could change your application to write out data in a format that VisIt understands. Finally, you could write your own database reader plug-in for VisIt so that VisIt can read data from your file format. The approach that you take depends on your situation, the type of data, and what language was used to write your application. If you want to use a versatile file format that VisIt already understands and you are programming in C, C++, or Fortran, then we recommend using Silo. You could also use CGNS or NetCDF, depending on how your data is represented. If your application is not written in any of those languages, we recommend writing out VTK files since they are simple enough to write without lots of complicated programming. If you don't want to convert data files or alter your code to write out a format that VisIt already reads, then you might consider writing your own database reader plug-in for VisIt. For more information on how to write your own database reader plug-in, read the Getting Data Into VisIt manual.
There are a two ways to save a movie in VisIt and the one you use depends on the complexity of the movie that you want to make. The easiest way to save a movie in VisIt is to set up your plots just how you want them to look and then use the Save movie wizard in VisIt's GUI. If you prefer to use VisIt's batch movie making utility, you can set up your plots as usual and save a session file by selecting Save session from the File menu. A session file contains the information that VisIt needs to recreate the image on your screen. For the purposes of this example, assume that you saved a session file called movie.session. To make a movie of it, open a command line shell and type:
visit -movie -geometry 800x800 -sessionfile movie.session -format mpeg -output mymovie -fps 30
Note that you may have to include the complete path to VisIt if you are running VisIt on Windows. The command given above launches VisIt's command line interface (CLI) recreates your plots using the session file that you saved and then steps through each frame in your animation and saving an image file for each frame of the animation. After the frames are saved to disk, VisIt attempts to combine the individual movie frames into a single MPEG movie file. Note that VisIt cannot create MPEG movies on Windows at this time. You can, however, create ppm, jpeg, or tiff image files using the -format command line flag and then import the image files into your favorite movie making software. Making movies using this session-file-based approach allows you to save out relatively complex animations with little effort. You can use VisIt's Keyframe editor window to set up fly-by animations and to make various plot attributes vary over time.
Another approach to making movies with VisIt is to write a Python script that tells VisIt everything that you want to do in your movie. This approach is more work but you have much more control over plot and operator attributes as well as when time advances in the animation. We plan to make it easier to do more complex animations using the session file approach, but for now if you need very complex animations, you can use Python scripting. If you wrote a Python script called movie.py, you could make VisIt save your movie as tiff files by typing the following command in a command line shell:
visit -movie -geometry 1024x1024 -s movie.py -format tiff -output mymovie -fps 30
VisIt's Python Interface Manual documents all of the functions in the VisIt Python extension and includes examples of how to do common plotting and movie-making operations. If you need more examples of how to write Python scripts for VisIt, download the VisIt source code distribution and look for Python scripts in the visitpy/examples directory. If the two current ways of making movies sound too difficult, don't worry. We plan to enhance VisIt in the next few versions so it is easier to make movies.
It is fairly common for your user name on a desktop computer to differ from your user name on a remote computer. To successfully connect to a remote computer, you must provide a valid user name for the computer to which you want to connect. You will have to create a host profile for the remote computer so VisIt knows your user name on that computer. Open the Host profiles window by clicking Host profiles in the Options menu. Create a new host profile for the remote computer and be sure to enter your correct user name for that remote computer. For more information on creating host profiles, read the Distributed Mode portion of the Remote Visualization section in the VisIt Users Manual.
Sometimes VisIt fails to connect to a remote computer while trying to access files in distributed mode. This can happen for a variety of reasons and they are usually related to how your computer is configured to access the network. First of all, VisIt uses SSH to launch its components on remote computers and it is possible that SSH was unable to launch VisIt on the remote computer. If you want to verify this, run visit -debug 5and then check to see if any vcl, mdserver, or engine log files are present on the remote computer in your home directory. If no log files were created then SSH was probably not able to launch VisIt components on the remote computer. In that case, make sure that you can SSH to the remote computer. Also check your local VisIt installation's Host profiles to make sure the path to VisIt on the remote computer is specified. Alternatively, you can set the PATH environment variable on the remote computer so it contains the path to the program visit.
If there were no debug logs to be found on the remote computer and your local computer runs a newer version of Linux then quit VisIt and try running visit -nopty -debug 5. The -nopty option tells VisIt not to allocate a pseudoterminal in which to run SSH. When you run with the -nopty option, VisIt's password window will not be used. Instead, look for an SSH prompt in the terminal window where you ran VisIt. You should be able to enter your password at that prompt. If successful, SSH should continue trying to launch VisIt on the remote computer. If VisIt still cannot connect after SSH launches VisIt's remote components, check for debug logs on the remote computer to see if VisIt was at least able to launch there.
If you found debug log files on the remote computer but VisIt still can't connect then it's possible that the remote computer cannot connect back to your local computer. This is caused either by a networking problem or a firewall that is disallowing inbound network connections to your local computer. The simplest solution is to use SSH tunneling. If that doesn't correct the problem then you will need to correct the networking and/or firewall issues.
SSH tunneling is enabled by going to the Options pulldown menu at the top of them main window and bringing up the Host profiles window, selecting the profile for the remote computer, selecting the Advanced options tab, selecting the Networking tab, toggling the Tunnel data connections through SSH setting, and pressing the Apply button.
Some desktop computers do not provide a valid network name when VisIt asks for one. If you suspect that this could be the cause of the launch failure, try using Parse from SSH_CLIENT in your host profile for the remote computer. If that does not work and if you are using VPN then you should try manually setting the local host name VisIt will use when telling its remote components to connect back to your local computer. Open the Host profiles window and go to the Advanced options tab. Click the Specify manually radio button and type in the IP address of your VPN session into the adjacent text field before you try connecting again.
VisIt uses ports 5600-5609 to listen for incoming connections (when they are expected) from remote VisIt components. If you've tried the previous suggestions and none of them worked then you may have a firewall denying VisIt access to your local computer. Try turning the firewall off or allowing ports 5600-5609 and run VisIt again. If you do not know how to enable ports for your firewall or if you do not have the required privileges, contact your system administrator.
If none of these suggestions allow you to successfully connect to the remote computer then contact firstname.lastname@example.org and provide information about how you are trying to connect. Be sure to include the VisIt version and platform on which you are running in your e-mail.
You need two things in order to build VisIt on a Windows computer. First of all, you must have Microsoft Visual Studio 2010. Compilers from other vendors might work to build the VisIt source code but the VisIt source distribution for Windows only provides project files for the two afore-mentioned compilers. The last thing you need in order to build VisIt on Windows is the VisIt source distribution for Windows. The Windows source distribution contains additional pre-compiled libraries that will ease the process of building VisIt on your Windows computer. See this guide to building VisIt on Windows for more information.
The VisIt source distribution for Windows contains all of VisIt's source code and prebuilt versions of most of VisIt's support libraries so it is not required that you download and build all of those libraries unless you want to customize them. Download and install the source distribution for Windows and read the VisItBuildInstructionsOnWindows.doc file in the VisIt development directoryfor more information on building VisIt for Windows.
These days you only need to download appropriate 32-bit or 64-bit DMG file for your Mac system. Once you download the DMG file, double-click it, and then drag the VisIt application to your desktop or Applications folder.
We believe that this happens if you double-click on the VisIt icon on the Windows desktop due to the VisIt start up directory being set to VisIt's data directory in the desktop shortcut. The VisIt installation program for Windows has been changed as of version 1.5 so that the start up directory is set to the directory in which VisIt was installed. This allows Windows to more easily find VisIt's dynamic-link libraries when trying to launch the viewer component. You can work around the problem by using the VisIt menu option in the start menu, by running VisIt from the Windows command prompt, or by editing the properties for the desktop shortcut so the start up directory for VisIt matches the location where VisIt was installed. If you try these solutions and the problem persists then it is possible that your computer has misconfigured network options or there is another program interfering with VisIt's launch (e.g. firewall, virus checker).
That document no longer exists. Instead, database plugin development is covered in the Getting Data Into VisIt manual.
VisIt customers most commonly want to know how to write a database reader plugin. The process for writing a new database reader plugin is described in the Getting Data Into VisIt manual. Other plugin types will eventually be documented in the Plugin Developer's Guide. Since that guide has not been completed, the best way to begin writing a new plot or operator plugin is to send e-mail describing the plugin that you plan to write to email@example.com. The VisIt developers will be able to tell you the general steps that are involved and also suggest where to look for code that you can copy from existing plugins.
Plugins are generally meant to be written using the shared libraries and header files that are provided in the binary installations of VisIt. This means that you don't have to build all of VisIt in order to start developing your plugin. However, this assumes that you are going to use compilers that are compatible with the ones used to build VisIt. If you use compilers that generate code that is not compatible with the compilers used to generate a VisIt binary distribution then you will have to build VisIt. Building VisIt on the Windows platform currently requires that you use the Microsoft Visual Studio 2010 compiler if you plan to build only your plugin and not all of VisIt since the import libraries distributed with the Windows version of VisIt are built using that compiler. Building a plugin begins with the step of creating an XML file. All VisIt plugins whether they are plot, operator, or database plugins begin with an XML file that describes the plugin's attributes. Have a look at the source code for other VisIt plot, operator, or database plugins to see how the XML files are used in practice.
There are two popular methods for starting a plugin. You can copy the files from another plugin, rename, and gradually adapt them to your needs or you can begin from scratch. If you begin from scratch, you will want to run VisIt's XMLEdit program, which loads, edits, and saves XML files for VisIt plugins. XMLEdit is used to set up the required attributes of a plugin such as its type and name. XMLEdit is also used to set up more advanced attributes such as the file extensions associated with a database plugin or the plot attributes required for a plot plugin. It can be helpful to look at the XML files from existing VisIt plugins to get an idea of how the XML files are used.
Once you have created an XML file for your plugin, run xml2plugin -clobber myxmlfile.xml to generate the plugin skeleton, any automatically generated code, and Makefile or project files needed to build your plugin. Once you've generated your plugin for the first time, check the directory in which you're keeping your plugin sources and XML file. There should be several new files. Most are boilerplate but pay special attention to the files that begin with "avt" since those are the files to which you generally must add your plugin code.
The VisIt development team usually releases a new version of VisIt every 3 months. Each VisIt release contains on average 60 enhancements or bug-fixes, improving the functionality and the quality of the tool. Check the VisIt Web site often for updates. You can also join the VisIt User's mailing list if you want to know when VisIt is updated. You can also subscribe to the VisIt project on Freshmeat.net if you want to be informed when a new version of VisIt becomes available. Finally, you can use the "VisIt update" feature in VisIt's help menu to automatically determine if an update for your platform is available. "VisIt update" can in many cases even download and install the new version of VisIt.
Each version of VisIt contains on average 60 enhancements or bug-fixes. The first time that you run a new version of VisIt, the release notes for that version will be prominently displayed in the Help window. The release notes describe the enhancements and bug-fixes made in each version of the tool. After you have read the release notes for the new version of VisIt, they will not be automatically displayed again but you can view them at any time using VisIt's Help window.
The following compilers can be used to build VisIt on the listed platforms, though this is not an exhaustive list and newer versions of these compilers often work. In general, any g++ 4.x series compiler will build VisIt just fine. Earlier versions of g++ will also usually work.
|Linux||g++ 4.0 or later|
|Windows||Microsoft Visual Studio 2010|
|MacOS X 10.4-10.8||g++ 4.0 or later|
VisIt is released under the BSD license, which you can view on VisIt's license page.
The default rendering performance of VisIt running on some ATI cards on Linux systems has been found to approximate that of software rendering. One solution we have found to this problem is to switch the rendering mode to always use display lists, which restores the rendering performance to what you would expect from hardware accelerated rendering. To change the rendering mode to use display lists, change the Use display lists mode to Always on the Rendering options window and press the Apply button. The Rendering options window can be brought up by selecting Rendering... from the Options pull down menu at the top of the main control panel. To make the change permanent, press the Dismiss button and save the settings by selecting Save Settings from the Options pull down menu.
If you install a binary from our Web site, you may be downloading a version of VisIt that uses a different C++ compiler from what may be installed on your system. Our binary distributions will often run just fine on such systems but once you create your own plugin using a C++ compiler that differs from the compiler used to build VisIt, you may experience problems. If you are running into this problem, you will often see runtime error messages similar to:
*** glibc detected *** free(): invalid pointer: 0x095de9b8 ***
If you notice any runtime errors related to glibc because you're using a custom-built plugin with our binary distirbutions then you probably have a runtime library incompatibility. The best way to resolve this situation is to build VisIt on your platform using our build_visit script since it will automatically build VisIt. Once you've rebuilt VisIt using your C++ compiler, you should regenerate your plugin's Makefile using the your new VisIt's xml2makefile program. Once you have done that, rebuild your plugin to make it build against your new, natively built version of VisIt.
HDF5 is an array storage file format that supports a wide variety of data types and VisIt reads a lot of file formats from codes that use HDF5 as a storage layer. Unfortunately, VisIt cannot provide a plugin that can read all HDF5-based files because of the various conventions that codes invent when they store their files. VisIt's HDF5-enabled plugins are programmed to know about the conventions used to map array data from the file into meaningful constructs such as meshes with data. If you need to import HDF5 data into VisIt then you might be achieve satisfactory results if you choose File->Open As... and then open the file using the Pixie reader, which is VisIt's most generic HDF5 reader. Note that it is possible to write a new database reader plugin to understand your data following the procedures provided in the Getting Data Into VisIt manual.
Like HDF5, NETCDF is just an array storage file format so the same problems tend to occur when you want to get NETCDF data into VisIt. However, VisIt's NETCDF reader will attempt to open NETCDF data with a variety of different readers that look for various simulation code conventions (CF support not implemented) and in the event that the file was not written using any discernable convention then a back up basic reader is used. The basic NETCDF reader exposes all of the arrays in the NETCDF file as data that can be plotted on rectilinear meshes corresponding to the size of each array. The common complaint is that the data looks okay but the mesh is not scaled accordingly. If this happens to you then VisIt is using its basic NETCDF reader, which does not support any conventions. Note that it is possible to write a new database reader plugin to understand your data following the procedures provided in the Getting Data Into VisIt manual.
Under Linux, hardware-accelerated rendering can become a complicated problem because many hardware vendors have their own drivers which can conflict with the direct rendering infrastructure in XFree86. We have had some success simply removing references to DRI in the XF86Config file. For example, remove the line in the "Module" section of the file that reads:
There is nothing wrong and you may safely proceed with the installation.
In general: as few as you can.
An overwhelming majority of the libraries that one can enable via build_visit are used for a single purpose: supporting a file reader ("database") to allow reading data of that type. If you don't select a particular library in build_visit, the only drawback is that you won't be able to use VisIt to read data files which were written using that library.
VisIt supports many file formats which are used across numerous scientific disciplines. As a user in one or two of those scientific disciplines, it's likely that you'll only use a few of those databases in your daily visualization needs, and unheard of that you would need all of them. To put things in perspective: VisIt supports upwards of a hundred different file formats. Many of those formats are only applicable to a specific group within a scientific domain.
Finally, while we make every effort to streamline the build_visit process, there are simply too many platforms and too many third party libraries to do exhaustive testing. By only enabling what you need, you're less likely to encounter build failures in build_visit -- it can't fail to build if you don't try to build it!
A good rule of thumb is: if you haven't heard of a library, you don't need to enable it.