Hi all,
when trying to perform a 3D simulation with a very long time series (400000 points in time, but it doesn't matter exactly as long as it's above 1 MB) and using the external C Program for it, the Scripts stop with an error while writing the data to the harddisk for passing it to the external program.
When I had a closer look, it seemed that the cause was the time series being compressed before storage. If the same time series is used for all excitation points (and that's the case because my machine would run totally out of memory if I define an individual sequence for all excitation points), the sequence arrives in writeMatrix as a 1x400000x1 array. The Script tries to perform the compression on the first dimension (using a chunk size of 1MBx1x1) and that causes h5create to report an error because the size of the data doesn't match the chunk size.
I believe that this can be fixed by modifying writeMatrix.m and replacing
chunk_size = [one_mb, 1, 1];
by
if(Nx > Ny)
chunk_size = [one_mb, 1, 1];
elseif(Ny > Nz)
chunk_size = [1, one_mb, 1];
else
chunk_size = [1, 1, one_mb];
end
This will cause the compression dimension to always match the dimension of the 1D Array. For me that fixed the problem.