Remote Visualization Tool PBVR (v1.11)
User Guide

March 2019Japan Atomic Energy Agency
Center for Computational Science & e-Systems

Revision Record
Version

Date

Revised

Revised content

numberrevisedchapter

2015.3.31–

Release2015.5.18

5.2

Parameter file function is added on Server

5.4.2

File button is added on MainPanel

5.4.6

Particle data output function is added

5.4.2

CROP panel is enabled for Mac

5.4.3

Histogram function is added on Transfer Function

1.04

1.05

1.06a
2015.10.30

Editor5.4.5

Image file production function is updated (fileoutput directory, key frame animation)

1.07

2016.2.1

1.2

ICEX and VTK library are added to the platform
list

2

The

packageisupdated,includingserialversions, and PBVR Filter for VTK is added

3.4

Data formats and parameter files are extended,
including STL, PLOT3D, and VTK

4.2

A new command line option “-pd” is added,“-plimit” is modified, and “-sl” is removed

i

5.2

A new command line option “-pd” is added,“-plimit” is modified, “-sl” is removed, and “-pin” isextended up to “-pin10”

5.4.5

Particle panel is added

6.4

An example of particle integration is added2

The package is updated. Compilation and

1.071
2016.2.24

installation is changed.

5.4.2

Transfer Function Editor, Particle Panel, andAnimation Control Panel buttons are added toMain Panel.

1.09
2017.3.2

4.2

New command line options “-Bs”, “-Be”, and “-Bd”
are added.

4.2.1

A usage of command line option “-vin” isextended for multiple PFI files.

4.2.2

Added about processing of distributed files.

5.2-

Number of panels that opened when client
started is changed.

-

Command line option “-vin” is extended for
multiple PFI files.

ii

5.4.2-

The following three buttons are added on
MainPanel: “Transfer Function Editor”，“Particle
Panel”，and “Animation Control Panel”.

-

A checkbox “no-repeat sampling until Transfer
Functions be edited” is added on MainPanel.
The following three buttons are added on
MainPanel: “Legend Panel”, “Coordinate Panel”,
and “Viewer Control Panel”.

-

5.4.3

Display Particle Number is added.

“Transfer Function Editor” is activated from
MainPanel, and close button is added.

5.4.3.3

An action when NaN appears by the arithmetic
processing of function editor is added.

5.4.5“Particle panel” is activated from MainPanel, andclose button is added.

5.4.6“Animation Control Panel” is activated from
MainPanel, and close button is added.

5.4.7“Legend panel” is added.

5.4.8“Coordinate panel” is added.

5.4.9“Viewer Control panel” is added.

3

Delete “filter”

1.10
2017.3.15

Deletion by Integration of “Filter program” and“Server program”

3“IN/OUT files” are added.

iii

5.4.2“Main Panel” is changed.

5.4.3

Editor of “Transfer function” is changed.
“Function changes” and “GUI changes” by TFS
function expansion works

4.2

Launching Method: Program Arguments:“pin deletion”, “fin addition”
Changes by Integration of Filter program andserver program

5.2

Launching Method: Program Arguments:“pin deletion” and “fin addition”
Changes by Integration of filter program andserver program

6.1

Launching Program: Program arguments: “pindeletion” and “fin addition”
Changes by Integration of filter program andserver program

6.5

Batch mode processing: Program arguments:“pin deletion” and “fin addition”
Changes by Integration of filter program andserver program

1.11
3

Added description of PBVR Filter.

iv

Table of Contents
1

Introduction ................................................................................................................... 7
1.1 Overview....................................................................................................................... 7
1.2 System Requirements................................................................................................... 82

Installation ..................................................................................................................... 9
2.1 Installation of Prebuilt Binaries ...................................................................................... 9
2.1.1 PBVR Filter ............................................................................................................. 9
2.1.2 PBVR Server ........................................................................................................ 11
2.1.3 PBVR Client.......................................................................................................... 11
2.2 Installation from Source Code ..................................................................................... 122.2.1 Installation for Linux and Mac ............................................................................... 14
2.2.2 Installation for Windows ........................................................................................ 143

PBVR Filter................................................................................................................... 16
3.1 Overview..................................................................................................................... 16
3.2 Data Decomposition Model ......................................................................................... 16
3.3 Launching PBVR Filter................................................................................................ 18
3.3.1 Launching PBVR Filter with VTK Support ............................................................. 18
3.4 File Formats................................................................................................................ 19
3.4.1 Input Data Format ................................................................................................. 19
3.4.2 Endian .................................................................................................................. 20
3.4.3 Filter Output Information File (PFI)........................................................................ 21
3.4.4 SPLIT File Format................................................................................................. 23
3.4.5 Sub-volume Aggregate Format ............................................................................. 27
3.4.6 Step Aggregate Format ......................................................................................... 30
3.5 Parameter File ............................................................................................................ 34
3.5.1 PLOT3D Configuration File ................................................................................... 36
3.6 MPI Parallel Processing .............................................................................................. 36
3.7 Execution in Staging Environment of the K computer.................................................. 37
3.7.1 Execution Shell Script and Parameter File ............................................................ 38
3.7.2 Input and Output Files and Directories .................................................................. 39
3.8 Unstructured Grid Data with Mixed Elements.............................................................. 40

4

PBVR Server ................................................................................................................ 42
4.1 Overview..................................................................................................................... 42
4.2 Launching PBVR Server ............................................................................................. 42
4.2.1 Launching PBVR Server in Batch Mode ............................................................... 44v

4.2.2 Processing of Distributed Files.............................................................................. 44
4.2.3 Launching PBVR Server in Client–Server Mode ................................................... 45
4.2.4 Connecting Client and Server via Socket Communication .................................... 45
5

PBVR Client ................................................................................................................. 51
5.1 Overview..................................................................................................................... 51
5.2 Launching PBVR Client .............................................................................................. 51
5.3 Terminating PBVR....................................................................................................... 54
5.3.1 Standard Termination ............................................................................................ 54
5.3.2 Forced Termination ............................................................................................... 54
5.4 Using the PBVR Client GUI......................................................................................... 55
5.4.1 Viewer .................................................................................................................. 55
5.4.2 Main Panel............................................................................................................ 56
5.4.3 Transfer Function Editor........................................................................................ 62
5.4.4 Time Panel............................................................................................................ 76
5.4.5 Particle Panel ....................................................................................................... 77
5.4.6 Image File Production ........................................................................................... 80
5.4.7 Legend Panel ....................................................................................................... 85
5.4.8 Coordinate Panel .................................................................................................. 87
5.4.9 Viewer Control Panel ............................................................................................ 88

6

An Example with the Sample Dataset ........................................................................ 89
6.1 Filtering ....................................................................................................................... 89
6.2 Starting PBVR............................................................................................................. 89
6.3 Designing Transfer Functions ..................................................................................... 91
6.3.1 Volume Rendering for a Single Parameter ............................................................ 91
6.3.2 Multivariate Volume Rendering ............................................................................. 92
6.3.3 Slicing Volumes .................................................................................................... 93
6.3.4 Synthesis of Transfer Functions ............................................................................ 94
6.4 Integration of Particle Datasets ................................................................................... 95
6.4.1 Save Particle Datasets.......................................................................................... 95
6.4.2 Load Particle Datasets.......................................................................................... 96
6.5 Saving Results ............................................................................................................ 98
6.6 Batch Mode Example .................................................................................................. 98vi

1 Introduction
1.1 Overview
This document is a user guide for Particle-Based Volume Rendering (PBVR), a remotevisualization system developed at the Center for Computational Science & e-Systems by theJapan Atomic Energy Agency. PBVR provides high-speed remote visualization of data forlarge volumes by using the KVS library and by employing the particle-based rendering
algorithm from the Koyamada Visualization Laboratory, Kyoto University. PBVR consists ofthe following three components:
1)

PBVR Filter reads data for volume and divides it into sub-volumes, each of which is aunit processed in the parallel visualization.

2)

PBVR Server receives the sub-volumes and applies the parallel visualization using
PBVR’s particle generation method.

3)

PBVR Client renders the particle data as images using Open GL.

Two types of PBVR Server are available: (1) one visualizes filtered data in parallel forlarge-scale visualizations and (2) the other is a version without filters for small- andmedium-scale visualizations.
t=nVolumeData

Server Machine

Windows / Linux / Mac
Client Machine

t=1
VolumeData

SocketRendering(OpenGL)

Master Nodet=0
VolumeData

t=0 Subvolume0
VBO Data

Slave Nodes	

PBVR
Client

SSH Tunnel

t=0 Subvolume0
Particle
Data

PBVR
Servert=0
Subvolume0t=0
Subvolume1

Figure 1.1-1. PBVR system configuration

7

PBVR
Filter1.2 System Requirements
The system has been verified for the following platforms and compilers:● PBVR Filter
Platform

Compiler

LibraryLinux 64 bit

gcc version 4.4.6

VTK *4

Mac 64 bit *2

gcc version 4.8.2

VTK *4

Windows 64 bit *3

Visual Studio 2013

VTK *4ICEXIntel Compiler 15.0.3–

Platform

Compiler

LibraryLinux 64 bit

g++ version 4.4.6

KMATH_RANDOM, NTL *1

Mac 64 bit *2

g++ version 4.8.2–

Windows 64 bit *3

Visual Studio 2013

Visual C++ runtime component

ICEX

Intel Compiler 15.0.3

KMATH_RANDOM, NTL *1

Compiler

Library● PBVR Server● PBVR Client
Platform
Linux 64 bit

OpenGL, GLUT
g++ version 4.4.6

Mac 64 bit *2
g++ version 4.8.2

OpenGL, GLUT

Windows 64 bit *3

OpenGL,

GLUT,

VisualC++

runtime component

Visual Studio 2013

*1. KMATH_RANDOM is a high-performance pseudorandom number generator librarydeveloped at RIKEN Advanced Institute for Computational Science. KMATH_RANDOM
also requires the NTL library.
*2. The current version was verified on Mojave on Macs. OpenMP is not available for thedefault gcc that is shipped with Xcode. To use the load modules or to compile the source
code, install a newer version of gcc that works with OpenMP. The prebuilt binaries werecompiled with gcc48 installed through MacPorts. To obtain this gcc version, run thefollowing commands with root privilege in the terminal:# port install gcc48# port select –set gcc mp-gcc48*3. The current version was verified on Windows 7, 8.1, and 10. The Visual C++ runtime
component is needed on Windows without Visual Studio 2013.
*4. VTK6.0 or later is needed for compiling PBVR Filter or Server for VTK data.
82 Installation
PBVR consists of a load module package and a source code package. The following sections
show how to install each package.

2.1 Installation of Prebuilt Binaries
2.1.1 PBVR Filter
PBVR Filter is implemented in C and is shipped in two versions: (1) an MPI+OpenMP version
for massively parallel computing and (2) an OpenMP version for thread parallel computing.
The following table lists the load modules of the load module package. Choose the relevantload modules and copy them to a directory that is specified in the PATH environment
parameter. When the copying finishes, the installation is complete.
Table 2.1-1. List of load modules for PBVR Filter
Platform

Parallelization

Name of load module *2

Linux 64 bit

Serialpbvr_filter_linux

OpenMP

pbvr_filter_linux_omp

MPI+OpenMP

pbvr_filter_linux_mpi_omp

Serialpbvr_filter_mac

OpenMP

pbvr_filter_mac_omp

Serialpbvr_filter.exe

OpenMP

pbvr_filter_omp.exe

OpenMP

pbvr_filter_icex_omp

MPI+OpenMP

pbvr_filter_icex_mpi_omp

Mac 64 bit
Windows 64 bit
ICEX *1*1.

The load modules for supercomputers are used only in computing nodes. Therefore, forlogin nodes and post-processing nodes with Linux, use the load modules built for Linux.

*2.

Load modules supporting the VTK format have suffix “_vtk”. The VTK library is needed tocompile them.

2.1.1.1 Installation of PBVR Filter for VTK data
VTK6.0 or later is required to compile and install PBVR Filter for VTK data. Refer to the VTK
website (http://www.vtk.org/) for how to install the VTK library. In the installation, do thefollowing in CMake-gui:1) Turn on the BUILD_SHARED_LIBS option.
2) Choose “Release” for the CMAKE_BUILD_TYPE option.
3) Set the VTK installation directory to CMAKE_INSTALL_PREFIX.

On each environment, PBVR Filter is compiled as follows.

9Installation for Linux and Mac
Execute the following compilation commands:$ export VTK_VERSION=n.n$ export VTK_LIB_PATH=/usr/local/lib$ export VTK_INCLUDE_PATH=/usr/local/include/vtk-n.n$ make -f makefile.linux vtk

Here, n.n denotes the version of the VTK library. Each path should be modified depending on
the VTK installation directory.
Installation for Windows
Set the following environment parameters using Control Panel > System > Property >Environment.
Parameter

Value

VTK_LIB

d:\environments\VTK\lib

VTK_VERSIONn.n

VTK_INCLUDE_PATH

d:\environments\VTK\include\vtk-n.n

Here, n.n denotes the version of the VTK library. Each path should be modified depending on
the VTK installation directory.

10

2.1.2 PBVR Server
PBVR Server is implemented in C++ and is shipped in three versions: (1) a serial processing
version, (2) an OpenMP version for thread parallel computing, and (3) an MPI+OpenMP
version for massively parallel computing. Each load module has a filtered and an unfilteredversion. The unfiltered version supports VTK. The following table lists the load modules of theload module package. Choose the relevant load modules and copy them to a directory that is
specified in the PATH environment parameter. When the copying finishes, the installation iscomplete.
Table 2.1-2. List of load modules for PBVR Server
Platform

Parallelization

Name of load module *2

Linux 64 bit

Serialpbvr_server_linux

OpenMP

pbvr_server_linux_omp

MPI+OpenMP

pbvr_server_linux_mpi_omp

Serialpbvr_server_mac

OpenMP

pbvr_server_mac_omp

Serialpbvr_server.exe

OpenMP

pbvr_server_omp.exe

OpenMP

pbvr_server_icex_omp

MPI+OpenMP

pbvr_server_icex_mpi_omp

Mac 64 bit
Windows 64 bit
ICEX *1*1. The load modules for supercomputers are used only in computing nodes. Therefore, if
the login nodes and the post-processing nodes are on Linux servers, use the load
modules that are compiled for Linux.
*2. Load modules supporting the VTK format have suffix _vtk. The VTK library is needed tocompile them.

2.1.3 PBVR Client
PBVR Client is implemented in C++ and uses OpenGL. The following table lists the load
modules stored in the client directory of the load module package. Choose the relevant load
modules and copy them to a directory that is specified in the PATH environment parameter.
Table 2.1-3. List of load modules for PBVR Client
Platform

Parallelization

Name of load module

Linux 64 bit

pthreadpbvr_client_linux

Mac 64 bit

pthreadpbvr_client _mac

Windows 64 bit *1

pthreadpbvr_client.exe*1. For the Windows version, also copy glut32.dll to the destination directory.

11

2.2 Installation from Source CodeUncompress the source code package to an arbitrary directory and compile it using pbvr.conf
and Makefile in directory PBVR/. pbvr.conf specifies the settings for making and compiling
PBVR Filter, PBVR Server, and PBVR Client. The source code package is as follows.
Table 2.2-1. Components of the source code package
Directory・File

DetailPBVR/

KMATH/

Pseudorandom number generator library KMATH

KVS/Visualization library KVS

glui/

Widget library for GUI

FunctionParser/

Function editor library

Common/Common library for protocols, communications, andother things

Filter/PBVR Filter programsServer/PBVR Server programs

Client/PBVR Client programsarch/Compilation files

pbvr.conf *1

Configuration file

Makefile *1

Make file for directory PBVR/*1. In Windows, the Visual Studio solution file pbvr.sln is used instead of pbvr.conf and
Makefile.
The parameters in pbvr.conf (Table 2.2-2) are used to specify which functions are installed.
12

Table 2.2-2. List of parameters in pbvr.conf
Parameter

Value

DetailPBVR_MACHINE

StringCompilation files under arch/

PBVR_MAKE_FILTER

0 or 1

Select 1 for PBVR Filter

PBVR_MAKE_CLIENT

0 or 1

Select 1 for PBVR Client

PBVR_MAKE_SERVER

0 or 1

Select 1 for PBVR Server

PBVR_SUPPORT_KMATH

0 or 1

Select 1 for KMATH (Server only) *1

PBVR_SUPPORT_VTK

0 or 1

Select 1 for PBVR VTK (Filter only)*1. In Windows and Mac, KMATH is unavailable so TynyMT is used.
For PBVR_MACHINE, specify the compilation file in directory arch/ from those listed in thefollowing table.
Table 2.2-3. List of compilation files
Filename

Use

Makefile_machine_gcc

Serial compilation using gcc

Makefile_machine_gcc_omp

OpenMP compilation using gcc

Makefile_machine_gcc_mpi_omp

MPI+OpenMP compilation using gcc

Makefile_machine_intel

Serial compilation using intel

Makefile_machine_intel_omp

OpenMP compilation using intel

Makefile_machine_intel_mpi_omp

MPI+OpenMP compilation using intel

Makefile_machine_fujitsu

Serial compilation using fujitsu

Makefile_machine_fujitsu_omp

OpenMP compilation using fujitsu

Makefile_machine_fujitsu_mpi_omp

MPI+OpenMP compilation using fujitsu

Makefile_machine_icex

Serial compilation using icex

Makefile_machine_icex_omp

OpenMP compilation using icex

Makefile_machine_icex_mpi_omp

MPI+OpenMP compilation using icex

The following list shows the environments supported by the compilation files.
Table 2.2-4. List of supported environments
Environments

File nameLinux Mac

ICEX

Makefile_machine_gcc

◎

◎

-

Makefile_machine_gcc_omp

◎

◎

-

Makefile_machine_gcc_mpi_omp

◎

-

-

Makefile_machine_intel

○

-

-

Makefile_machine_intel_omp

○

-

-

13

Makefile_machine_intel_mpi_omp

○

-

-

Makefile_machine_fujitsu

-

-

-

Makefile_machine_fujitsu_omp

-

-

-

Makefile_machine_fujitsu_mpi_omp

-

-

-

Makefile_machine_icex

-

-

○

Makefile_machine_icex_omp

-

-

○

Makefile_machine_icex_mpi_omp

-

-

○

*1. ◎ is for PBVR Filter, Server, and Client. ○ is for PBVR Filter and Server.
*2. Use an interactive job in client–server mode on ICEX.

2.2.1 Installation for Linux and Mac
On a Linux or Mac system, build the source code and install it as follows:
1)

Edit pbvr.conf in directory PBVR/ depending on your environment.
The following example shows the parameters for building OpenMP versions of PBVRClient, PBVR Filter, and PBVR Server using gcc compiler.

Example of pbvr.conf:
PBVR_MACHINE=Makefile_machine_gcc_omp
PBVR_MAKE_CLIENT=1
PBVR_MAKE_FILTER=1
PBVR_MAKE_SERVER=1
PBVR_SUPPORT_KMATH=02)

Compile in directory PBVR/ as follows:$make
The following load modules are generated in directory PBVR/:

3)PBVR Filter:

Filter/pbvr_filter

PBVR Server:

Server/pbvr_server

PBVR Client:

Client/pbvr_client

Copy the generated load modules to an arbitrary directory that is specified in the PATH
environment parameter.

2.2.2 Installation for Windows
In Windows, uncompress the source code package and build the source code as follows:1)

Install GLUT
14

i)

Download glut-3.7.6-bin_x64.zip(64bit) from:http://ktm11.eng.shizuoka.ac.jp/lesson/modeling.html

ii)

Extract the following files:
glut.hglut32.lib
glut32.dll

2)Extract server on a Windows machine that has Visual Studio 2013.

3)

Open pbvr.sln with Visual Studio 2013.

4)

Choose Release and x64 from the pull-down list, as shown in Figure 2.2-1.

Figure 2.2-1. Build configuration for Visual Studio 20135)

Go to the menu Build > Build Solution.

The load modules pbvr_filter.exe, pbvr_server.exe, and pbvr_client.exe are created under\\x64\Release.

15

3 PBVR Filter
3.1 Overview
PBVR Filter is an independent part of the PBVR system. PBVR Filter divides time-series
volume data, which then become the input for parallel processing in PBVR Server. In addition,
PBVR Filter generates sub-volume data for visualization. The data decomposition is based on
the octree model. PBVR Filter divides structured and unstructured grid data intouser-specified octree regions to generate the input files for PBVR Server.

3.2 Data Decomposition ModelAs shown in Figure 3.2-1, the octree data structure divides each edge of a cuboid in half,recursively. Therefore, each cuboid has eight child cuboids, each of which has a single parent.

Figure 3.2-1. Space partitioning with the octree data structure

As shown in Figure 3.2-, the boundaries of the child cuboids are computed by dividing thesum of the minimum and maximum coordinates by two. Given a point in the domain, which16cuboid contains the point can be determined by comparing the coordinates of the vertex andthe boundaries.

Figure 3.2-2. Coordinates of the boundaries in the octree data structure.

17

3.3 Launching PBVR Filter
The following examples show how to launch PBVR Filter. Note that PBVR Filter requires
parameters that are specified in a parameter file. The name of the parameter file is specified
in the command line when launching PBVR Filter. If no parameter file name is given or a
non-existent file name is provided, the execution of PBVR Filter will fail.
Examples:Launch the MPI+OpenMP version of PBVR Filter with N processes:$ mpiexec –n N filter param.txt
Launch the OpenMP version:$ filter param.txt
In both cases, the number of OpenMP threads is set in the environment parameter
OMP_NUM_THREADS.

3.3.1 Launching PBVR Filter with VTK Support
Depending on your environment, an environment parameter needs to be set to launch PBVR
Filter with VTK support.
Installation for Linux
Set the following parameter:$ export LD_LIBRARY_PATH=${VTK_LIB_PATH}:$LD_LIBRARY_PATH

Installation for Mac
Set the following parameter:$ export DYLD_LIBRARY_PATH=${VTK_LIB_PATH}:$DYLD_LIBRARY_PATH
Each path should be modified depending on the VTK installation directory.

Installation for Windows
Set the following environment parameters using Control panel > System > Property >Environment:
Parameter

Value

Path

d:\Program\VTK6.3.0\bin

The path should be the bin directory under the VTK installation directory.
18

3.4 File Formats
This section describes the file formats that are read or written by PBVR Filter. All binary data
in input and output files are single precision, without a header or footer, and in little endian
format. The following three file formats are available: (1) the split format (which actually makeuse of kvsml format), (2) the sub-volume aggregate format, and (3) the step aggregate format(Figure 3.4-1). The split format generates independent files for each time step for each
sub-volume. However, in this format, the number of files grows exponentially as the number oflayers in the octree increases. This problem can be avoided by using either of the other two
file formats. The sub-volume aggregate format aggregates files over different time steps (butfor the same sub-volume) to a single file. Conversely, the step aggregate format aggregatesfiles over different sub-volumes (for the same time step) to a single file. The following sections
explain these three file formats in detail.

Figure 3.4-1. Output file formats available for PBVR Filter

3.4.1 Input Data Format
PBVR Filter can process the following data formats as input:
1)

AVSFLD binary data *1

2)

AVSUCD ascii and binary data *1

3)

STL binary data *2

4)

PLOT3D binary data *3

5)

VTK Legacy binary data

*4

*1. Details of AVS data formats can be found in the AVS manual or at

http://www.cybernet.co.jp/avs/products/avsexpress/dataformat.html. AVSUCD binary
data in “data” format can be used. However, the geom and the data_geom formats are
not supported. 2D and 3D elements and their mixed elements are supported.
*2. Details of STL data formats can be found at https://en.wikipedia.org/wiki/STL_(file_format).
*3. Details of PLOT3D data formats can be found at http://ntrs.nasa.gov/archive/nasa/casi.ntrs.nasa.gov/19900013774.pdf.
19

*4. Details of VTK data formats can be found at http://www.vtk.org/. PBVR Filter canprocess VTK structured points, VTK structured grids, VTK rectilinear grids, VTK
unstructured grids, and VTK polygonal data.

3.4.2 Endian
The binary files used in PBVR Filter are in little endian format. Conversion is necessary on a
big endian machine if the input data files are not already in little endian format.

20

3.4.3 Filter Output Information File (PFI)A PFI file is a binary data file that summarizes information about an input volume. It contains
the following data:
Total number of nodes (int)
Total number of elements (int)Element type (int) *1
File type (int) *2
Number of files (int) *3
Number of components (int)First time step (int)
Last time step (int)
Number of sub-volumes (int) *4
Minimum X-coordinate of the entire 3D space (float)
Minimum Y-coordinate of the entire 3D space (float)
Minimum Z-coordinate of the entire 3D space (float)
Maximum X-coordinate of the entire 3D space (float)
Maximum Y-coordinate of the entire 3D space (float)
Maximum Z-coordinate of the entire 3D space (float)
Number of nodes in sub-volume 1 (int)
Number of nodes in sub-volume 2 (int)
Number of nodes in sub-volume 3 (int)…
Number of nodes in sub-volume n (int)
Number of elements in sub-volume 1 (int)
Number of elements in sub-volume 2 (int)
Number of elements in sub-volume 3 (int)…
Number of elements in sub-volume n (int)Minimum X-coordinate of sub-volume 1 (float)
Minimum Y-coordinate of sub-volume 1 (float)
Minimum Z-coordinate of sub-volume 1 (float)
Maximum X-coordinate of sub-volume 1 (float)
Maximum Y-coordinate of sub-volume 1 (float)
Maximum Z-coordinate of sub-volume 1 (float)
Minimum X-coordinate of sub-volume 2 (float)
Minimum Y-coordinate of sub-volume 2 (float)
Minimum Z-coordinate of sub-volume 2 (float)
Maximum X-coordinate of sub-volume 2 (float)
Maximum Y-coordinate of sub-volume 2 (float)
Maximum Z-coordinate of sub-volume 2 (float)…
Minimum X-coordinate of sub-volume n (float)
Minimum Y-coordinate of sub-volume n (float)
21

Minimum Z-coordinate of sub-volume n (float)
Maximum X-coordinate of sub-volume n (float)
Maximum Y-coordinate of sub-volume n (float)
Maximum Z-coordinate of sub-volume n (float)
Minimum value of parameter 1 for time step 1
Maximum value of parameter 1 for time step 1
Minimum value of parameter 2 for time step 1
Maximum value of parameter 2 for time step 1…
Minimum value of parameter N for time step 1
Maximum value of parameter N for time step 1…
Minimum value of parameter 1 for time step m
Maximum value of parameter 1 for time step m
Minimum value of parameter 2 for time step m
Maximum value of parameter 2 for time step m…
Minimum value of parameter N for time step m
Maximum value of parameter N for time step m*1. Element types are defined in Table 3.8-1.
*2. Set the int value to 0, 1, or 2 to specify one of the following file formats:
0: split format
1: sub-volume aggregate format
2: step aggregate format*3. The number of files used when the input file format is sub-volume aggregate format.
*4. The number of sub-volumes is 8n_layer, for example:
n_layer = 0:1n_layer = 1:8n_layer = 2:64n_layer = 3:

512n_layer = 4:

4,096

n_layer = 5:

32,768n_layer = 6:

262,144n_layer = 7:

2,097,15222

3.4.4 Split File Format
In addition to the data files, when the split file format is used, two files are produced for each
sub-volume. The first is the element configuration file and it describes which nodes are ineach cell. The second is the node coordinate file and it specifies the coordinates of the nodes.
Moreover, there is a parameter file for each sub-volume for each time step. This file assigns
the parameters (physical quantities) to each node. All three types of files are in kvsml format.
Thus, the total number of files is
Number of sub-volumes × 2 + Number of sub-volumes × Number of time steps × 2.

Example:If n_layer is 7 and the number of time steps is 100, then the total number of files is423,624,704.

3.4.4.1 File Naming Convention
In PBVR, files in the split format have the following naming convention.

prefix_XXXXX_YYYYYYY_ZZZZZZZ.kvsml

kvsml file (ASCII format)

prefix_YYYYYYY_ZZZZZZZ_connect.dat

element configuration file (binary
format)prefix_YYYYYYY_ZZZZZZZ_coord.dat

node coordinate file (binary format)

prefix_XXXXX_YYYYYYY_ZZZZZZZ_value.dat

parameter file (binary format)

Here, prefix, XXXXX, YYYYYYY, and ZZZZZZZ should be replaced with the following strings:
prefixArbitrary string of characters allowed in a file name

XXXXX

Number of steps (5 digits)

YYYYYYY

Sub-volume index (7 digits)ZZZZZZZ

Total number of sub-volumes (7 digits)23

3.4.4.2 kvsml File Format<?xml version="1.0" ?><KVSML><Object type="UnstructuredVolumeObject"><UnstructuredVolumeObject cell_type=" type of elements"><Node nnodes="number of nodes in the sub-volume"><Value veclen="number of variables"><DataArray type="float" file="prefix_XXXXX_YYYYYYY_ZZZZZZZ_value.dat" format="binary" /></Value><Coord><DataArray type="float" file=" prefix_YYYYYYY_ZZZZZZZ_coord.dat" format="binary" /></Coord></Node><Cell ncells="number of elements in the sub-volume"><Connection><DataArray type="uint"

file=" prefix_YYYYYYY_ZZZZZZZ_connect.dat" format="binary" /></Connection></Cell></UnstructuredVolumeObject></Object></KVSML>24

3.4.4.3 Format of Element Configuration File
Node 1 of element 1
Node 2 of element 1…
Node n of element 1
Node 1 of element 2
Node 2 of element 2…
Node n of element 2
Node 1 of element 3
Node 2 of element 3…
Node n of element 3…
Node 1 of element N
Node 2 of element N…
Node n of element N

3.4.4.4 Format of Node Coordinate File
X-coordinate of node 1
Y-coordinate of node 1
Z-coordinate of node 1
X-coordinate of node 2
Y-coordinate of node 2
Z-coordinate of node 2
X-coordinate of node 3
Y-coordinate of node 3
Z-coordinate of node 3…
X-coordinate of node m
Y-coordinate of node m
Z-coordinate of node m

25

3.4.4.5 Parameter File
Parameter 1 of node 1
Parameter 1 of node 2
Parameter 1 of node 3…
Parameter 1 of node nParameter 2 of node 1
Parameter 2 of node 2
Parameter 2 of node 3…
Parameter 1 of node nParameter m of node 1
Parameter m of node 2
Parameter m of node 3…
Parameter m of node n

26

3.4.5 Sub-volume Aggregate Format
In sub-volume aggregate format, information on element configurations, node coordinates,and parameters for all time steps are gathered into a single file for each sub-volume. By
specifying the number of files (as explained in Section 4.2.2), one can aggregate information
for several sub-volumes into an arbitrary number of files from 1 to the number of sub-volumes.
(If n_layer is 7, then the number of files is 2,097,152.)

3.4.5.1 Naming Convention
In PBVR, files in sub-volume aggregate format have the following naming convention:prefix_YYYYYYY_ZZZZZZZ.dat(binary format)

Here, prefix, XXXXX, YYYYYYY, and ZZZZZZZ should be replaced with the following strings:
prefixArbitrary string of characters allowed in a file nameYYYYYYY

File number (7 digits)ZZZZZZZ

Total number of files (7 digits)27

3.4.5.2 File Format
Index of first sub-volume
Index of last sub-volume
Node 1 of element 1
Node 2 of element 1…
Node n of element 1…
Node 1 of element N
Node 2 of element N…
Node n of element N
X-coordinate of node 1
Y-coordinate of node 1
Z-coordinate of node 1…
X-coordinate of node m
Y-coordinate of node m
Z-coordinate of node m
…
…
…
…
…
…
…
Node 1 of element 1
Node 2 of element 1…
Node n of element 1…
Node 1 of element N
Node 2 of element N…
Node n of element N
X-coordinate of node 1
Y-coordinate of node 1
Z-coordinate of node 1…
X-coordinate of node m - 1
Y-coordinate of node m - 1
Z-coordinate of node m - 1
X-coordinate of node m
Y-coordinate of node m
Z-coordinate of node m

Sub-volume information

Element
configuration

Sub-volume 1

Nodecoordinate

Sub-volume n28

Parameter 1 of node 1 for time step 1
Parameter 1 of node 2 for time step 1…
Parameter 1 of node n for time step 1…
Parameter m of node 1 for time step 1
Parameter m of node 2 for time step 1…
Parameter m of node n for time step 1…
…
Parameter 1 of node 1 for time step 2
Parameter 1 of node 2 for time step 2…
Parameter 1 of node n for time step 2…
Parameter m of node 1 for time step 2
Parameter m of node 2 for time step 2…
Parameter m of node n for time step 2…
…
…
…
Parameter 1 of node 1 for time step N
Parameter 1 of node 2 for time step N…
Parameter 1 of node n for time step N…
Parameter m of node 1 for time step N
Parameter m of node 2 for time step N…
Parameter m of node n for time step N…
…
Parameter 1 of node 1 for time step N
Parameter 1 of node 2 for time step N…
Parameter 1 of node n for time step N…
Parameter m of node 1 for time step N
Parameter m of node 2 for time step N…
Parameter m of node n for time step N

Sub-volume unit

Step unit

Sub-volume unit

Sub-volume unit

Step unit

Sub-volume unit29

3.4.6 Step Aggregate Format
In step aggregate format, there is an element configuration file and a node coordinate file.
These two files contain information on all sub-volumes. A parameter file is produced for eachstep. Therefore, the total number of files is the number of steps + 2.

3.4.6.1 File Naming Convention
In PBVR, files in step aggregate format have the following naming convention:prefix_connect.dat

element configuration file (binary format)

prefix_coord.dat

node coordinate file (binary format)

prefix_XXXXX_value.dat

parameter file (binary format)

Here, prefix and XXXXX should be replaced with the following strings:
prefixArbitrary string of characters allowed in a file name

XXXXX

Number of steps (5 digits)30

3.4.6.2 Element Configuration File Format
Node 1 of element 1 for sub-volume 1
Node 2 of element 1 for sub-volume 1…
Node n of element 1 for sub-volume 1
Node 1 of element 2 for sub-volume 1
Node 2 of element 2 for sub-volume 1…
Node n of element 2 for sub-volume 1
Node 1 of element 3 for sub-volume 1
Node 2 of element 3 for sub-volume 1…
Node n of element 3 for sub-volume 1…
Node 1 of element N for sub-volume 1
Node 2 of element N for sub-volume 1…
Node n of element N for sub-volume 1…
Node 1 of element 1 for sub-volume M
Node 2 of element 1 for sub-volume M…
Node n of element 1 for sub-volume M
Node 1 of element 2 for sub-volume M
Node 2 of element 2 for sub-volume M…
Node n of element 2 for sub-volume M
Node 1 of element 3 for sub-volume M
Node 2 of element 3 for sub-volume M…
Node n of element 3 for sub-volume M…
Node 1 of element N for sub-volume M
Node 2 of element N for sub-volume M…
Node n of element N for sub-volume M

Element
unit

Sub-volume
unit

31

3.4.6.1 Node Coordinate File Format
X-coordinate of node 1 for sub-volume 1
Y-coordinate of node 1 for sub-volume 1
Z-coordinate of node 1 for sub-volume 1
X-coordinate of node 2 for sub-volume 1
Y-coordinate of node 2 for sub-volume 1
Z-coordinate of node 2 for sub-volume 1
X-coordinate of node 3 for sub-volume 1
Y-coordinate of node 3 for sub-volume 1
Z-coordinate of node 3 for sub-volume 1…
…
X-coordinate of node m for sub-volume 1
Y-coordinate of node m for sub-volume 1
Z-coordinate of node m for sub-volume 1…
…
…
X-coordinate of node 1 for sub-volume M
Y-coordinate of node 1 for sub-volume M
Z-coordinate of node 1 for sub-volume M
X-coordinate of node 2 for sub-volume M
Y-coordinate of node 2 for sub-volume M
Z-coordinate of node 2 for sub-volume M
X-coordinate of node 3 for sub-volume M
Y-coordinate of node 3 for sub-volume M
Z-coordinate of node 3 for sub-volume M…
…
X-coordinate of node m for sub-volume M
Y-coordinate of node m for sub-volume M
Z-coordinate of node m for sub-volume M

Node unit

Sub-volume unit32

3.4.6.2 Parameter File Format
Parameter 1 of node 1 for sub-volume 1
Parameter 1 of node 2 for sub-volume 1
Parameter 1 of node 3 for sub-volume 1…
Parameter 1 of node n for sub-volume 1
Parameter 2 of node 1 for sub-volume 1
Parameter 2 of node 2 for sub-volume 1
Parameter 2 of node 3 for sub-volume 1…
Parameter 2 of node n for sub-volume 1
Parameter m of node 1 for sub-volume 1
Parameter m of node 2 for sub-volume 1
Parameter m of node 3 for sub-volume 1…
Parameter m of node n for sub-volume 1…
…
…
Parameter 1 of node 1 for sub-volume M
Parameter 1 of node 2 for sub-volume M
Parameter 1 of node 3 for sub-volume M…
Parameter 1 of node n for sub-volume M
Parameter 2 of node 1 for sub-volume M
Parameter 2 of node 2 for sub-volume M
Parameter 2 of node 3 for sub-volume M…
Parameter 2 of node n for sub-volume M
Parameter m of node 1 for sub-volume M
Parameter m of node 2 for sub-volume M
Parameter m of node 3 for sub-volume M…
Parameter m of node n for sub-volume M

Parameterunit

Sub-volume unit33

3.5 Parameter File
The parameter file is in ASCII format. It is used in PBVR Filter for AVSFLD/UCD, PLOT3D,
STL, and VTK data. The name of the parameter file is specified on the command line whenrunning PBVR Filter. Table 3.5-1 lists the parameters.
Table 3.5-1. List of PBVR Filter input parameters
Parameter nameParameter detailDefault

Notes

value
in_dirInput file directory.

Directory path for input files *1

field_file

AVSFLD file name–*2, *3, *4

stl_binary_file

STL file name–*2

Plot3d_config_file

PLOT3D configuration –*2, *3

file name
vtk_file

VTK file name–*2, *3, *5

vtk_in_prefix

Prefix of time series –*2, *3, *5

VTK data files
vtk_in_suffix

Suffix of time series –*2, *3, *5

VTK data files
ucd_inp

AVSUCD file name–ASCII format *2

in_prefix

Prefix of time series –Binary format *2

AVSUCD data files
in_sufix

Suffix of time series –Binary format *2

AVSUCD data files
FormatStep number format “%05d”
for time series data

out_dir

Output file directory.

Directory path of output files*1

out_prefix

Output file prefix

output.

start_step

Starting step number

1*6

end_step

Ending step number

1*6

n_layerNumberofoctree 0

An integer from 0 to 7

layer
output_type

File format

0

0: split format
1: sub-volume aggregate
2: step aggregate

34

file_number

Number of output files

0

An integer greater than orequal to 0. If 0, the number of
output files is the number ofsub-volumes. Valid only in
sub-volume aggregate fileformat.

mpi_volume_div

MPI parallelism in1each sub-volume

The total number of MPI
processes is given by
mpi_volume_div ×
mpi_step_div *7

mpi_step_div

MPI parallelism in1each time step

The total number of MPI
processes is given by
mpi_volume_div ×
mpi_step_div *7

mpi_div

Configuration of 2D2

0: defined by mpi_volume_div

MPI paralleland mpi_step_div.

processing

1: automatic with priority for
sub-volume decomposition
2: automatic with priority forstep decomposition.
Options 1 and 2 are not used
when either mpi_volume_div or
mpi_step_div are set.

multi_elem_type

temp_delete

Flag to indicate if

0

0: data with a single element

there are mixed

type

element types in an

1: data with multiple element

unstructured gridtypes

Flag to indicate what1

happens to temporary

0: keep temporary files
1: delete temporary filefiles produced whenprocessing mixed
element data
*1. Directories can be specified either with an absolute path or a relative path, although tilde(~) cannot be used as an abbreviation for the home directory.
*2. Oneofthefollowing:

field_file,

stl_binary_file,plot3d_config_file,

vtk_file,

vtk_in_prefix(suffix), ucd_inp, or in_prefix(suffix).
*3. When the input data are 2D or 3D structured grid data, the output data are converted to
unstructured grid data with linear quadrilateral or hexahedral elements, respectively.
35

*4. The file can refer only to the parameters: nstep, ndim, dim1, dim2, dim3, veclen, coord[123], and variable.
*5. Five VTK Legacy data formats (VTK structured points, VTK structured grid, VTK
rectilinear grid, VTK unstructured grid, and VTK polygonal data) are automaticallyrecognized by PBVR Filter.
*6. Valid only for time series data.
*7. When

mpi_volume_div

and

mpi_step_div

arespecified,

an

error

occursif

mpi_volume_div × mpi_step_div is not identical to the number of processes.

3.5.1 PLOT3D Configuration File
PLOT3D data formats are described by a PLOT3D configuration file. Here, usebytecountshould be set to 1 for Fortran and 0 for C binary data.
Parameter name

Use

Default value

coordinate_file_prefix

Prefix of coordinate file–coordinate_file_suffix

Suffix of coordinate file–coordinate_mode_precision

Precision (float or double)

doublecoordinate_mode_usebytecount

1 for true, 0 for false

truecoordinate_mode_endian

Endian (little or big)

littlecoordinate_mode_iblanks

1 for true, 0 for false

false

solution_file_prefix

Prefix of solution file–solution_file_suffix

Suffix of solution file–solution_mode_precision

Precision (float or double)

doublesolution_mode_usebytecount

1 for true, 0 for false

truesolution_mode_endian

Endian (little or big)

littlefunction_file_prefix

Prefix of function file–

function_file_suffix

Suffix of function file–

function_mode_precision

Precision (float or double)

doublefunction_mode_usebytecount

1 for true, 0 for false

truefunction_mode_endian

Endian (little or big)

little

3.6 MPI Parallel Processing
This section describes how the computation is divided in MPI parallel processing. As an
example, consider processing data with 50 time steps and 8 sub-volumes.
1)

Partitioning the set of time steps firstl If the number of processes is equal to or less than the number of time steps, divide
the number of time steps by the number of processes.
36

Example:If there are 8 processes, each process treats 6 time steps × 8 sub-volumes or 7
time steps × 8 sub-volumes.
l If the number of processes is larger than the number of time steps, each process
handles the data for only a single time step. The number of sub-volumes for eachprocess is specified in the following manner. First, allocate the same number ofprocesses to each time step, and then divide the number of sub-volumes by thisnumber of processes.
Example:If 128 processes are used, each time step is handled by floor(128/50) = 2 processes, sothat only 100 processes are used in total. Thus, each process handles 4 sub-volumes.
2)

Partitioning the set of sub-volumes firstl If the number of processes is equal to or less than the number of sub-volumes,
divide the number of sub-volumes by the number of processes.
Example:If 8 processes are used, each process treats 50 steps × 1 sub-volume.
l When the number of processes is larger than the number of sub-volumes, eachprocess handles the data for only a single sub-volume. The number of time steps foreach process is specified in the following manner. First, allocate the same number ofprocesses to each sub-volume, and then divide the number of time steps by thisnumber of processes.
Example:If 128 processes are used, then 16 processes are used for each sub-volume, giving
8 × 16 = 128 processes (with a residue of 0 processes), and each process treats 3times steps × 1 sub-volume or 2 time steps × 1 sub-volume.

3)

Employing a parallelization that is more complex
l If the parallel parameters mpi_volume_div and mpi_step_div are both specified, anerror occurs if mpi_volume_div × mpi_step_div is not equal to the number ofprocesses.

3.7 Execution in the Staging Environment of the K computerThis section describes how to execute PBVR Filter in the staging environment of the K
computer. When launching PBVR Filter, the parameter file and staging parameters must be
consistent with each other. Depending on the output format of PBVR Filter, multiple processes
can write to a single file. In this case, the output location should be a shared domain on thelocal file system that is accessible to all processes.

37

3.7.1 Execution Shell Script and Parameter File#!/bin/bash -x##PJM --rsc-list "elapse=01:00:00"#PJM --rsc-list "node=64"#PJM --rsc-list "rscgrp=small"#PJM --stg-transfiles all#PJM --mpi "proc=64"#PJM --mpi "use-rankdir"#Use rank directory#PJM --stgin"rank=* ./filter%r:./"#Stage in for load module①#PJM --stgin"rank=* ./param.txt%r:./"#Stage in for file②

#PJM --stgin"rank=0 /data/ucd/ucd*.dat

0:../"#Stage in for shared file③

#PJM --stgout "rank=* %r:../output*.dat./"#Stage out for resulting file ④#PJM --stgout "rank=* %r:./pbvr_filter.*./LOG/" #Stage out for file⑤

#PJM -S. /work/system/Env_base
export PARALLEL=8
export OMP_NUM_THREADS=8
mpiexec -n 64 lpgparm -p 4MB -s 4MB -d 4MB -h 4MB -t 4MB filter param.txt⑥

1. Transfer the load module to the rank directory of each process.
2. Transfer a parameter file to the rank directory of each process.
3. Transfer input data to the shared domain in the local file system.
4. Transfer output data from the shared domain to a directory in the global file system.
5. Transfer log and error files from the rank directory to a directory in the global filesystem.
6. When launching the load module in the rank directory of each process, specify theparameter file (which lies in the rank directory of each process) in the command line
argument.

38#
in_dir=../⑦

field_file=pd3d.fld
out_prefix=case0
out_dir=./⑧

file_type=0⑨n_layer=3
start_step=0
end_step=511
7. Specify the path for input data files. (The path should be a relative path. The above

sample reads input data from a shared domain.)
8. Specify the path for output data file. (The path should be a relative path. The above

sample writes output data to a rank directory for each process using the split fileformat.)9. Specify an output file format. (The above sample uses the split format.)

3.7.2 Input and Output Files and Directories
This section describes the relation between input and output files for PBVR Filter and the
directories in the staging environment. Output data in split format can be written in a rank
directory, while output data in the other formats require a shared directory for data
aggregation.
Table 3.7-1. Table of input and output files and directories on the K computer
I/O
Input

File type

Rank directory

Shared domain

Parameter fileYes *1

Yes

Input data

Yes *2Yes

Split format

Yes

Yes

Step aggregate format

No

Yes

Sub-volume

No

Yes

Yes *3No

OutputOutput data

aggregate

formatLog and error file
*1. The parameter file is read only from rank 0.
*2. The size and number of input files should not exceed the resource limits of the staging
environment (800 files/node and 14 GB/node).
*3. The output directory is always a rank directory.

39

3.8 Unstructured Grid Data with Mixed Elements
When unstructured grid data contains several element types, PBVR Filter first generates UCD
binary data blocks for each element type. These blocks are then divided into sub-volumes,
which are read by PBVR Server. By setting the parameter multi_element_type to 1 in theparameter file, PBVR Filter produces a sub-volume for each element type.
#
in_dir=.
in_prefix=MULTI
in_suffix=.dat
out_dir=.
out_prefix=div
out_prefix=.dat
format=%03
start_step=1
end_step=20
multi_element_type=1
Output files are generated for each element type. The file names have a two-digit prefix that
represents the element type. The following list shows the prefix for each element type.

40

Table 3.8-1. List of element types
Element nameElement type code

Triangle linear

2

Quadrilateral linear

3

Tetrahedron linear

4

Pyramid

5

Prism

6

Hexahedron linear

7

Triangle quadratic

9

Quadrilateral quadratic

10

Tetrahedral quadratic

11

Hexahedral quadratic

14

For example, for the above parameter file, if the input data consist of linear tetrahedral
elements and quadratic tetrahedral elements, the following output files are generated.
Table 3.8-2. File names for mixed elements
Original mixed elements

LinearQuadratic

data

tetrahedral data

tetrahedral data

MULTI001.dat

04-div001_-

11-div001_-

MULTI002.dat

04-div002_-

11-div002_-

MULTI003.dat

04-div003_-

11-div003_-

04-div004_-

11-div004_-

MULTI005.dat

04-div005_-

11-div005_-

…

…

…

MULTI020.dat

04-div020_-

11-div020_-⇒
MULTI004.dat

Decompose41

4 PBVR Server
4.1 Overview
PBVR Server reads sub-volume files, which are produced by PBVR Filter, and performs
parallel visualization with the PBVR technique to generate visualization results for the particle
data. Two types of PBVR Server are available: one visualizes filtered data in parallel forlarge-scale visualizations and the other is version without filters for small- and medium-scalevisualizations.

4.2 Launching PBVR Server
PBVR can run on supercomputers to generate particle data either in batch mode or in client–server mode. In client–server mode, the interactive processing is realized by connecting
PBVR Client and PBVR Server via a socket communication. Stand-alone processing on PCs
or workstations is also possible by launching PBVR Client and PBVR Server in client–server
mode on the same machine. The following example shows how to launch PBVR Server:
Examples:Launch the MPI+OpenMP version and use N processes:$ mpiexec -n N pbvr_server
Launch the OpenMP version:$ pbvr_server*1. Since the MPI+OpenMP version of PBVR Server operates with master–slave MPI
processing, the number of processes N should be the number of slave processes + 1.
*2. In both processing modes, the number of OpenMP threads is set with environment
parameter OMP_NUM_THREADS.
*3. In Windows, these commands should be launched from Visual Studio 2013 x64 Native
Tools command prompt.
Table 4.2-1. List of command line options for PBVR Server
OptionLaunchPossible

Default

mode

valuesvaluesCS,B––

Functionality-hThis shows the list of available
options and parameters

42

-B

B

–

–
To launch in batch mode

-pa
B
-pd

File name–

Visualization parameter file

Real number

1.0

Particle density *2

u, m

u

Method for sampling particles

B-S

u: uniform samplingB-plimitm: metropolis sampling
1–99999999

1000000

Maximum number of particles *2

B-vin

Input volume data (a PFI or PFL file)
B

File name

-pout

*2

–
./

B

File name

CS

Port number

Name of the output particle data file
*3

-p
60000

Port number for socket
communication-viewerB

100–9999

620 × 620

Viewer resolution–

Create particle files separately

× 100–9999
-Bd
B

–

without aggregating the
sub-volumes-Bs

B

Integer of 0 orFirst step ofmore

specified PFIFirst time step for visualizing

file group-Be

B

Integer of 0 or

Last step ofmore

specified PFI

Last time step for visualizing

file group*1. In launch mode, CS and B denote client–server mode and batch mode, respectively.
*2. This option can use a relative or an absolute path for the PFI file generated for filteredvolume data or the PFL file in distributed processing. Do not omit the file extension. If
this option conflicts with the option in the parameter file specified with –pa, the latter isignored.
43

*3. This generates a set of particle data files with names“[file name]_[time step]_[number of sub-volumes]_[sub-volume index].kvsml,”
where [file name] is the prefix specified with this option. If the prefix is omitted, theprefix ”server” will be inserted automatically.

4.2.1 Launching PBVR Server in Batch Mode
For command line option -B, PBVR Server is launched in batch mode.

The following

example shows how to launch PBVR Server in batch mode (for the MPI+OpenMP version):$ mpiexec -n 5 pbvr_server -B -vin ./data/case.pfi -pout ./output/case -pa ./param.in
In this example, the input data file ./data/case.pfi is processed with the visualization parameter
file ./param.in to output the following particle data:./output/case_XXXXX_YYYYYYY_ZZZZZZZ.kvsml
Here
XXXXX

Number of steps (5 digits)

YYYYYYY

Sub-volume index (7 digits)ZZZZZZZ

Total number of sub-volumes (7 digits)

Usually, all the sub-volumes for each time step are integrated, so both YYYYYYY andZZZZZZZ are 1. If you want to output particle data for each of the sub-volumes without the
integration, command line option -Bd must be specified when starting the server in batchmode.
The visualization parameter file is specified with the command line option -pa. This fileis generated in client–server mode interactively. Large-scale data processing in batch mode is
executed using this file as is or with relevant values for the parameters.

4.2.2 Processing of Distributed Files
For visualization, this system integrates multiple volume data files from distributed
environments. The volume data files are filtered one by one. One or more PFI files are
generated for each volume data file. If two or more PFI files are needed for an input volumedata file, then their files names are defined in a PFL file. The PFL file is specified with thecommand line option “-vin”.
The first line of a PFL line is “#PBVR PFI FILES”. The PFI file names are written fromthe second line, using the absolute path or relative path of the PFL file. The following example
shows the contents of a PFL file:#PBVR PFI FILES
hex_filter_out/hex.pfi

44hex2_filter_out/hex2.pfi

4.2.3 Launching PBVR Server in Client–Server Mode
If the command line option “-B” is not specified, PBVR Server is launched in client–servermode, as in this example:$ mpiexec -n 5 pbvr_server
first reading time[ms]:0
Server initialize done
Server bind done
Server listen done
Waiting for connection …
When “Waiting for connection” appears, as in the above example, and PBVR Server is waiting
for socket communications with PBVR Client, launch PBVR Client in another terminal. In
client–server mode, the input volume data name should be given to PBVR Client rather thanto PBVR Server.
The default port number for the socket communication is 60000. To change the port
number, use the command line option “-p”:$mpiexec -n 5 pbvr_server -p 55555

4.2.4 Connecting Client and Server via Socket Communication
4.2.4.1 Local Connection
The following example shows how to launch both PBVR Client and PBVR Server on a single
machine, machine A. In this example, they cooperate using the default port number 60000 ofmachine A:
Step 1 [Launch PBVR Server]
machineA> mpiexec -n 5 pbvr_server
Step 2 [Launch PBVR Client]machineA> pbvr_client -vin filename

4.2.4.2 Remote Connection between Two Machines
The following example shows how to launch PBVR Client on machine A and PBVR Server onanother machine, machine B, where the two machines are in separate remote locations. This
example uses SSH port forwarding to connect port 60000 of machine A to port 60000 ofmachine B. In this way, PBVR Server and Client, on different machines, cooperate throughthe default port number 60000. Once SSH port forwarding is established, the launch
procedure is basically the same as that in stand-alone mode. In Windows, SSH port
forwarding can be set up using a third-party application such as TeraTerm or Putty.
45

Step 1 [SSH port forwarding from machine A to machine B]
machineA> ssh -L 60000:localhost:60000 username@machineB(Forwarding the 60000 port of machine A to the 60000 port of machine B)
Step 2 [Launch PBVR Server]
machineB> mpiexec –n 5 pbvr_server
Step 3 [Launch PBVR Client]machineA> pbvr_client –vin filename

4.2.4.3 Remote Connection with Several Machines
This section provides an example of connecting PBVR Server and PBVR Client on two
remote machines, machine A and machine B, via machine C for some reason, e.g., security.
Once SSH port forwarding is established, the launch method is basically the same as forstand-alone mode, as with the two-point remote connection mentioned above.
Step 1 [SSH port forwarding from machine A to machine C]
machineA> ssh -L 60000:localhost:60000 username@machineC(Forwarding the 60000 port of machine A to the 60000 port of machine C)
Step 2 [SSH port forwarding from machine C to machine B]
machineC> ssh -L 60000:localhost:60000 username@machineB(Forwarding the 60000 port of machine C to the 60000 port of machine B)
Step 3 [Launch PBVR Server]
machineB> mpiexec –n 5 pbvr_server
Step 4 [Launch PBVR Client]machineA> pbvr_client –vin filename

4.2.4.4 Testing SSH Port Forwarding Connection
To check if SSH port forwarding is available, use the test program “C for Linux 2”, which isavailable from Mitsuyuki Komata, SYUWA System, Inc. (current version September 2005 in
Japanese; http://www.ncad.co.jp/~komata/c4linux2/). It simply transfers characters input fromPBVR Server to PBVR Client.
Launch PBVR Server:
server port_number
Launch PBVR Client
client server_hostname port_number

46

4.2.4.5 Connecting to Pre-post Server of the K computerThis section shows an example of connecting a PC (machine A) in a laboratory to the dataprocessing server of the K computer (pre-post server pps3) via the login node of the K
computer (klogin).
Step 1 [SSH port forward from machine to klogin]machineA> ssh -L 60000:localhost:60000 username@k.aics.riken.jp(Forwarding the 60000 port of machine A to the 60000 port of klogin)
Step 2 [SSH port forward from the K login node to the pre-post server]
klogin> ssh -L 60000:localhost:60000 username@pps3(Forwarding the 60000 port of klogin to the 60000 port of pps3)
Step 3 [Launch PBVR Server]
pps3> mpiexec –n 5 pbvr_server
Step 4 [Launch PBVR Client]machineA> pbvr_client –vin filename(Forwarding the 60000 port of klogin to the 60000 port of pps3)

4.2.4.6 Local Connection in Windows
This section shows how to launch both PBVR Sever and PBVR Client on a single Windows
machine. The Visual Studio 2013 x64 Cross Tools command prompt in Visual Studio 2013 isused as the terminal for launching the programs.
Step 1 [Launch PBVR Server]
Windows> pbvr_server.exe
Step 2 [Set the client parameter for Windows]
Windows> set TIMER_EVENT_INTERVAL=1000
Step 3 [Launch PBVR Client]
Windows> pbvr_client.exe –vin filename
Another way of launching PBVR Server and Client is to execute a batch file with the following
lines:
set TIMER_EVENT_INTERVAL=1000
start PBVR_Server_win.exe
pbvr_client.exe –vin filename

4.2.4.7 Remote Connection from Windows Client
To connect PBVR Client in a Windows machine to PBVR Server in a remote machine, set up
port forwarding using SSH client software such as TeraTerm or Putty. The following is an
example for TeraTerm.
47

1)

Launch Tera Term and hit Cancel in the “New connection” dialog.

Figure 4.2-1. Tera Term dialog 1
2)

Select Setup > SSH Transfer from the menu bar. Click Add… in the Forwarding
Setup dialog.

Figure 4.2-2. Tera Term dialog 2
3)

In the Select Direction for Forwarded Port dialog, select Forward Local Port andenter the port number to be used for PBVR Client. In the to remote machine text field,
enter the domain name or the IP address of the server. In the port field, enter the port
number to be used on PBVR Server. Click OK to complete the setup of port forwarding.

48

Figure 4.2-3. Tera Term dialog 34)Connect to the server. Select File > New Connection from the menu bar. In the New
Connection panel, enter the host name of the server and click OK. In the SSH
Authentication panel, enter the user name and passphrase, or specify the location of
the private key file, and click OK.

Figure 4.2-4. Tera Term dialog 4
The following procedure shows how to launch PBVR Server and Client after establishing port
forwarding. This example uses the Visual Studio 2013 x64 Cross Tools command prompt in
Visual Studio 2013 as the terminal for launching PBVR Client.

49

Step 1 [Launch PBVR Server]
Server> mpiexec –n 4 pbvr_server –p port_number
Step 2 [Set a client parameter for Windows]
Windows> set TIMER_EVENT_INTERVAL=1000
Step 3 [Launch PBVR Client]
Windows> pbvr_client.exe –vin filename –p port_number
Note that PBVR Client on a Windows machine can also be launched by executing a batch filewith the following lines:
set TIMER_EVENT_INTERVAL=1000
pbvr_client.exe –vin filename –p port_number

50

5 PBVR Client
5.1 Overview
PBVR Client can operate either in client–server mode or in stand-alone mode. In client–servermode, PBVR Client receives particle data that is rendered using OpenGL based on primitives
generated in PBVR Server. PBVR Client also gets visualization parameters (a transfer
function etc.) via user interaction and sends the parameters to PBVR Server. In this way,
PBVR Client controls the volume rendering process in PBVR Server. The data transfer
between PBVR Client and PBVR Server uses a socket communication with a user-specified
port number. In contrast, when PBVR is in stand-alone mode, it reads and displays particle
data generated by PBVR Server operating in batch mode.

5.2 Launching PBVR Client
The following examples show how to launch the client program in client–server mode or instand-alone mode. When PBVR Client starts, it opens three panels: Viewer, Main panel, andTime Panel.
Launch PBVR Client in client-server mode: *1$ pbvr_client -vin [sub-volume file name *2] [command line options]
Launch PBVR Client in stand-alone mode:$ pbvr_client [particle data file name] [command line options]*1. Client–server mode requires that PBVR Server has already been started.
*2. The file name for a sub-volume can be specified with the absolute or the relative pathto the PFI file.
As with PBVR Server, if two or more PFI files are needed for an input volume data file, createa PFL file and specify it with the command line option “-vin” (Section 4.2.2).
Table 5.2-1. List of command line options for client
Option-hLaunch mode *1

Parameter

Default

value

parameters––

Function

CS,SA
List the options andparameters

-pd

CS

Real number
51

1.0

Particle density

-S

CS

Particle samplingu, mu

method:u: uniform sampling
m:metropolis sampling-plimitCS-tdataCS

1–99999999

1000000

Particle limit *2
Particle data transfer

all, divallmethod:all: step batch
transmission
div: sub-volume divide
forwarding

-pa

CS,SA

File name–
Visualization parameter
file

-vin

CS

File name–Name of the PFI or PFL
file for the input volumedata *2-tf

CS

File name–Name of the transfer
function file *3-pCSPort number

60000
Port number for socket
communication-viewer

CS,SA

100–9999

× 620 × 620

100-9999-shading CS,SA

Viewer resolution{L/P/B}, ka, kd, –
ks, n

-pout

CS,SA

Shading method *4

Prefix–Prefix of output files forparticle data *5

-pin1

SA

File name

–
Input

file

name

for

particle data
-iout

CS,SA

Directory name./Output directory namefor image files52*1. CS and SA denote client–server mode and stand-alone mode, respectively.
*2. This option specifies the relative or absolute path of a PFI file generated for filteredvolume data or a PFL file for distributed processing. Do not omit the file extension. If
this option conflicts with the option in the parameter file specified with “-pa”, the latter isignored.
*3. Transfer function files are generated by hitting the Export File button in the Transfer
Function Editor. To apply the transfer function specified in this option, hit the Apply
button in the Transfer Function Editor. Alternatively, the transfer function file can beloaded with the Import File button.
*4. This argument specifies the shading parameters:
L: Lambert ShadingThis method ignores specular reflection during shading. Parameters “ka” and “kd” arethe coefficients for ambient and diffusion, respectively. They can have a value between
0 and 1.
P：Phong ShadingThis method adds specular reflection to Lambert shading. Phong shading imitatessmooth metal and mirrors, which is sometimes called highlighting. Parameters “ka”,“kd”, “ks” (which are the coefficients for specular reflection and have values between 0
and 1) and “n” (which is the strength of the highlighting and has values between 0 and100) are used.
B：Blinn–Phong ShadingThis is a simplified form of Phong shading. Parameters “ka”, “kd”, “ks”, and “n” areused.
*5. This generates a series of particle data files that are named“[prefix]_[time index]_[number of sub-volumes]_[sub-volume index].kvsml”,
where the prefix is specified by this option.

53

5.3 Terminating PBVR
5.3.1 Standard Termination
PBVR Client’s rendering process for time-series data starts at the initial time step andcontinues to the final time step. When the final time step is rendered, PBVR Client returns to
the initial time step to loop over the steps. To terminate PBVR Client, press Ctrl+C in the
console running PBVR.
In client–server mode, pressing Ctrl+C in the client console terminates both PBVR Clientand PBVR Server. Just before the termination, PBVR Client and Server will synchronize theirtime steps. However, PBVR Client ignores Ctrl+C whenever client–server communications
are interrupted with the Stop button in the Time Panel.

5.3.2 Forced Termination
If PBVR Server is terminated other than by pressing Ctrl+C in PBVR Client’s console, PBVRClient becomes stuck and cannot be terminated with Ctrl+C. Furthermore, even if Ctrl+C ispressed to terminate PBVR Client, both PBVR Client and Server can become stuck. This canhappen if the time step is not updated due to heavy particle generation processes or someother reason. In this case, obtain the process IDs of PBVR Client and PBVR Server using the
ps command in the console, and then force them to quit with the kill command as follows:
Force the termination of a PBVR Client process:$ ps -C pbvr_client
PID TTY
19582 pts/6

TIME CMD
00:00:00 pbvr_client$ kill -9 19582
Force the termination of a PBVR Server process:$ ps -C pbvr_server
PID TTY
19539 pts/5

TIME CMD
00:00:00 pbvr_server$ kill -9 19539

54

5.4 Using the PBVR Client GUI
5.4.1 Viewer
As shown in Figure 5.4-1, Viewer renders the particle data.

Figure 5.4-1. Viewer[Operations]Rotation:

Dragging left with the mouse

Translation:

Dragging right with the mouse

Zoom:

Shift + left-dragging, or dragging while pressing the mouse wheel

Reset:

Home button (fn + left arrow on Macs)[Display]time step:Time step for the data displayed

fps:

Frame rate (frame/sec)

55

5.4.2 Main Panel
Figure 5.4-2 shows the Main panel of PBVR Client. The items on it are described below.

Figure 5.4-2. Main panel
PARTICLE DENSITY
Specifies the particle density for the depth of the image.
56

PARTICLE LIMIT
Specifies the maximum number of particles that are generated in PBVR Server. Use
this to avoid an exponential increase in the number of particles (e.g., if a transfer
function is invalid). The number is multiplied by 106 (so that “100000” means 1011).
Rotation
Specifies the rotation angle for the X-, Y-, and Z-axes in degrees.
Translation
Specifies the translation for the X-, Y-, and Z-axes.
ScalingSpecifies the scaling of the object.
RESOLUTION
Specifies the Viewer resolution in pixels.
Transfer Function Editor
Displays the Transfer Function Editor, which is described below.
Particle Panel
Displays the Particle Panel, which is described below.
Legend Panel
Displays the Legend Panel, which is described below.
Coordinate Panel
Displays the Coordinate Panel, which is described below.
Viewer Control Panel
Displays the Viewer Control Panel, which is described below.
Animation Control Panel
Displays the Animation Control Panel, which is described below.
SENDING
Shows the progress of data transfer to Server.
RECEIVING
Shows the progress of data transfer from Server.
CPU MEMORY
Displays the system memory usage in megabytes.
GPU MEMORY
Displays the GPU memory usage in megabytes.
Display Particle Number
Displays the number of the particle shown.
PFI File Path (SERVER)
Specifies PFI or PFL file names of input volume data in PBVR Server.
no resampling until Transfer Functions be edited
If the transfer function has not been changed in client–server mode, clicking thischeckbox suppresses the redrawing of time-series data using particle data in the
Client’s memory.
57

PBVR Filter information
Displays information about the volume data in PBVR Server (i.e., the contents of the
PFI file).
CROP
Displays the CROP Panel, which is described below.
FILE
This button shows the FILE Panel, whose detail is described below.
Set parameter
Sends parameters specified in Main panel to the server program.

58

5.4.2.1 FILE Panel
The FILE Panel is used to read and write visualization parameter files. This panel is shown
when the FILE button is hit.

Figure 5.4-3. FILE Panel
VIZ PARAMETER FILE
Specifies the path to a visualization parameter file.
Browse …
Opens a file dialog for specifying the path to a visualization parameter file.
Export FILE
Saves the current parameter settings to a visualization parameter file.
Import FILE
Imports a visualization parameter file.
Close
Closes the FILE Panel.

595.4.2.2 CROP Panel
The CROP Panel is activated by hitting the CROP button in the Main panel. Use the CROP
Panel for operations related to extracting and rendering elements within a region of interest(ROI), which can be specified with a cuboid, a sphere, or a cylinder.

Figure 5.4-4. CROP panel[Operations]Move region:

Move the mouse on trihedral panel

Zoom region:

Shift + mouse left-dragging on trihedral panel

Select Object:

Specifies the shape of the ROI

CROP:

A cuboid

SPHERE:A sphere

PILLAR-XY base:

A cylinder with an X-Y base

PILLAR-YZ base:

A cylinder with a Y-Z base60

PILLAR-XZ base:

A cylinder with an X-Z base

CROP:

Specifies the range of the cuboid

SPHERE:

Specifies the center and radius of the sphere

PILLAR:

Specifies the radius, height, and coordinates of the center of thecylinderRESET:

Resets the CROP panel

APPLY:

Extracts the ROI

CLOSE:

Closes the panel

The ROI defined in the CROP Panel is displayed in Viewer, as shown in Figure 5.4-5.

Figure 5.4-5. Viewer with ROI from the CROP Panel61

5.4.3 Transfer Function Editor
The Transfer Function Editor edits the transfer functions, which assign a color and opacity
to each scalar value when rendering a volume. The Transfer Function Editor is activated byhitting the Transfer Function Editor button on the Main panel. In a standard rendering of a
volume, a transfer function is defined with only one physical quantity. In contrast, PBVR allows
for multi-dimensional transfer functions. It has the following three features:
1) It assigns a parameter to color and, independently, a parameter to opacity.
2) It defines both color and opacity with an arbitrary function of the X-, Y-, andZ-coordinates and parameters q1, q2, q3, ….
3) It algebraically synthesizes a multi-dimensional transfer function from one-dimensionaltransfer functions that are defined by color functions C1, C2, … and opacity functions O1,
O2, ….
This new type of transfer function adds significant flexibility to visualization. The Transfer
Function Editor is shown Figure 5.4-6. Each item in the panel is explained below.

Figure 5.4-6. Transfer Function Editor[Operations]
Scale change in histogram:

Drag the mouse up or down in the Histogram62

Transfer Function RESOLUTION
Species the resolution of the transfer function.
Number Transfer Functions
Specify the maximum number of transfer functions that can be created.
Color Function SYNTHESIZER
Specify the composition formula of transfer color functions C1 to C[N]. *1
Opacity Function SYNTHESIZER
Specify the composition formula of transfer opacity functions names O1 to O[N]. *1
Reset
Resets the panel.
Apply
Sends a transfer function defined with this panel to Server.
File Path
Specifies the file path for saving and loading the transfer function file.
Export File
Saves a transfer function defined in this panel to a file in the same format as theparameter file specified with the command line option “-pa”.
Import File
Loads a transfer function stored in a file to this panel.
Close
Closes the Transfer Function Editor.
*1 [N] is the maximum number of transfer functions specified by Number Transfer
Functions.

5.4.3.1 Transfer Function Color Map
This is on the left of the Transfer Function Editor. It is used to create and display thetransfer function corresponding to the synthesis formula in the Color Function
SYNTHESIZER.

63

Figure 5.4-7 Transfer Function Color Map
Color Function Editor
This button displays the Color Function Editor, which is used to create and select thetransfer color functions C1 to C[N]. *1
Color Map Function
This is used to create and display selected individual transfer color functions. It defines
each function used in the Color Function SYNTHESIZER. An equation can beentered using physical quantities (q1, q2, q3, …, qn) and coordinates (X, Y, and Z).
Range MinSpecifies the minimum value of the specified transfer color function.
Range Max
Specifies the maximum value of the specified transfer color function.
Server side range min
Displays the minimum value of the transfer color function obtained in Server.
Server side range max
Displays the maximum value of the transfer color function obtained in Server.
Color Map Editor (freeform curve)
Displays a sub-panel used to specify the transfer color function using a freeform curve.
Color Map Editor (expression)
Displays a sub-panel used to create transfer color functions with colors defined byformulae.
Color Map Editor (control points)
Displays a sub-panel used to create transfer color functions defined by control points.
Color Map Editor (select color map)
Displays a sub-panel used to create color transfer functions corresponding topredefined named color bars.
64ColorThis is the color bar for the color transfer function created by this mapping.
*1 [N] is the maximum number of transfer functions specified by Number Transfer
Functions.
5.4.3.1.１. Color Function Editor
Pressing the Color Function Editor button brings up the Color Function Editor, which isused to create and select the transfer color functions, C1 to C[N]. [N] is the maximum numberof transfer functions specified by Number Transfer Functions.

Figure 5.4-8. Color Function Editor
Color Function List
This displays the transfer functions.
Function
This is used to enter a transfer color function in the form: C[N] = f(parameter).
Edit
Add the entered function to the Color Function List.
Save
Apply the transfer functions in the Color Function List.
SelectSelect the transfer functions in the Color Function List.
CancelCloses the panel.
5.4.3.1.２. Color Map Editor (freeform curve)
Pressing the Color Map Editor (freeform curve) button brings up a panel that is used tocreate a transfer color function based on a free curve drawn using the mouse.

65Figure 5.4-9. Color Map Editor (freeform curve)
Color palette
The saturation, brightness, and hue of a color are specified using the mouse. On theleft, the horizontal and vertical axes correspond to the saturation and brightness,
respectively. The RGB bar to the right of the Color palette sets the hue.
RGB barShows the hue of the color corresponding to the position of the mouse. The upper rightbox displays the color created with the Color palette and the RGB bar.
Color box
Blends the single color specified by the Color palette and the RGB bar with thosefrom a standard spectrum. This is done by dragging the mouse along the color box
while pressing the left mouse button. The blending ratio between the specified color
and the color from the standard spectrum is determined by the vertical position of themouse within the box. For example, if the mouse is traced across the upper edge ofthe color box from left to right, it is painted completely by the specified color. If themouse is traced across the middle of the color box, the colors in the box are replacedwith blended colors that are 50% of the original color and 50% of the specified color.
Reset
Resets the color box to a standard spectrum.
Undo
Undoes the last mouse action.
Redo
Redoes the last mouse action undone.
Save
66Saves the transfer color function.
CancelCloses the panel.
5.4.3.1.３. Color Map Editor (expression)
Pressing the Color Map Editor (expression) button brings up a panel used to create atransfer function based on equations.

Figure 5.4-10. Color Map Editor (expression)
Color
Displays the color bar of the transfer function created in this panel.
R
An equation that describes the transfer function for red.
G
An equation that describes the transfer function for green.
B
An equation that describes the transfer function for blue.
Save
Saves the transfer function created in this panel.
CancelCloses the panel.

5.4.3.1.４. Color Map Editor (control points)
Pressing the Color Map Editor (control points) button displays a panel used to create atransfer function based on control points.

67

Figure 5.4-11. Color Map Editor (control points)
Color bar
Displays the color bar for the transfer function defined in this panel.
Control Point
Specifies up to 10 control points within the color bar, CP1 to CP10. These have values
from 0 to 1, where 0 is the left-hand edge of the color bar and 1 is the right-hand edgeof the color bar.
Red
Specifies the red component of the color at the control points.
Green
Specifies the green component of the color at the control points.
Blue
Specifies the blue component of the color at the control points.
Save
Saves the transfer function.
CancelCloses the panel.
5.4.3.1.５. Color Map Editor (select color map)
Pressing the Color Map Editor (select color map) button displays a panel used to create atransfer function using preset color bar templates.

68Figure 5.4-12. Color Map Editor (select color map)
Color
Displays the color bar of the transfer function created with this panel.
Default Color
Selects a color bar from the following templates:•

Rainbow•

Blue-white-red•

Black-red-yellow-white•

Black-blue-violet-yellow-white•

Black-yellow-white•Blue-green-red•

Green-red-violet•

Green-blue-white•

HSV model•

Gray scale

•

Black

•

White

Save
Saves the transfer function created with this panel.
CancelCloses the panel.

695.4.3.2 Transfer Function Opacity Map
This is on the right of the Transfer Function Editor. It is used to set the parameters and color
for the transfer function specified with the Transfer Function Name field.

Figure 5.4-13 Transfer Function Opacity Map
Opacity Function Editor
This button displays the Opacity Function Editor, which is used to create and selectthe transmission opacity functions, O1 to O[N]. *1
Opacity Map Function
This is used to create and display selected individual transfer opacity functions. It
defines each function used in the Opacity Function SYNTHESIZER. An equation canbe entered using physical quantities (q1, q2, q3, …, qn) and coordinates (X, Y, and Z).
Range MinSpecifies the minimum value of the specified transfer opacity function.
Range Max
Specifies the maximum value of the specified transfer opacity function.
Server side range min
Displays the minimum value of the specified transfer opacity function obtained inServer.
Server side range max
Displays the maximum value of the specified transfer opacity function obtained inServer.
Opacity Map Editor (freeform curve)
Displays a sub-panel used to specify the transfer opacity function using a freeform
curve.
Opacity Map Editor (expression)
Displays a sub-panel used to create transfer opacity functions defined by formulae.
Opacity Map Editor (control points)

70

Displays a sub-panel used to create transfer opacity functions defined by control
points.
Opacity
This shows the transfer function curve for the opacity created by this mapping.
*1 [N] is the maximum number of transfer functions specified by Number Transfer
Functions.
5.4.3.2.１. Opacity Function Editor
Pressing the Opacity Function Editor button brings up a panel that is used to create andselect the transmission opacity function of O1 to O[N]. [N] is the maximum number of transfer
functions specified by Number Transfer Functions.

Figure 5.4-14. Opacity Function Editor
Opacity Function List
This displays the transfer functions.
Function
This is used to enter a transfer opacity function in the form: O[N] = f(parameter).
Edit
Add the entered function to the Opacity Function List.
SelectSelect the transfer functions in the Opacity Function List.
Save
Apply the transfer functions in the Opacity Function List.
CancelCloses the panel.

715.4.3.2.２. Opacity Map Editor (freedom curve)
Pressing the Opacity Map Editor (freeform curve) button brings up a panel that is used tocreate a transfer opacity function based on a freeform curve drawn using the mouse.

Figure 5.4-15. Opacity Map Editor (freeform curve)

Opacity
Specifies a transfer function for the opacity. A freeform curve is drawn by dragging themouse while holding the left mouse button. A piecewise linear curve can be drawn by
specifying control points with right clicks.
Reset
Resets the panel.
Undo
Undoes the last mouse action.
Redo
Redoes the last mouse action undone.
Save
Saves the transfer function created with this panel.
CancelCloses the panel.
5.4.3.2.３. Opacity Map Editor (expression)
Pressing the Opacity Map Editor (expression) button displays a panel that creates atransfer function using an equation.

72

Figure 5.4-16. Opacity Map Editor (expression)
Opacity
Displays the transfer opacity function specified by the equation.
O
Specifies an equation for the curve of the transfer opacity function.
Save
Saves the transfer function created with this panel.
CancelCloses the panel.

735.4.3.2.４. Opacity Map Editor (control points)
Pressing the Opacity Map Editor (control points) button displays a panel that creates atransfer function based on control points.

Figure 5.4-17. Opacity Map Editor (control points)
Opacity bar
Displays the transfer opacity function specified in this panel.
Control Point
Specifies up to 10 control points within the opacity bar, CP1 to CP10. These havevalues from 0 to 1, where 0 is the left-hand edge of the opacity bar and 1 is theright-hand edge of the opacity bar.
Opacity
Specifies the opacities at the control points.
Save
Saves the transfer function created with this panel.
CancelCloses the panel.

745.4.3.3 Function Editor
Table 5.4-1 lists the built-in math operations available in the function editors. They can beused for the overall transfer functions, the parameters, and for the color and opacity curves.
Table 5.4-1. Math operations available in function editors
Math operation

In function editors

+

+

–

-

×

*

/ or ÷

/sin

sin(x)cos

cos(x)tan

tan(x)log

log(x)exp

exp(x)

square rootsqrt(x)

power

x^y

When arithmetic processing by the function editor produces NaN, PBVR outputs an error
message and stops the drawing process.

75

5.4.4 Time Panel
Figure 5.4-18 shows the Time panel, which specifies the time steps for the visualization.
Each widget works as described below.

Figure 5.4-18. Time panel
Progress
Expresses the current time as a percentage.
Time step
Specifies the time step of the data to be rendered.
Min Time
Specifies the minimum time step for the ROI.
Max Time
Specifies the maximum time step for the ROI.
Start/Stop
Starts or stops communications between PBVR Client and PBVR Server.

76

5.4.5 Particle Panel
Figure 5.4-19 shows the Particle panel, which is used to integrate multiple particle datasets.
The Particle panel is activated by hitting the Particle Panel button in the Main panel. Eachwidget works as described below.

Figure 5.4-19. Particle panel
Display Particle
These checkboxes indicate whether to use particle datasets from PBVR Server orfrom local files (maximum 10 files).
1) Server checkbox
This checkbox is active when a particle dataset from PBVR Server is integrated withlocal particle datasets. This checkbox is not available in stand-alone mode.
2) Checkboxes for particle files 1 to 10
These checkboxes are active when particle datasets loaded from local files areintegrated. They are available only if particle datasets are loaded via the Particle filepanel or if any of the command line options “-pin1”, “-pin2”, …, “-pin10” are specified.
These particle files are known as client particles.
Keep Initial Step
If checked, the initial step data are displayed at every time step in the visualization.
77

Keep Final Step
If checked, the final step data are displayed at every time step in the visualization.
Particle File (Add/Export)
Opens the Particle File sub-panel.
Delete Particle
Specifies a particle dataset to delete from those listed in Display Particle.
DeleteDeletes the specified particle dataset.
Close
Closes Particle panel.
The behavior of the particle integration is explained using the example listed in Table 5.4-2. If
the server checkbox and the particle checkboxes are checked, all time steps are displayed, as
shown in Table 5.4-3. If the checkbox Keep Initial Step is checked for the client particles, only
the first time step is displayed, as shown in Table 5.4-4. If Keep Final Step is checked for theclient particles, only the final time step is displayed, as shown in Table 5.4-5.
Table 5.4-2. Available server and client particle datasets
Step 0

Step 1

Step 2

Step 3

Step 4Server

–

S1

S2

S3

S4

Client

C0

C1

C2

C3

–

Table 5.4-3. Particle datasets displayed by default
Step 0

Step 1

Step 2

Step 3

Step 4Server

–

S1

S2

S3

S4

Client

C0

C1

C2

C3

–

Table 5.4-4. Particle datasets displayed with Keep Initial Step for the client particles
Step 0

Step 1

Step 2

Step 3

Step 4Server

–

S1

S2

S3

S4

Client

C0

C0

C0

C0

C0

Table 5.4-5. Particle datasets displayed with Keep Final Step for the client particles
Step 0

Step 1

Step 2

Step 3

Step 4Server

–

S1

S2

S3

S4

Client

C3

C3

C3

C3

C3

78

5.4.5.1 Particle File sub-panel
The Particle File panel is used to read and write particle data files. This panel is shown when
the Particle File (Add/Export) button is hit.

Figure. 5.4-20. Particle File panel
Close
Closes the Particle File panel.
[Add Particle]
Add ItemSpecifies a particle data slot into which a new particle dataset is loaded. If there isalready a particle dataset in the particle data slot, it is overwritten by the new dataset.
File path
Specify a particle data file.
BrowseOpens a file dialog used to specify the path of a visualization parameter file.
Particle name (Optional)
Gives the particle dataset a name, will be shown in Particle panel instead of using a
number.
Add
Add a particle dataset to Particle panel.
[Export Particle]
File path
Specify a particle data file.
BrowseOpens a file dialog used to specify the path to a visualization parameter file.
79ExportOutput the integrated particle data.

5.4.6 Image File Production
PBVR Client saves image data for the Viewer in two modes, both of which are played as amovie. Image file production is activated by hitting the Animation Control Panel button in theMain panel.
lTime series data mode
The images are saved as time series data in BMP format. The image data files areconverted and compressed into a movie file via free software, such as ImageMagic
and ffmpeg.

l

Key frame animation mode
Geometrical information from an arbitrary time step is retained as a key frame. A
series of key frames can be played as a key frame animation.

Figure 5.4-21 shows the Animation Control Panel. Each widget works as described
below.

80

Figure 5.4-21. Animation Control PanelcaptureTurns image production off or on.
image fileSpecifies a prefix for the image data files. The default is PBVR_image.
file
Specifies a key frame file that contains geometrical data. The default nameis ./xform.dat.
interpolation
Specifies the number of frames used for linear interpolation of the geometry data
between two key frames in a key frame animation. The default value is 10.
total key frames
Shows the number of key frames stored in the current key frame animation. It is
initialized to 0, and incremented (or decremented) by pressing “x” (or “d”). It is
initialized to 0 again by pressing “D”.
total animation frames
Shows the number of frames stored in the current key frame animation, which is
calculated as(total key frames – 1) x interpolation
Close
Closes the Animation Control Panel.

5.4.6.1 Image production
Image files are produced as follows:
1) Specify the prefix for the image files in image file.
2) Select “on” in the capture drop-down menu.
3) A series of image files are saved at each time step.
4) Image production is stopped by selecting “off” in the capture drop-down menu.

The image files are saved in the directory specified by the command line option “-iout”. If“-iout” option is not specified, they are saved in the current directory “./”. The following shows
an example of image data files produced with the default prefix “PBVR_image”:
PBVR_image.00001.bmp
PBVR_image.00002.bmp…
If image files are produced from a key frame animation, which is explained later, the filenames are modified by adding “_k” after the prefix:
PBVR_image_k.00001.bmp
81

PBVR_image_k.00002.bmp…

5.4.6.2 Key Frame Animation of a Still Image
A key frame animation of a still image, which is obtained by pressing Stop in the Time Panel,is produced as follows:[Capture key frames and save them in a file]1) Specify a key frame file in file.
2) Activate the Viewer by clicking it.
3) Adjust the view and press “x” to store the geometry information for the view in memory.
4) Repeat (3).
5) Press “M” (i.e., shift+m) to play the key frame animation.
6) If the contents of the key frame animation are satisfactory, press “S” (i.e., shift+s) to

save the geometry information as a series in the key frame file.
[Play a key frame file]1) Specify a key frame file in file.
2) Activate the Viewer by clicking it.
3) Press “F” (i.e., shift+f) to play the key frame animation stored in the key frame file.
4) Press “x” to add new key frames to the current key frame animation.

Table 5.4-6. Keys used for controlling key frame animation
Key

Functionx

Add geometry information for the current view to the key
frame data in memory.

dDelete the last key frame.

D

Delete all key frames.

M

Play or pause the key frame data in memory.

S

Save the key frame data in memory to a key frame file.

F

Load a key frame file and play its key frame data.

82

5.4.6.3 Key frame animation of time series data
A key frame animation of time series data can be produced as follows:1)

By pressing “x” while time series data are being rendered, both geometry information
and a time step number are stored in memory.

2)

Press “S” to save a series with geometry information and time step numbers in the key
frame file.

3)

Press “F” to load a series with geometry information and time step numbers in the key
frame file and play a key frame animation. Here, if key frames are at unequal intervals,
then interpolation frames, which are specified in interpolation, are non-uniform intime.
Time series data
Key frame information
No.

Time step number

0

00002

1

00004

2

00025

3

00035

00002, 00003
00004, 00006, 00008, …, 00024
00025, 00026, 00027, …, 00034
00035–00044

Figure 5.4-22. Key frame animation for time series data

In the example shown in Figure 5.4-22, if there are 10 interpolation frames between key
frames, then 5 interpolation frames are assigned to the time steps 00002 and 00003
between key frames 0 and 1. On the other hand, between key frames 1 and 2, 10
interpolation frames are assigned to the time steps from 00004 to 00024. As a result, thetime steps 00004, 00006, …, 00024 are shown in the key frame animation.

83

5.4.6.4 Key frame file format
A key frame file contains binary data with the following format:

Type

Size

Data

(bytes)int

4Time step number

float

4

rotation[0].x

float

4

rotation[0].y

float

4

rotation[0].zFile format

float

4

rotation[1].x

Key frame data 1

float

4

rotation[1].yKey frame data 2

float

4

rotation[1].z

float

4

rotation[2].x

float

4

rotation[2].y

float

4

rotation[2].z

float

4

translation.x

float

4

translation.y

float

4

translation.z

float

4

scaling.x

float

4

scaling.y

float

4

scaling.z:

Figure 5.4-23. Key frame file format

84

5.4.7 Legend Panel
Figure 5.4-24 shows the Legend panel. A legend is a bar showing how the values of aphysical quantity are rendered as a color in the visualization. The Legend panel is activatedby hitting the Legend Panel button in the Main panel. Each widget works as described below.

Figure 5.4-24. Legend panel
Display Legend
If this is checked, the legend is shown.
Color map Function
Using the spin button, a transfer function can be selected for the color map legend.
vertical or horizontal
Specifies the direction of the legend.
CaptionSpecifies a caption for the legend.
Division
Specifies the properties of the tick marks in the legend:
Intervals:

Number of tick marks.

Edit Color:

Set the color of the tick marks.

Thickness:

Thickness of the tick marks.

Frameline
Specifies the properties of the frame border in the legend:85Edit Color:

Set the color of the frame border.

Thickness:

Thickness of the frame border.

Apply
The settings are applied to the current visualization.
Close
Closes the Legend panel.
Figure 5.4-25 shows an example of a legend.

Figure 5.4-25. Example of a legend865.4.8 Coordinate Panel
Figure 5.4-26 shows the Coordinate panel. This panel is used to specify a coordinatetransformation for each axis. For example, you can change from Cartesian coordinates tocylindrical coordinates.

Figure 5.4-26. Coordinate panel

Coordinate 1
A formula for the new X coordinate. Empty or blank means just "X", i.e., the Cartesian
coordinate.
Coordinate 2
A formula for the new Y coordinate. Empty or blank means just "Y", i.e., the Cartesian
coordinate.
Coordinate 3
A formula for the new Z coordinate. Empty or blank means just "Z", i.e., the Cartesian
coordinate.
ReScaleChanges the scale of the view using the new coordinates.
Apply
Applies the coordinate transformation defined in this panel to Server.
Close
Closes the Coordinate panel.
The coordinate transformations are entered into the text boxes for coordinate axes 1–3.
Variables used are the Cartesian coordinates (X, Y, and Z), physical quantities (q1, q2, …,
q9), and time (T). The variables can be written in upper case (X, Y, Z, and T) or lower case (x,y, z, and t). In addition, the operations allowed are the same as those used in the transfer

87

function editor (see Section 5.4.3.3). If a physical quantity specified does not exist, then 0 will
be used.

5.4.9 Viewer Control Panel
Figure 5.4-27 shows the Viewer Control Panel, which specifies the properties of the Viewer.
The Viewer Control Panel is activated by hitting the Viewer Control Panel button in theMain panel. Each widget works as described below.

Figure 5.4-27. Viewer Control Panel
Background color
Specifies the background color of the Viewer.
Font Size
A font type of the character shown to a Viewer is chosen. The available fonts are:
8x13

A fixed-width font with every character fitting in an 8 by 13
pixel rectangle.

9x15

A fixed-width font with every character fitting in a 9 by 15
pixel rectangle.

TIMES_ROMAN_10 A 10-point proportionally spaced Times Roman font.
TIMES_ROMAN_24 A 24-point proportionally spaced Times Roman font.
HELVETICA_10

A 10-point proportionally spaced Helvetica font.

HELVETICA_12

A 12-point proportionally spaced Helvetica font.

HELVETICA_18

A 18-point proportionally spaced Helvetica font.

Close
Close the Viewer Control Panel.

88

6 An Example with the Sample Dataset
The following sections demonstrate PBVR for a sample dataset gt5d.tgz.

6.1 Filtering
Uncompress gt5d.tgz to extract the following files under the directory ./gt5d:
gt5d.fld

An AVS field fileco3d.dat

A coordinate data file

pd3d.dat

Values for parameter 1

psid.dat

Values for parameter 2param.txt

Input parameters for PBVR Filter

demo.tf

A transfer function file

Execute PBVR Filter with the following command (which invokes the OpenMP version):$ filter ./ param.txt
The contents of param.txt are as follows:#
in_dir=./gt5dfield_file=gt5d.fld
out_dir=./gt5d
out_prefix=casestart_step=0
end_step=4
The above example specifies the split file format (which is the default format), a single
sub-volume (without sub-volume decomposition), and the same directory for both input andoutput. This filtering process generates the following files in the specified output directory:case.pfi

A PFI filecase_YYYYYYY_ZZZZZZZ_connect.dat

An element configuration filecase_YYYYYYY_ZZZZZZZ_coord.dat

A node coordinate filecase_XXXXX_YYYYYYY_ZZZZZZZ.kvsml

A kvsml filecase_XXXXX_YYYYYYY_ZZZZZZZ_value.dat

A parameter file

6.2 Starting PBVRStep 1 [Launch PBVR Server (which is the OpenMP version)]:$ pbvr_server
first reading time[ms]:089

Server initialize done
Server bind done
Server listen done
Waiting for connection …
Step 2 [Launch PBVR Client. This example uses the metropolis sampling and Phong
Shading.]:$ pbvr_client -S m -vin ./gt5d/case.pfi -shading P,0.6,0.6,0.6,30

Figure 6.2-1. PBVR GUI

90

6.3 Designing Transfer Functions
This section shows examples of visualizing gt5d.fld, using the multi-dimensional transfer
function that is produced with the advanced transfer function design capability of PBVR.
gt5d.fld contains structured grid volume data that consists of two parameters.

6.3.1 Volume Rendering for a Single Parameter
First, visualize the parameter q1 by setting the transfer function t1 as shown in Figure 6.3-1. In
this example, the transfer function is designed with the Transfer Function Editor. The leftpart of the Transfer Function Editor shows the configuration for color, while the right partshows the opacity. Notice that this configuration is the conventional volume rendering for asingle parameter.

Figure 6.3-1. Volume rendering for parameter q1
Color Function SYNTHESIZER:

C1

Opacity Function SYNTHESIZER:

O1Color Map Function:

C1 = f(q1)Opacity Map Function:

O1 = f(q1)91

6.3.2 Multivariate Volume Rendering
The next example shows the result of a multivariate volume rendering, in which theparameters q1 and q2 are synthesized as shown in Figure 6.3-2. In this example, the color is
assigned to the parameter q1, while the opacity is assigned to the parameter q2. The opacity
map extracts two torus surfaces, which are given by the iso-surfaces of the parameter q2. The
colors encode the distribution of the q1 values in these iso-surfaces.

Figure 6.3-2. Rendering a multivariate volume. The q1 values are color-mapped onto theiso-surfaces of q2
Color Function SYNTHESIZER:

C1

Opacity Function SYNTHESIZER:

O2Color Map Function:

C1 = f(q1)Opacity Map Function:

O2 = f(q1)92

6.3.3 Slicing Volumes
Figure 6.3-3 shows an application of PBVR’s multivariate volume rendering after extracting aslice. With PBVR, an arbitrary function can be used to design a transfer function. In thisexample, a cylindrical surface (X2 + Z2 = const.) is extracted and the color of the parameter q1
is mapped onto it.

Figure 6.3-3. Rendering after slicing the volume with PBVR’s multivariate volume rendering
capability
Color Function SYNTHESIZER:

C1

Opacity Function SYNTHESIZER:

O3Color Map Function:

C1 = f(q1)Opacity Map Function:

O3 = f(sqrt(X2 + Z2))

Opacity Range Min:180

Opacity Range Max:

380

93

6.3.4 Synthesis of Transfer Functions
This section explains how to synthesize transfer functions in PBVR. Figure 6.3-4 shows atransfer function O4, whose opacity function makes the region Y > 0 transparent. By
synthesizing the previously described transfer functions O1, O2, and O3 together with a newtransfer function O4 as (O1 + O2) × O4 + O3, the individually extracted sub-regions canundergo a flexible composition using arithmetic operations. In this example, the colors of t2
and O3 are set to (R, G, B) = (0, 0, 0), while the color of O4 is set to (R, G, B) = (1, 1, 1). In theabove synthesis equation, the final colors are the rainbow color map defined for O1. On theother hand, the opacity of O4 is multiplied by the sum of O1 and O2 to extract the lower half
region (Y < 0) of O1 and O2. Then, the resulting region is synthesized with the cylindricalsurface given by O3.
As demonstrated by these examples, PBVR’s ability to synthesize transfer functions
is powerful. It can extract an arbitrary region for each parameter and then use a series ofmathematical operations.

Figure 6.3-4. Synthesizing transfer functions
Color Function SYNTHESIZER:(C1 + C2) × C4 + C3

Opacity Function SYNTHESIZER:(O1 + O2) × O4 + O3

94

6.4 Integration of Particle Datasets
While the previous section illustrates a visualization using volume rendering, iso-surfaces,and surface rendering via multi-dimensional transfer functions, a similar image composition
can also be achieved by integrating multiple particle datasets. This section gives an example
of a particle integration.

6.4.1 Saving Particle Datasets
Particle datasets are stored using the Particle File sub-panel of the Particle panel. Figure
6.4-1 shows an example using Export Particle. In this case, the following files are generated
with the prefix p1:./particle/p1_XXXXX_YYYYYYY_ZZZZZZZ.kvsml./particle/p1_XXXXX_YYYYYYY_ZZZZZZZ_colors.dat./particle/p1_XXXXX_YYYYYYY_ZZZZZZZ_coords.dat./particle/p1_XXXXX_YYYYYYY_ZZZZZZZ_normals.dat
Here, XXXXX is the time step, YYYYYYY is the sub-volume number, and ZZZZZZZ is thenumber of sub-volumes. The files “colors”, “coords”, and “normal” contain the color,
coordinates, and normal vector of each particle, respectively. On hitting the Export button,
integrated particle data are stored in the above files. While saving, the Export button isde-activated as shown in Figure 6.4-2. Once the whole time series data have been saved, theExport button becomes active again.

Figure 6.4-1. Particle File panel (export is active)95

Figure 6.4-2. Particle File panel (export is inactive)

6.4.2 Loading Particle Datasets
In the following example, three particle datasets, p1, p2, and p3, which correspond to theimages in Figure 6.3-1 to Figure 6.3-3, are loaded and integrated. Here, PBVR Client islaunched in stand-alone mode with the following command:$

pbvr_client-shading P,0.6,0.6,0.6,30-pin1./particle/p1-pin2./particle/p2-pin3 ./particle/p3
The particle datasets are specified in the command line options. (In client–server mode, theparticle datasets are specified in Particle panel.) The datasets p1–p3 are listed in theParticle panel. After turning on the Display particle checkbox for p1, the volume rendering isshown, as illustrated in Figure 6.4-3. In addition, by turning on the Display particle
checkboxes for p2 and p3, all three particle datasets are integrated, as in Figure 6.4-4. The
integrated particle data can be stored as a single particle dataset via Particle File. Note thatto obtain images that are correctly integrated, all the particle datasets must be generatedusing the same particle densities and particle limits, which are specified by the command line
options -pd and -plimit, or in the Main panel.

96

Figure 6.4-3. Particle dataset p1

Figure 6.4-4. Integration of p1, p2, and p3

97

6.5 Saving Results
After designing the transfer function, PBVR can save the resulting image and parameters in
the following three ways:
1)

Image output (Section 5.4.6)
To save the results as images, select “on” in the capture drop-down list in the
Animation panel. Bitmap image files (PBVR_image.xxxxx.bmp) are generated.

2)

Transfer function file (Section 5.4.3)
To generate a transfer function file, enter a file name for the transfer function in the FilePath of the Transfer Function Editor and press Export File. This file cansubsequently be loaded using Import File.

3)

Visualization parameter file (Section 3.5)
All the visualization parameters including the transfer function can be exported andused to run PBVR Server in batch mode. Open the File panel from the Main panel,specify the parameter filename and press Export FILE.

6.6 Batch Mode Example
This section shows how to run PBVR Server in batch mode using the visualization parameter
file exported in the previous section. This mode is used for massively parallel processing on asupercomputer. In addition, it is also useful for high-speed rendering of time series data with
PBVR Client in stand-alone mode, because it eliminates the latency due to particle generationand particle data transfer.
Step 1 [Launch PBVR Server (OpenMP version) in batch mode]:$ pbvr_server –B –vin ./gt5d/case.pfi –pout ./output/case -S m -pa ./param.in
Step 2 [Launch PBVR in stand-alone mode]:$ pbvr_client –pin1 ./output/case -shading P,0.6,0.6,0.6,30

98