Full correlation function

Since the interpretation of the correlation function depends on details of grouping of histograms, we decided to present here raw histogram data instead. The size of files is also kept reasonable.

The files are binary little endian (x86 architecture) and they are gzipped. Real numbers (float) are IEEE single precision 4 bytes long. Integers (int) are 4 bytes long. It is easily possible to read these files on IEEE-conformant machines with different sex after rearranging bytes in quadruples.

Arrays are indexed from zero and stored by rows (last index is the fastest varying), e.g. M[0][0], M[0][1], M[0][2], M[1][0], M[1][1], M[1][2]. There is no extra control information in the file.
length offset type name[=value] meaning
4 0 float T temperature [K]
4 4 float rho density [kg m-3]
4 8 float V volume of simulation box [A3]
4 12 int N=512 number of molecules
4 16 int M number of measurements
4 20 int NR=32 array dimension in the R (R=O-O distance) variable
4*(NR+1) 24 array of NR+1 floats R[i], i=0..NR points defining histogram bins in R
4 24+4*(NR+1) int NANG=12 array dimensions in angular variables
4*NR*NANG5 28+4*(NR+1)=156 six dimensional array of ints H [ir] [iphi] [itheta1] [itheta2] [ialpha1] [ialpha2],
ir=0..NR-1, iangles=0..NANG-1
measured histogram values
0 4*NR*NANG5+28+4*(NR+1)
= 31850656
    end of file

The histogram value H [ir] [iphi] [itheta1] [itheta2] [ialpha1] [ialpha2] has been counted for R in interval (R[ir],R[ir+1), phi in interval (180/NANG*iphio,180/NANG*(iphi+1)o)and the same for other angles. Since the range of phi is 360o, the following mirror symmetry transformation was performed for phi>180o:
phi=360o-phi, alpha1=-alpha1, alpha2=-alpha2.
In addition, if theta1+theta2>180o, particle interchange was peformed:
theta1=-theta2, theta2=-theta1, alpha1=alpha2, alpha2=alpha1;
thus H [ir] [iphi] [itheta1] [itheta2] [ialpha1] [ialpha2] = 0 for itheta1+itheta2>=NANG.

The final formula for the average value of the full correlation function in one histogram bin, or approximate value of

g( (R[ir]+R[ir+1])/2, 15o*(iphi+0.5), 15o*(itheta1+0.5), 15o*(itheta2+0.5), 15o*(ialpha1+0.5), 15o*(ialpha1+0.5) )
is
H [ir] [iphi] [itheta1] [itheta2] [ialpha1] [ialpha2] * V /
(
  (N*(N-1)/2) * M
  * (R[ir+1]3-R[ir]3)*(4*PI/3)
  * (PI/NANG)3
  * ( cos(180o/NANG*(itheta1+1))-cos(180o/NANG*itheta1) )
  * ( cos(180o/NANG*(itheta2+1))-cos(180o/NANG*itheta2) )
  / (4*PI3)
) / INTERCHANGE(itheta1,itheta2)
where INTERCHANGE(itheta1,itheta2) =
2    for itheta1+itheta2 < NANG-1
1    for itheta1+itheta2 = NANG-1
undefined    for itheta1+itheta2 > NANG-1 (exchange particles to reach itheta1+itheta2 < NANG-1)

Note that for angles theta close to 0o or 180o the above formula becomes imprecise. It is recommended to group small histogram bins as described in the paper.