Chapter VII.1. The Kicksey-Winsey specific HDF5 file model

Table of Contents

VII.1.1. Motivation
VII.1.2. One file belongs to one workspace
VII.1.3. Sequential writing model
VII.1.4. Parameter stamps
VII.1.5. Data types
VII.1.5.1. Standard behavior
VII.1.5.2. Conversion policies
VII.1.5.3. Custom types

VII.1.1. Motivation

HDF5 files are organized in a hierarchical manner which is similar to the way most filesystems work. This makes HDF5 files extremely powerful to keep track of the data's own logic through the way they are themselves structured. Such a high flexibility implies that HDF5 is a large and complex library, and in fact, much too complex for our everyday needs in KW. Hence HDF5 calls in KW are handled by a C++ module (thereafter KW-HDF5) which has its own, much simpler, interface.

However, since data files are meaningless if they cannot be exchanged with external programs, it is essential to document how files generated and readable by KW-HDF5 are organized, which is done in this document.

VII.1.2. One file belongs to one workspace

The first question that should be answered is: to what files goes what data ? Of course the simplest way would be to output a single

VII.1.3. Sequential writing model

When simulating time-dependent systems, variables often need to be saved to a file several times in a row, but at the same time they are well defined entities and we do not want to dump them all together. HDF5-KW implements a sequential writing model

VII.1.4. Parameter stamps

VII.1.5. Data types

VII.1.5.1. Standard behavior

C++ templates allow KW-HDF5 to take care internally of most of the burden that comes with data type compatibility.

VII.1.5.2. Conversion policies

VII.1.5.3. Custom types