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 /where INTERCHANGE(itheta1,itheta2) =
(
(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)
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.