Version 0.6.0

Release 0.6.0 includes bug fixes concerning stdin/stdout and hybrid parallelisation of the software: using OpenMP for multi-core, memory shared, processors and MPI for distributed memory CPU (Beowulf) clusters. This may drasticly increase the speed of the PIV interrogation. Also, the gpiv_series Python script from the gpivtools package allows to interrogate or post-processing on large sets of numbered images and PIV-data. Actually, gpiv_series may be used to perform *ANY* kind of process on numbered data files and, therefore, might be a nice general tool for Beowulf clusters.

The parallelised binaries are obtained using:
./configure --enable-mpi --enable-omp
for the packages libgpiv, gpivtools and gpiv.

Actually, the gpiv program itself has not been parallelised, but invokes the parallelised gpiv_rr program from the gpivtools package. So, when enabling MPI for the gpiv package, the (MPI-enabled) gpivtools package will have to be resident on the system, as well. (This is checked for when invoking the configure script.) Gpiv, therefore, is launched in the normal way. While performing the interrogation, the progress cannot be monitored in the progress bar of the gpiv console. But when using the --verbose key when launching gpiv from the command line, gpiv_rr reports its progress from each node to stdout. After the interrogation has been finished, the resulting PIV data are loaded in the viewer and are displayed as usual.

Gpiv_rr and gpiv_series are launched using mpirun.

The parallelisation for multi-core CPU systems has mostly been implemented by using the "#pragma omp parallel for" statement at low-level loops. Parallelisation for distributed memory CPU clusters has been implemented by domain decomposition: Interrogation Area's of a single image pair are distributed over the different nodes.

Though the software seems to work fine, more work needs probably to be done on the optimisation of the code. Comments are welcome.

Version 0.5.1 and 0.5.2

A bug was found: /etc/gpiv.conf is not read in case $HOME/.gpivrc is absent. The patch libgpiv-0.5.2_patch1.diff repairs the correctly loading of /etc/gpiv.conf. In Debian, the new patch release libgpiv3 (0.5.2-5) also includes this patch.

Libgpiv, Gpiv and Gpivtools release 0.5.2 have been packaged in Debian GNU/Linux. Debian is highly recommended for using Gpiv c.s because of its stability and versatility.

Libgpiv, Gpiv and Gpivtools release number 0.5.1 and 0.5.2 include minor bugfixes, improved documentation and a clean-up of the code. It has mainly been issued to synchronize the software with the new Debian packages that hopefully will be included soon in the GNU/Debian distro.

Version 0.5.0

Libgpiv 0.5 has been released: we are now halfway stable and production release. At least concerning version numbering. Hopefully that the needed time for developing the second half will take less :)
  • Libgpiv has undergone a Kafka revision: simplification, reduction and a more uniform library interface (API). In the hope that it will be easier to learn Libgpiv for developing your own applications and for wrapping the library to other languages.
  • New structure for images. Structures for PIV data and scalar data have been improved and extended.
  • Many functions have been revised and some memory leaks have been disabled.
  • The fftw3 library is used now for performing FT operations.
  • Documentation of the API, generated with Doxygen, is included in the package and can also be found on this site.
  • Of course, Gpivtools and Gpiv have been adapted to the new Libgpiv API.

Thanks to the API revision a new project has been launched: PyGpiv which is a Python module that allows the functionality of Libgpiv in Python scripts.

The Gpiv program now includes the Gnome Virtual File System (GVFS): images and data may be retrieved or stored from / to an URI. This allows to load data directly from a (ftp. ssh, ...) server or by drag and drop of the Gnome Filemanager (Nautilus), that is connected to such a server.

For more detailed information, have a look at the Changelogs of the individual packages.

Version 0.4.0

  • Extension with the loading and saving of (gray-type) images of the following formats: PNG (native), GIF, TIF, BPM, PGM. Apart from these formats, the software also loads raw binary (.r/.h), hdf5 (.gpi) and LaVision's (tm) uncompressed (.img) images.
  • The image dimension parameters in the Gpiv program have been removed. Gpiv may load images of arbitrary dimensions, even mixed during a single session.
  • Image loading while launching Gpiv from the command line.
  • Improvement of the viewer display of Gpiv:
    • zooming with mouse wheel and dragging with mouse pointer
    • non-interlaced displaying of images and data
    • added a menubar (with identic functionality of the popup menu)
    • added rulers to show pointer position.
    • patch1:
    • added automatic stretching of buffer display
    • broadcast changed display settings from 'preferences' to all buffers
  • In Gpiv's console PIV tab: Monitor of interrogation area's, correlation function and displacement vector with non-interlaced canvas.
  • Added Gauss weighting of interrogation area's to reduce ripple effects caused by the abrupt intensity changes at its borders.
  • Added Symmetric Phase Only Filtering (SPOF) on correlation function [3].

Version 0.3.1

Minor changes that include the bug repair patches from 0.3.0 in order to get the software accepted in the Debian GNU/Linux distribution.
patch3: added support for png (native) tif, gif, pgm and bmp image formats

Version 0.3.0-b

The gpiv-0.3.0 package that has been published at the sourforge sites includes version 0.3.0-b and 0.3.0-a.
  • Advanced interrogation technique by applying image deformation. This reduces drasticly peaklocking effects resulting into higher spatial resolution and accuracy.
  • Cumulative residus (representing the sum of differences between PIV estimators of the current and the previous iteration) used as convergence criterium for iterative interrogation procedures.
  • PIV data validation after each iteration step.
  • Normalized (local median) residus can be used as a universal outlier detection in a PIV estimation for (heterogeneous) turbulent flows [1].

Version 0.3.0-a

The revision with the modifications mentioned below has been distributed on a Linux live CD (based on Morphix, Knoppix and GNU/Debian) during the 6th Int. Symp. on Particle Image Velocimetry, Sept 2005, Caltech, Pasadena, USA and has been applied during the PIV Challenge 05 project.
  • The adaptive grid system uses bilinear interpolation with shifted knots to increase accuracy of intermediate results [2]. This results into improved estimators at the new, refined, sub-grid and, therefore, into stability of the iteration procedure.
  • The interface has been ported to the Gnome2 libraries. The porting has not been finished, yet. This may involve that some functionality has temporarly been lost.
  • Several optimizations and internal improvements.

Version 0.2.1

  • The software has been extended with Data Acquision (DAC), i.e. the triggering of lasers with a camera and the recording of PIV images from an experiment.
  • Adaptive grid if zero offsetting and adaptive dimensions of the Interrogation Area's (I.A) are used. The initial grid of an iterative interrogation uses the dimensions of the largest I.A.'s, as defined by the process parameter, while the area's have an overlap of 50 %. After each iteration sweep (which includes the interrogation of the entire Area of Interest within the image on a rectangular grid), the sizes and adjacent shifts of I.A.'s are halved. Estimators at the new, finer, grid are calculated by (bi)-linear interpolation. This process continues until the final (minimum) dimensions and shifts have been reached.


[1] J. Westerweel, F. Scarano, "Universal outlier detection for PIV data", Exp. in Fluids (2005) 39:1096-1100

[2] P. Thévenaz, T. Blu, M. Unser, "Interpolation Revisited," IEEE Transactions on Medical Imaging, vol. 19, no. 7, pp. 739-758, July 2000

[3] M.P. Wernet, "Symmetric phase only filtering: a new paradigm for DPIV data processing", Meas. Sci. Technol (2005), vol 16, pp 601-618

Gerber van der Graaf
email: gerber_graaf AT users DOT sourceforge DOT net

Last modified: Mon Nov 17 10:41:44 CET 2008