FiberBundleHDF5
$Id: FiberHDF5.dfg,v 1.8 2006/12/12 12:32:50 werner Exp $
|
The purpose of this library is to provide a simple C-API for writing HDF5 files using the concept of fiber bundles. It allows to cover a wide range of data types used for scientific computing through a common denominator in a mathematically founded systematic approach.
In the concept of fiber bundles, we distinguish among a base space and a fiber space. The base space corresponds to a mesh type or "grid", e.g. a regular or irregular grid. The fiber space corresponds to data given on each vertex or cell type, e.g. scalar fields, vector fields, tensor fields, spinor fields. Taking into account practical requirements in scientific visualization, the abstract concept has been cast into six levels of hierarchy within an HDF5 file layout.
A detailed description of the concept has been developed as part of the PhD thesis Visualization of General Relativistic Tensor Fields via a Fiber Bundle Data Structure. .
See Getting Started for a practical guide on getting started.
- Intrinsic support for time - one or many timesteps per file - connectivity information across time steps - using other ordering parameters instead of time - Multiple coordinate systems - cartesian coordinates - polar coordinates - two-dimensional coordinates (e.g. texture coordinates) - transformation rules among coordinate systems - abstraction level to allow coordinate-free formulations - Extended data types - vector fields - tensor fields - covariant and contravariant indices - coordinate transformation rules for vector and tensor fields - Transparent support for different field layouts - arrays of structs - struct of arrays - Arbitrary dimensions - one-dimensional data - two-dimensional data (surfaces) - three-dimensional data (volumes) - higher dimensions up to HDF5 limit - Structured and unstructured grid types - particle systems - triangular surfaces - regular surfaces - uniform grids - regular grids - adaptive hierarchical meshes (AMR data) - curvilinear grids (n.i.) - tetrahedral grids (n.i.) - hexahedral grids (n.i.) - unstructured grids (n.i.) - Cell complexes - grouping of grid cells - assigning values to cell groups (surface patches) - Designed to support remote file I/O - streaming HDF5 - HDF5 via GridFTP - all required information can be contained in a single HDF5 file - data can also be spread among multiple files and uniquely merged - file split possible on adjustable granularity - Simple end-user API - minimal API overhead - allows access to HDF5 structure - open for non-interfering user extensions
- avoid implicit assumptions as much as possible - use existing HDF5 functionality as much as possible - avoid relying on textual information as much as possible - avoid special naming conventions for groups, datasets, attributes - formulate relationships via grouping structure, types and links - enhances robustness when allowing user-defined extensions
F5 requires at least HDF5 1.6.1. Earlier versions of HDF5 will not work because they failed to support shared types on attributes.
F5 is available under Light++ Copyright License.
For compilation, two modes are available: ‘Debug’ and ‘Optimize’. Switch between these modi by setting the environment variable MAKE_CFG
or on the command line when invoking make: make MAKE_CFG=Optimize
or make MAKE_CFG=Debug
. Alternatively, MAKE_CFG
may be set as environmment variable, too.
The licensing conditions allow F5 to be freely to used for academic and private purposes. Distribution with GNU software is permitted, as long as this other software does not require this software to be GNU, too.