Zindaiji3 can read HDF5 file. Note that HDF5 is rather a container than a format. Zindaiji3 can handle data formatted as below.
Merit and Demerit of using HDF5 in Zindaiji3
- Platform independent.
- Can pack multiple time step in a singe file.
- Can use compress and decompress functions (zlib, szip) in HDF5.
- Can use TOKI compression. (see later descriptions)
- Demerit You must understand HDF5 and link hdf5 libraries to your simulation program, and modify it. Unfortunately, HDF5 library is somewhat un-intuitive.
To read HDF5, set Datatype to HDF5(SIMPLE). You can also check format before reading data actually by "Check HDF5 File" button. The structure of data would be shown in attribute and data structure panels.
Single time step must be packed as a group. Even if there is one time step in a file, make a group. (Not attach Dataset to file directly). The HDF5 file loaded by HDF5View2.9, (standard HDF viewer) is shown as belows
Attach Metadata (attribute) Format Version to the file. (Not in function for now. Just preserving the word for future use.)
Attach Dataset of a snapshot to a group respectively.
A group must have metadata number and time. Default tags are "number" and "time". Numer is necessary data. If no time is found, time is set as 0, 1, 2, .... according to the frame number.
A group has datasets like positions, velocities, and radi, etc. These datasets are identified by their names. Default tags are like a table below.
Set vector data (like position) as 2-dimensional array [num], and other data as linear arry [num], where num is particle number.
|xyz||necessary position (float)
|axayaz||1/2 acceleration (float)
|jxjyjz||1/6 jerk (float)
|dradius||derivative value of radi
|value1||VALUE1 (aritrary physical value) (float)
|dvalue1||derivative value of VALUE1
|index||index (int, necessary for TOKI compression)
About acceleration and jerk In normal mode, these vectors are calculated from position and velocity. But you can set these parameter directly. Please set interpolation to No Iterpolate. Otherwise, these parameters will be overwritten in interpolation process.
You must give acceletration and jerk with factor (1/2) and (1/6). With factor, we slightyly reduce calculation in Taylor expansion process position + velocity x dt + (1/2) accelelation x dt x dt + (1/6) jerk x dt x dt x dt.
About interpolation of radi and VALUE1 As for radi and VALUE1, the first order interpolation is inplemented. i.e., value + Derivative value x dt.
About index In TOKI compression process (see link), you can reduce file size by skipping unnecesarry particle data. Index is used to identify actual index of n-th particle in Dataset.
For example, assume a step has 0, 1, 4, 7 particle data within 10 particle.
Setting index as 0, 1, 4, 7, we read data for 0-th, 1-st, 4-th and 7-th particles respectively.
In this case set metadata number as to be 10 (true number) rather than 4.
Index is not necessary if not using TOKI Compression.
Changing tags for dataset
Tags connected to datasets can be changed.
For example, if the name of dataset is not default one (xyz) but "position", select that data and call "Connect as XYZ" from right click menu.
Open File Sequence
After checking data strucure by "Check HDF5 File", Open file sequence as usual.