ParaView:FAQ

From KitwarePublic
Jump to navigationJump to search

General information and availability

How do I compile ParaView ?

See README.html in the ParaView directory.

Can I use volume rendering to see my data ?

ParaView supports volume rendering of unstructured grid data sets.

User interface issues

Where are the scalars/vectors I expect?

The array may not have a name. ParaView does not recognize attributes without names. VTK is being converted so that all data arrays are named.

Why can't I change the filename on my reader ?

Once a ParaView data set is created, it is assigned a vtk dataset type (i.e vtkPolyData). This cannot be changed. Since changing the file name of a reader could change the output type, we do not allow it. You have to load other data as an separated data object.

Viewing / Interaction issues

Why is rotation acting like translation ?

If the center of rotation is far away from the current view, then rotation acts like translation. Just press the reset button in the center of rotation toolbar.

How do I show the surface of my volume ?

ParaView is defaults to showing the outliens of 3D volume data sets. Selecting "Surface" in the data page will display the surface of the volume instead.

I cannot see my data, what do I do?

You can pres the reset-view button at the top left corner of the application. This will change the view to best display all of the visible data. You can also press the "Set View to Data" button on the individual data objects "Display" pages. This will change the view to show the data in that individual data object.

How can I move my dataset relative to another data set ?

Use the "Actor control" in the datasets Display page. Note that moving the dataset using these controls only moves the displayed polygons (the actor) and does not transform the actual data. Filters applied to the dataset act on the original data.

Running ParaView in parallel / Processing large data

What does "Save Data" entry in the file menu do when you are running more than one process ?

When running one process, "Save Data" creates a file from the current data set in ParaView. When running more than one process, save data creates spatially distributed files. Each process writes its own data in a file. A single meta-file pointing to these pieces is also created.

Which readers/filters work in parallel ?

Currently there are only a few of readers that truly work in parallel: VTK files (not legacy), partitioned legacy VTK files, ParaView data files, HDF5 files, EnSight master server files, raw (binary) files can be read in parallel. For demonstration purposes, ParaView will distribute pieces of a data set when the reader cannot. Unfortunatley, this is an inefficient process.

All the filters in ParaView will work in parallel. Some like Clean (vtkCleanPolyData) have global agorithms that when run in parallel will produce seems. Others like Loop Subdivision (vtkLoopSubdivisionFilter) algorithms that work on local neighborhoods of cells. These filters can operate in parallel with no seams (result invarience) if their input can generate ghost cells. Otherwise, there may noticeable boundaries between pieces handled by the different processes.

Can ParaView stream my data sets (process then out-of-core) ?

VTK has some useful streaming features that allow you to process a large data set without ever having to load the entire data set into memory. ParaView has not yet been set up to take advantage of this VTK feature. I would suggest creating a visualization in ParaView using a smaller/lower resolution data set. You could then save out the pipeline into a Tcl script, add a streaming filter and use VTK to process the large data set.

How does ParaView render when running in parallel ?

ParaView supports two rendering modes:

  1. Sort first (collection): Small objects can be collected to the first node and rendered locally. In this mode, the polygons are collected only when the source generating them is modified. Although this collection might take time, it is done only once and rendering is fast.
  2. Sort last (distributed rendering): In this mode, first, each process renders their scene, then these scenes are composited using the depth buffer. This is done every render. Although this is slower for smaller datasets, it is the only scalable solution when the dataset become large.

Why does it take so long to read my files in parallel ?

If you are running on multiple processes and are using a reader that cannot read in parallel, you will pay a penalty. The default behavior is that every process will read all of the data an throw away the pieces it does not need. Since every process is trying to read the file at the same time, you may have file contention. There is an option in ParaView that help this situation, but it still has a couple of issues. When the environment variable "PV_USE_TRANSMIT" is set to "True" (or any value), then ParaView will read the file on the first process, and will distribute the pieces using MPI calls. This is much efficient because only the first process reads the file. Unfortunately, there is a remote chance that ParaView might hang because of a deadlock.

How is my data partitioned across processes ?

You may notice seems in the LOD version of the data when you are interactively rotating the view. These show the partition between the different processes. For a better display of processor assignment, you can use the Process Id Scalars (vtkPieceScalars) filter in the Filter menu. This will assign each process a different color.

What modes can be used when running pvbatch ?

pvbatch (the executable for running ParaView batch scripts) can be run in stand-alone mode -- either single or multiple processes (using MPI). pvbatch cannot be run in client / server or client / data server / render server mode.

Questions about filters

Why can't I find the filters I want ?

Some filters do not currently have a parallel implementation. Others have unusual methods that are not currently defined in the XML interface descriptions. We are working to include these filters in future releases. Some filters have just been left out because we wanted to keep the menu of filters short. You can easily add these filters to ParaView by adding an XML description in the XML source file.

How do I add my own vtk filter/reader to ParaView?

Here are a few tips to get started:

1. Read http://public.kitware.com/pipermail/paraview/2003-September/000290.html Adding filter is very similar to adding readers.

2. Read ParaView/GUI/Client/Resources/Filters.xml and ParaView/Servers/ServerManager/Resources/filters.xml in the source distribution. These are the default filters config files for ParaView.

3. Read ParaView:Extend

Compilation questions

How do I compile ParaView for Mac OS X?

To build ParaView (version 2.2) on the Mac OS X (Panther), using X11, do the following.
1) Get the ParaView source (either from CVS or from a source tarball available from ParaView's website.
2) Create a binary directory beside the one for the source code.
3) Run ccmake. Set BUILD_SHARED_LIBS to ON; set VTK_USE_CARBON to OFF; set VTK_USE_X to ON; check that CMAKE_CXX_COMPILER is set to c++ and that CMAKE_C_COMPILER is set to gcc. Then configure and generate.
4) Run make.

Command-line questions

How do I specify the list of machines in the render server in ParaView 2.2 and later?

The list of machines making up the render server (or data server if the render server is connecting to the data server) is now specified in a configuration XML file (*.pvx) instead of in a separate machines file. The format for this portion of the XML file is shown below. The "<Machine ... />" line is repeated for each machine in the render server (with the Name specified appropriately for each machine).

<?xml version="1.0" ?>
<pvx>
  <Process Type="client" />
  <Process Type="data-server" />
  <Process Type="render-server">
   <Machine Name="rs_m1" /> 
   <Machine Name="rs_m2" />
  </Process>
</pvx>

The .pvx file is passed as a command-line argument to each executable being run for this ParaView session.

./pvdataserver "foo.pvx"
./pvrenderserver "foo.pvx"
./client "foo.pvx"

How do I specify cave parameters in ParaView 2.2 and later?

Cave parameter specification has been moved from a separate cave configuration file into the XML configuration file (*.pvx). The format for specifying cave parameters in the XML file is shown below. The parameters will be specified for the render server if you are using separate data and render servers; otherwise specify the cave parameters for the server. The "<Machine ..." lines are repeated for each machine involved in rendering in the cave (with the Name, Environment, LowerLeft, LowerRight, and UpperLeft entries changed to reflect the appropriate values for each machine).

<?xml version="1.0" ?>
<pvx>
  <Process Type="client" />
  <Process Type="server">
   <Machine Name="m1" 
            Environment="DISPLAY=m1:0"
            LowerLeft="-1.0 -1.0 -1.0"
            LowerRight="1.0 -1.0 -1.0"
            UpperLeft="-1.0  1.0 -1.0" /> 
  </Process>
</pvx>

The .pvx file is passed as a command-line argument to each executable being run for this ParaView session.

./pvserver "foo.pvx"
./pvclient "foo.pvx"