Particle Viewer (PartView)

Problem:

The Accelerator modeling SciDAC project works on simulations of particle accelerator beamlines in order to understand beamline behavior and to optimize performance. One area of accelerator modeling focuses on the modeling of proton-electron interactions in the beamline. The representation for particles in these beamline simulations is a 6 dimensional dataset composed of 3 spatial dimensions and 3 phase dimensions. The most common method used to inspect the simulation data is to create scatterplots of a subset of these dimensions (eg. plot one of the phase components against the Z-coordinate for each particle in the simulation). The LBNL vis group has worked closely with members of Rob Ryne's team to provide them with advanced 3D methods for understanding their data using AVS/Express. AVS/Express has allowed the group to move beyond simple scatterplots and actually track the movement of groups of particles through the lifetime of the simulation (Figures 1 and 2 show snapshots of the electron cloud visualization using AVS/Exppress). However, the scatterplots are still important method for rapid visual inspection of new datasets.

Figure 1. Electron cloud visualization: proton beam (rendered as particles) progressing through an electron cloud (volume rendered).

Figure 2. Electron cloud visualization: electron trajectories as the simulation progresses.

AVS/Express offers considerable flexibility for constructing sophisticated visualizations, but often users find the user interface daunting. Express is perhaps overkill for the most basic visualization tasks performed by this group. The PartView tool is designed to provide a straightforward interface that covers the simpler 80% of the kinds of 3D analysis and inspection that the accelerator modeling researchers need in order to understand their dataset. It is consistent with recommendations of the VisGreenbook where scientists indicated a preference for tools that had a user interface that was simpler and customized to their problem over powerful/complex general-purpose user interfaces. The vis group will continue to use more complex tools like Express to provide more sophisticated visualization methods, but the simpler every-day data inspection can be well addressed by a portable, interactive lightweight tool like PartView.

In addition, the particle simulations are scaling up very rapidly and may soon exceed the ability of serial tools like Express to manage the resulting datasets. There is a need for lightweight front-ends application that can tap into remote I/O and rendering services that are located at the site where the datasets are produced. This very same architecture can also be used to connect to running applications for visual inspection of simulations that are in progress. This kind of distributed application approach can offer the interactivity of a desktop tool, but allow users to peruse extremely large remotely located datasets with the same ease as locally downloaded data.

Solution:

PartView was constructed using FLTK, OpenGL, and HDF5 so that it can easily be compiled on a number of platforms. The tool allows the user to project 6 dimensional data into a 3 dimensional space by selecting which dimensions will be represented spatially and which dimensions are represented as particle attributes (color and transparency currently), and the construction of complex transfer functions for representing the particle attributes. It also allows management of time-series data and two different file formats for storing the particle accelerator data. Figure 3 shows PartView's GUI with the colormap editors (gaussian and solid).

Figure 3. PartView GUI with colormap editors: gaussian and solid color.



An HDF5-based parallel-I/O library was written in conjunction with this application that allows more than one group in the Accelerator Modeling SciDAC to use this same tool to understand their data. The HDF5 file format will enable the simulations to handle the I/O requirements of simulations that are an order of magnitude larger than is currently reasonable and also support some interoperability between groups with similar needs. The API for the file format has C++, C and Fortran bindings in order to interface with a variety of different codes employed in this area.

PartView has a number of hooks in it that will allow it to connect with a parallel back-end located at NERSC that is able to provide remote file access, progressive streaming of the largest datasets, and even parallel rendering of particle sets in excess of 1Billion particles. This capability is still in development. Currently, the standalone tool is being evaluated by Andreas Adelmann for use with his C++ based modeling/simulation code.