h5md-user
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[h5md-user] box data as part of trajectory/position


From: Felix Höfling
Subject: [h5md-user] box data as part of trajectory/position
Date: Mon, 10 Sep 2012 09:14:55 +0200
User-agent: Opera Mail/12.01 (Linux)

Hi H5MD users,

[I realised that I sent this post to the wrong thread, where it clearly was off topic. Since there was no response so far, I will try again with a new thread.]

I thought about the box again since I feel not really comfortable with the
current specification. I find it a bit awkward that the observables group
must be present if a file contains trajectory data only. Further, the box
information is only needed in conjuction with position data. If only
velocities are stored (for some reason), the box is not needed. And the
maybe strongest point last: for time-dependent boxes, there shall be a
simple way to retrieve the corresponding box size for a given entry in the
position time series. (Currently, the box may be stored at different
intervals than the positions).

My suggestion is to link the box much tighter to the position data. The
box group in observables may still be present and can be realised by
appropriate hard links. The following suggestion ensures that the box data
are available within each position group consistently using the same time
grid as the position data:

trajectory
   \-- group1
   |  \-- position
   |    |    \-- value
   |    |    \-- step
   |    |    \-- time
   |    \-- box
   |         +-- type
   |         \-- edges [var][D][D]
   |         \-- offset [var][D]
   \-- group2
        \-- position
        |    \-- value
        |    \-- step
        |    \-- time
        \-- box
             +-- type
             \-- edges [var][D][D]
             \-- offset [var][D]

observables
   \-- box
        +-- type
        \-- edges
             \-- step [var]   --> trajectory/group1/position/step
             \-- time [var]   --> trajectory/group1/position/time
             \-- value [var][D][D]   -->
trajectory/group1/position/box/edges
        \-- offset
             \-- step [var]   --> trajectory/group1/position/step
             \-- time [var]   --> trajectory/group1/position/time
             \-- value [var][D]   --> trajectory/group1/position/box/offset

trajectory/group2/position/step may link to
trajectory/group1/position/step, but can be independent. Similarly, group1
and group2 can link their boxes to each other or can contain box
information at completely different time grids.

One open point: how can we efficiently store the information for a fixed
box size (which is a pretty widespread case)? If the edges and offset
datasets contain always the same entries, they may pack well, but they
have to be unpacked for accessing any data point. An alternative would be
to indicate the non-changing box size transparently, e.g., by an
additional attribute and different dataset extents (with fixed size).

trajectory
   \-- group1
   |  \-- position
   |    |    \-- value
   |    |    \-- step
   |    |    \-- time
   |    \-- box
   |         +-- type
   |         \-- edges [D][D]
   |         \-- offset [D]

(Note that the extents of edges depend on the box type, either [D] or [D][D].)


Please let me know what you think about my suggestion.

Regards,
Felix



reply via email to

[Prev in Thread] Current Thread [Next in Thread]