I noticed that the arguments passed to member functions to do data analysis depend on the resolution (nx/2, etc) for example:
Box3D slice(0, nx-1, 0, ny-1, nz/2, nz/2);
lattice.get(nx/2, ny/2, nz/2).computeVelocity(velocity);
This means that we can only get the results in a location that is approximated to the nearest neighbour without interpolation. Usually data analysis functions are better being function of physical coordinate instead of grid index. The physical coordinate could be normalised. For example, if we want to do a cut plane at x=0.653 in a box of length 1 and this position does not correspond to a grid point, interpolation would be used to the get the cut plane in the required position instead of approximating it to the nearest neighbour. The interpolation could be linear interpolation which is consistent with the 2nd order nature of the scheme. That feature would require that constructors and member functions accepts arguments of type double instead of int like in:
Box3D (plint x0_, plint x1_, plint y0_, plint y1_, plint z0_, plint z1_)
and that the interpolation is done internally.