FiberBundleHDF5  FiberHDF5 Documentation, Revision 2026
High-Performance Fiber Bundle Data Model for Scientific Visualization
Loading...
Searching...
No Matches
F5.doxm
Go to the documentation of this file.
1/**
2 \mainpage The Fiber Bundle HDF5 Library.
3
4\image html TensorFibers-F5Logo.png "The F5 Library"
5
6 The purpose of this library is to provide a simple C-API for
7writing HDF5 files using the concept of fiber bundles. It allows
8to cover a wide range of data types used for scientific computing
9through a common denominator in a mathematically founded
10systematic approach.
11
12In the concept of fiber bundles, we distinguish among a base space
13and a fiber space. The base space corresponds to a mesh type or
14"grid", e.g. a regular or irregular grid. The fiber space corresponds
15to data given on each vertex or cell type, e.g. scalar fields,
16vector fields, tensor fields, spinor fields. Taking into account
17practical requirements in scientific visualization, the abstract
18concept has been cast into six levels of hierarchy within an HDF5
19file layout.
20
21
22A detailed description of the concept has been developed as part of the PhD
23thesis
24<A HREF="http://www.lob.de/cgi-bin/work/outputexpert?id=433b39bc517ad&frame=yes&flag=new&menupic=yes&mode=viewone&titnr=242395908&linkcol=005c21&stich=benger+&katalog=255">Visualization of General Relativistic Tensor Fields via a Fiber Bundle Data Structure</A>.
25<IMG ALIGN=RIGHT SRC="http://images.lob.de/lob_100_pics/386/541/10/88.jpg">.
26
27See \ref GettingStarted for a practical guide on getting started.
28
29<H2>Supported Features</H2>
30
31 - Intrinsic support for time
32 - one or many timesteps per file
33 - connectivity information across time steps
34 - using other ordering parameters instead of time
35 - Multiple coordinate systems
36 - cartesian coordinates
37 - polar coordinates
38 - two-dimensional coordinates (e.g. texture coordinates)
39 - transformation rules among coordinate systems
40 - abstraction level to allow coordinate-free formulations
41 - Extended data types
42 - vector fields
43 - tensor fields
44 - covariant and contravariant indices
45 - coordinate transformation rules for vector and tensor fields
46 - Transparent support for different field layouts
47 - arrays of structs
48 - struct of arrays
49 - Arbitrary dimensions
50 - one-dimensional data
51 - two-dimensional data (surfaces)
52 - three-dimensional data (volumes)
53 - higher dimensions up to HDF5 limit
54 - Structured and unstructured grid types
55 - particle systems
56 - triangular surfaces
57 - regular surfaces
58 - uniform grids
59 - regular grids
60 - adaptive hierarchical meshes (AMR data)
61 - curvilinear grids (n.i.)
62 - tetrahedral grids (n.i.)
63 - hexahedral grids (n.i.)
64 - unstructured grids (n.i.)
65 - Cell complexes
66 - grouping of grid cells
67 - assigning values to cell groups (surface patches)
68 - Designed to support remote file I/O
69 - streaming HDF5
70 - HDF5 via GridFTP
71 - all required information can be contained in a single HDF5 file
72 - data can also be spread among multiple files and uniquely merged
73 - file split possible on adjustable granularity
74 - Simple end-user API
75 - minimal API overhead
76 - allows access to HDF5 structure
77 - open for non-interfering user extensions
78
79
80<H2>Implementation Concepts</H2>
81
82 - avoid implicit assumptions as much as possible
83 - use existing HDF5 functionality as much as possible
84 - avoid relying on textual information as much as possible
85 - avoid special naming conventions for groups, datasets, attributes
86 - formulate relationships via grouping structure, types and links
87 - enhances robustness when allowing user-defined extensions
88
89<H2>Installation Notice</H2>
90F5 requires at least
91<A HREF="http://www.hdfgroup.org/">HDF5 1.6.1</A>.
92Earlier versions of HDF5 will not work because they
93failed to support shared types on attributes.
94
95F5 is available under \ref copyright.
96
97For compilation, two modes are available: `Debug' and `Optimize'.
98Switch between these modi by setting the environment variable <TT>MAKE_CFG</TT>
99or on the command line when invoking make:
100<TT>make MAKE_CFG=Optimize</TT>
101or <TT>make MAKE_CFG=Debug</TT>. Alternatively,
102<TT>MAKE_CFG</TT> may be set as environmment variable, too.
103
104The licensing conditions allow F5 to be freely to used for academic and private
105purposes. Distribution with GNU software is permitted, as long as this other
106software does not require this software to be GNU, too.
107
108*/
109
110
111/** \page internal File structure
112
113The HDF5 file is organized into six hierarchy levels.
114These are called the Bundle, Slice, Grid, Topology, Representation and Field levels.
115The Bundle group is the toplevel group, i.e. the HDF5 file itself.
116Subgroups with a time attribute constitute a Slice group, which contains
117all data related to a specific time.
118<P>
119A Slice group may contain many geometrical objects, called "Grids".
120The name of this group is arbitrary, each Grid group contains a
121self-consistent geometrical entity (e.g. a uniform grid with
122refinement levels, a triangular surface, a tetrahedral grid,
123an adaptive mesh with all refinement levels).
124<P>
125A Grid will be described by one or many datasets.
126All datasets within a Grid which are of the same size and dimensioniality
127and are semantically related to the same indexing scheme (e.g. all data fields
128within a given AMR refinement level, or data given on the cells of a tetrahedral
129grid) are grouped together into Topology groups.
130<P>
131Data sets within Topology groups are further organized into Representation
132groups according to their relationship to other objects. The name of the
133Representation group (and possible attributes) tell the relation of a certain
134data set, e.g. a Representation group may be named "cartesian chart 3D" or
135"parent level".
136*/
137
138