Skip to content

A parallel implementation of XPCS analysis for APS beamline 8-ID-I

License

Notifications You must be signed in to change notification settings

NSLS-II-CHX/xpcs-eigen

 
 

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

X-Ray Photon Correlation Spectroscopy.

Summary


XPCS (X-ray Photon Correlation Spectroscopy) is experimental technique used at Sector 8 of APS. The main principle behind the technique is to study the dynamics in materials at nano-scale by studying correlations in time series of area detector images. These correlations involve analyzing the pixel-by-pixel correlations for different time intervals. A multi-tau algorithm is commonly used that defines the time intervals in a logarithmic manner. The current state-of-the-art detector at Sector 8 is capable of acquiring megapixels of frames at a rate of 60 Hz (120 MB/sec). A suite of CCD detectors are used with data rates ranging from 4 MB/sec to 120 MB/sec. The next generation Fast CCD2 detector being built in collaboration between ANL and LBL is projected to run at 200 Hz generating 400 MB/sec of data. The challenge is to compute these correlations at a decent rate that comes within a small factor of the rate of the data acquisition. Doing the analysis at (near) real time saves a lot of effort and time of the scientists.

Implementation


This C++ implementation , currently a work in progress, is based on the Eigen (http://eigen.tuxfamily.org/index.php?title=Main_Page) library. We are handling both sparse and non-sparse data using the equivalent constructs from the Eigen library.

Compiling


You will need to have a latest (>= 3.5) version ofcmake installed in order to compile this project. Additionally, you need the HDF5 C library. Please follwing the instruction here (https://support.hdfgroup.org/HDF5/release/obtain518.html) for installing it.

Next, follow these steps:

  • Edit the CMakeLists.txt file: ** Update the path to the HDF5 include file at line # 14 ** Update the path to the HDF5 library file at line # 15
  • Create a build directory under the root of the project ```mkdir build``
  • Run cmake ../ from the build directory.
  • Run make

This will generate the binary executable corr.

Running


The ```corr`` executable accepts two input arguments. The HDF5 containing the configuration for the analysis job and an IMM file containing the binary data.

./corr configuration.hdf5 data.imm

About

A parallel implementation of XPCS analysis for APS beamline 8-ID-I

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • C++ 94.3%
  • Python 3.1%
  • C 1.8%
  • Other 0.8%