Skip to content

kraused/pvo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

50 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

 
    *** Parallel VTK Output (PVO) Library ***


Table of contents
=================

 o Introduction
 o Requirements
 o Installation
 o Known Problems
 o Future Directions


Introduction
============

The Parallel VTK Output (PVO) library provides
high-level functionality for parallel output in
the VTK XML formats.


Requirements
============

To install PVO, you need a C99 compatible C compiler
and cmake installed. You can download cmake from
http://cmake.org. In order to use the parallel I/O
functionality in PVO, you need to have a MPI-2 compliant
MPI distribution available. The code was mainly tested
with Open MPI (see http://www.open-mpi.org)


Installation
============

This guide assumes that you start out in the pvo directory
and that the bin directory of cmake is in your $PATH.
To install PVO, you should create a new directory for
building

% mkdir build
% cd build

If you have an MPI implementation available and the "mpicc"
compiler wrapper are in your $PATH, you can simply use

% cmake -DCMAKE_INSTALL_PREFIX=<PREFIX> ..

where <PREFIX> is the directory where you want to install
the headers and library file.
To build and install PVO you can type

% make
% make install

By default, the PVO library will use MPI-I/O for the parallel
I/O. This can make trouble on NFS mounted devices. As an alternative,
the code implements a small low-level layer using POSIX I/O.
To enable it, you need to use the option

-DPVO_DEFAULT_LOW_IO_LAYER=PVO_LOW_IO_POSIX

when calling cmake.

If the MPI installation does not support modules (i.e., if
"use mpi" does not work in Fortran codes) add the option

-DPVO_INCLUDE_MPIF_H=1

to the cmake flags.

If no MPI is available on your system, you can still use PVO
to do serial I/O. In this case you should add the option

-DTPL_ENABLE_MPI:BOOL=OFF

to the cmake command.

By default, PVO is compiled in a static library (unfortunately, right
now not as position-independent code). To compile a shared library,
you should add the option

-DBUILD_SHARED_LIBS:BOOL=ON

to the cmake flags.

Fortran support is by default enabled. To disable it you should add the
option

-DPVO_ENABLE_FORTRAN:BOOL=OFF

to the cmake flags.

Additional C or Fortran compiler and linker flags can be passed with
the usual "CMAKE_C_FLAGS" and "CMAKE_Fortran_FLAGS".


Known Problems
==============

 - pvo_vti_file supports only one file per process (i.e.,
   islands containing a single process)
 - pvo_vts_file supports only one file per process (i.e.,
   islands containing a single process)


Future Directions
=================

PVO is a small library and many new features could be
implemented:

 - C++ Interface using Classes
 - Support for more VTK formats