h5md-user
[Top][All Lists]
Advanced

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

Re: [h5md-user] topology


From: Felix Höfling
Subject: Re: [h5md-user] topology
Date: Wed, 23 Apr 2014 10:00:17 +0200
User-agent: Opera Mail/12.16 (Linux)

Am 22.04.2014, 13:59 Uhr, schrieb Pierre de Buyl <address@hidden>:

Hi all,

Topology was deliberately left out of H5MD 1.0. The intent was that feedback on this point was needed, as well as some experience with relevant simulations.

I have started to work on polymer simulations recently and I have chosen a way to store topology information that requires no "conceptual" addition to H5MD.

Depending on the direction of the discussion this could become either a module
or a part of the specification itself.

Here is how I do:

1. Create a "/topology" group that contains groups named directly after those in "/particles". This is similar to what is done in the thermodynamics module
http://nongnu.org/h5md/modules/thermodynamics.html#observables
2. Within the groups, H5MD elements store bonds as [N_bonds][bond_order] data.
For pairs, bond_order=2, for instance. This allows to store angles and
dihedrals. This also allows to store several bond lists (you could have pairs
for separate potentials, for instance).

As these are H5MD elements, you can store them in a time-dependent fashion. This requires that a "fill value" is defined if you need to grow the dataset in "N_bonds". I use "-1" but the value itself can be retrieved and does not need to
be in the specification.

I show below a "h5ls -r" dump of a topology group:
"""
/chains                  Dataset {4000, 2}
/crosslinks              Group
/crosslinks/step         Dataset {100/Inf}
/crosslinks/time         Dataset {100/Inf}
/crosslinks/value        Dataset {100/Inf, 417/Inf, 2}
"""

Here, "chains" is a "fixed in time" element of 4000 pairs and "crosslinks" is a
"time dependent" element with 100 time steps and at most 417 pairs.

The position in "/topology/<group>" could be (in my opinion) changed to
"/particles/<group>/topology". I wanted to work with minimal modifications, which why I use "/topology" now but putting the information in "/particles"
seems more natural to me.

For completeness, I need to say that I currently use ESPResSo++
http://www.espresso-pp.de/ . I cannot tell if this influenced my proposition.

Cheers,

Pierre



Hi Pierre,

Indeed, the mailing list (and http://nongnu.org/h5md/discussion.html) is a good place to share ideas on extensions of H5MD.

Some time ago, Olaf told me about his thoughts on how to store topological information. I think this is pretty much in line with your proposal. Olaf's ideas were pretty much inspired by what is stored in the PDB format.

What I'm missing in your post is what information is actually stored? Am I right that you define a pair bond by a pair of particle IDs? In /particle these IDs are unique only within a subgroup so bonds across these subgroups would be difficult to implement. (They may simply not be supported, requiring the subgroups to be sufficiently large. E.g., they would need to hold the complete macromolecule not only parts of.)

We better keep the topology separate from the /particles tree. The information complements the information in /particles, but is quite different in structure. In /particles, there is one entry per particle while the topology is about subsets of pairs, triples, etc.

Cheers,

Felix



reply via email to

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