FiberBundleHDF5  FiberHDF5 Documentation, Revision 2026
High-Performance Fiber Bundle Data Model for Scientific Visualization
Loading...
Searching...
No Matches
F5defs.h
Go to the documentation of this file.
1/*
2 $Id: F5defs.h,v 1.34 2008/02/22 23:51:25 werner Exp $
3*/
4
5#ifndef __F5_DEFINES_H
6#define __F5_DEFINES_H "Fiber HDF5 Defines: $Id: F5defs.h,v 1.34 2008/02/22 23:51:25 werner Exp $"
7
8/**
9
10 F5 0.1.6 uses UTF8-encoding on all link names and CRT index tracking on groups.
11 F5 0.1.3 introduced field fragments
12
13 */
14#define FIBER_MAJOR_VERSION 0
15#define FIBER_MINOR_VERSION 1
16#define FIBER_RELEASE_VERSION 6
17
18
19#define FIBER_VERSION_ATTRIBUTE_NAME "version"
20#define FIBER_VERSION_URL_LOCATION "URL"
21#define FIBER_VERSION_URL "http://www.fiberbundle.net/F5-0.1.6/"
22
23#define FIBER_CONTENTS "TableOfContents"
24#define FIBER_CONTENT_GRIDS "Grids"
25#define FIBER_CONTENT_FIELDS "Fields"
26/** some information about the fields per grid */
27#define FIBER_FIELDS_TAG "Fields"
28#define FIBER_CONTENT_TYPE_TAG "ContentType"
29#define FIBER_CONTENT_TYPE_MAXTAGLEN 511
30
31#define FIBER_PARAMETER_SPACE "Parameters"
32
33#define FIBER_FRAGMENT_CACHE ".FragmentCache"
34#define FIBER_FRAGMENT_CACHE_NAMES ".FragmentIDs"
35#define FIBER_FRAGMENT_CACHE_SIZES ".Sizes"
36
37
38/**
39 Toplevel Pseudo-Timeslice group holding grid objects that
40 cannot be attached to any reasonable time value.
41 */
42#define FIBER_STATIC_DATA "StaticData"
43
44/** Information about the physical time (per timeslice!) */
45#define FIBER_HDF5_TIME_ATTRIB "Time"
46
47/** Information about an integer timestep (per Grid object!)
48 This is an recommended attribute for data originating from
49 subsequent simulations. It may be omitted on interpolated
50 grid objects to specify that these are secondary data that
51 can be reproduced from grids with Timestep information.
52 */
53#define FIBER_HDF5_TIMESTEP_ATTRIB "TimeStep"
54
55#define FIBER_HDF5_POINTS "Points"
56#define FIBER_HDF5_POINTS4D "Points4D"
57#define FIBER_HDF5_CELLS "Connectivity"
58#define FIBER_HDF5_EDGES "Edges"
59#define FIBER_HDF5_EDGES_SET "EdgesSet"
60#define FIBER_HDF5_FACES "Faces"
61#define FIBER_HDF5_GEOMETRY "Geometry"
62
63#define FIBER_HDF5_POSITIONS_STRING "Positions"
64#define FIBER_HDF5_SHAPES "Shapes"
65#define FIBER_HDF5_SPARSE "Sparse"
66
67
68/**
69 Optional multidimensional attribute on topology groups
70 specifying the refinement factor in each dimension.
71 */
72#define FIBER_HDF5_REFINEMENT_INFO "Refinement"
73
74#define FIBER_HDF5_DEFAULT_CHART "StandardCartesianChart3D"
75#define FIBER_HDF5_STANDARD_CHART FIBER_HDF5_DEFAULT_CHART
76#define FIBER_HDF5_CARTESIAN_CHART "CartesianChart3D"
77#define FIBER_HDF5_CARTESIAN_CHART_DOMAIN "Cartesian3D"
78
79#define FIBER_HDF5_DEFAULT_COLOR_CHART FIBER_HDF5_RGBA_CHART
80#define FIBER_HDF5_RGBA_CHART "StandardRGBAChart"
81#define FIBER_HDF5_RGBA_CHART_DOMAIN "RGBAChart"
82#define FIBER_HDF5_COLOR_STRING "Color"
83
84
85/* do not use this naming, it's the old one and only here
86 for backward compatibility...
87*/
88#define FIBER_HDF5_DEPRECATED_OLD_DEFAULT_CHART "Standard Cartesian Chart 3D"
89#define FIBER_HDF5_DEPRECATED_OLD_CARTESIAN_DOMAIN "Cartesian 3D"
90
91
92#define F5_BACKWARD_COMPATIBILITY
93
94#define FIBER_HDF5_DEFAULT_POLAR_CHART "StandardPolarChart3D"
95
96#define _FIBER_MAX_COORDNAME_LENGTH 256
97
98#ifdef H5S_MAX_RANK
99#define FIBER_MAX_RANK H5S_MAX_RANK
100#else
101/**
102 How many dimensions are supported, basically this
103 is limited by the capabilities of HDF5.
104 */
105#define FIBER_MAX_RANK 32
106#endif
107
108
109#define FIBER_HDF5_GLOBAL_CHARTS "Charts"
110#define FIBER_HDF5_CHARTS_PER_GRID "Charts"
111#define FIBER_HDF5_CHART_TO_GLOBALCHART_REF "GlobalChart"
112#define FIBER_HDF5_GLOBALCHART_COORDINATES "Coordinates"
113#define FIBER_HDF5_CHART_DOMAIN "ChartDomain"
114#define FIBER_HDF5_REPRESENTER "Reference"
115
116/* Attribute for saving the chart's name additionally as an attribute
117 for a given chart group. Makes retrieval easier. */
118#define FIBER_HDF5_CHART_NAME "NAME"
119
120/* Some unique number per file to identify charts beyond the HDF5 ID,
121 this is probably not required. */
122#define FIBER_HDF5_CHART_ID "ID"
123
124
125#define FIBER_HDF5_CHART_MEMLAYOUT "MemoryOrder"
126
127#define FIBER_HDF5_CELLDIMENSIONALITY "F5::CellDimensionality"
128
129#define FIBER_HDF5_CHART_POINT_TYPE "Point"
130#define FIBER_HDF5_CHART_VECTOR_TYPE "Vector"
131#define FIBER_HDF5_CHART_COVECTOR_TYPE "Covector"
132
133#define FIBER_HDF5_CHART_BIVECTOR_TYPE "Bivector"
134#define FIBER_HDF5_CHART_BICOVECTOR_TYPE "Bicovector"
135#define FIBER_HDF5_CHART_METRIC_TYPE "Metric"
136#define FIBER_HDF5_CHART_COMETRIC_TYPE "Cometric"
137
138#define FIBER_HDF5_CHART_TENSOR_TYPE "indices"
139
140#define FIBER_HDF5_CHART_PSEUDOSCALAR_TYPE "PseudoScalar"
141#define FIBER_HDF5_CHART_PSEUDOCOSCALAR_TYPE "PseudoCoScalar"
142
143
144#define FIBER_HDF5_TYPEID_ATTRIB "TypeID"
145
146#define FIBER_HDF5_COMPONENTMAP_ATTRIB "F5::ComponentMap"
147#define FIBER_HDF5_RANK_ATTRIBUTE "F5::rank"
148#define FIBER_HDF5_GRADE_ATTRIBUTE "F5::grade"
149
150#define F5_TIMETABLE_NAME "F5::TimeTable"
151
152
153#define FIBER_FIELD_DATASPACE_DIMENSIONS_ATTRIBUTE "DataspaceDims"
154/*#define FIBER_FIELD_DIMENSIONS_ATTRIBUTE "Size"*/
155#define FIBER_FIELD_SIZE_ATTRIBUTE "size"
156
157#define FIBER_UNIFORMARRAY_ELEMENTS_ATTRIBUTE "extent"
158#define FIBER_UNIFORMARRAY_BASE_ATTRIBUTE "base"
159#define FIBER_UNIFORMARRAY_DELTA_ATTRIBUTE "delta"
160
161#if 0
162/* (note: these two attributes should go away, they are superceded by
163 the range attribute) */
164#define FIBER_UNIFORMARRAY_MIN_ATTRIBUTE "min"
165#define FIBER_UNIFORMARRAY_MAX_ATTRIBUTE "max"
166#endif
167
168#define FIBER_FRAGMENT_ARRAY_SIZE_GHOST_ATTRIBUTE "GhostSize"
169
170/*
171 Attribute specifying the offset of an given dataset within
172 a saved dataspace.
173 */
174#define FIBER_FRAGMENT_OFFSET_ATTRIBUTE "offset"
175#define FIBER_FRAGMENT_NOOVERLAP_START_ATTRIBUTE "NoOverlapStart"
176#define FIBER_FRAGMENT_NOOVERLAP_END_ATTRIBUTE "NoOverlapEnd"
177
178/**
179 Field attribute (recommended): The min/max of components of a dataset.
180 This two-element attribute is of the same type as a dataset,
181 but contains the respective minimal/maximal value of the
182 data's components.
183 Example: for a set of point locations distributed in space,
184 this gives the bounding box.
185 */
186#define FIBER_FIELD_COMPONENT_RANGE "Range"
187#define FIBER_FIELD_COMPONENT_RANGE_GHOST "RangeGhost"
188
189/**
190 Field attribute (optional): The average value of a dataset.
191 */
192#define FIBER_FIELD_COMPONENT_AVERAGE "Average"
193
194/**
195 An (optional) attribute on datasets that specifies that data stored
196 here are shifted by the given amount to enhance numerical precision
197 on storage. This will be first value of the dataset, same structure of
198 type but may be enhanced numerical precision, for instance double x,y,z
199 for a dataset of type float x,y,z . The first value in the dataset
200 will thus always be 0,0,0 . On reading, all values need to be added
201 to this NumericalShfit. On writing, it's the first value of the data set
202 and all other data values are substracted by it.
203 */
204#define FIBER_FRAGMENT_NUMERICALSHIFT_ATTRIBUTE "Fiber::NumericalShift"
205
206/**
207 Field attribute (optional): The standard deviation
208 of data values from a field's average value.
209 */
210#define FIBER_FIELD_COMPONENT_DEVIATION "Deviation"
211
212/**
213 Field attribute (optional): The histogram of a field
214 */
215#define FIBER_FIELD_COMPONENT_HISTOGRAM "Histogram"
216
217/** Fields original f5 type
218 */
219#define FIBER_FIELD_ORIGIANL_TYPE "OriginalType"
220
221#define FIBER_FIELD_DICTIONARY "Dictionary"
222#define FIBER_FIELD_DICTIONARY_WORDS "DictionaryWords"
223
224/**
225 Integer attribute for Topologies, which specified the Index depth
226 of the Topologie's index space.
227 */
228#define FIBER_HDF5_INDEXDEPTH_ATTRIB "IndexDepth"
229
230/**
231 A value indicating an invalid index depth.
232 */
233#define F5_INVALID_INDEX_DEPTH -1313
234
235/**
236 Minimal index depth supported, which is used
237 when iterating over skeleton groups
238 */
239#define F5_MIN_INDEX_DEPTH -1
240
241/**
242 Maximal index depth supported, which terminates
243 the iteration over skeleton groups
244 */
245#define F5_MAX_INDEX_DEPTH +6
246
247
248/**
249 Integer attribute for Skeleton groups which specifies the dimensionality
250 of the underlying cells that are stored here.
251 Note that this dimensionality is \b unrelated to the dimensionality of
252 the data space stored here. The skeleton dimensionality is a topological
253 property of this Skeleton group, whereas the data space is the memory
254 layout of the data stored here. They may match, but don't need to.
255 */
256#define FIBER_HDF5_SKELETON_DIMENSIONALITY_ATTRIB "F5::SkeletonDimensionality"
257/**
258 Return value for F5LTget_skeleton_dimensionality() if no attribute
259 was found.
260 */
261#define FIBER_HDF5_INVALID_SKELETON_DIMENSIONALITY -1313
262
263
264#define FIBER_HDF5_REPRESENTER_REFERENCE "Reference"
265
280
281
282typedef enum
283{
287 FourierProcArray = 3, /* not supported */
288 ChebychevProcArray = 4 /* not supported */
289
291
292
293#define FIBER_ARRAY_TYPE_ENUM "TypeInfo"
294
295
296/* Some Unit definitions */
297
298/* Name of an attribute that contains a metric unit description as string.*/
299#define F5_METRIC_UNIT_DESCRIPTION "F5::Metric_Unit_Description"
300
301/* use ',' as a delimiter in compound types
302 e.g: for a 3D point with mixed units of degree and meters: deg,deg,m
303 */
304#define F5_UNIT_NOT_DEFINED "-"
305#define F5_UNIT_METERS "m"
306#define F5_UNIT_METERS_PER_SECONDS "m/s"
307#define F5_UNIT_METERS_PER_SQSECONDS "m/s^2"
308#define F5_UNIT_NEWTON_PER_SQMILLIMETER "N/mm^2"
309#define F5_UNIT_NEWTON "N"
310#define F5_UNIT_DEGREE "deg"
311
312#if 0
313#define ENABLE_F5_CPLUSPLUS
314#endif
315
316
317#ifdef __GNUC__
318#define F5_DEPRECATED(message, func) func __attribute__ ((deprecated(message)))
319#elif defined(_MSC_VER)
320#define F5_DEPRECATED(message, func) __declspec(deprecated(message)) func
321#else
322#pragma message("WARNING: You need to implement DEPRECATED for this compiler")
323#define F5_DEPRECATED(message, func) func
324#endif
325
326
327#endif /* __F5_DEFINES_H */
328
ProceduralArrayType
Definition F5defs.h:283
@ UnknownProcArray
Definition F5defs.h:284
@ FourierProcArray
Definition F5defs.h:287
@ ExplicitProcArray
Definition F5defs.h:285
@ ChebychevProcArray
Definition F5defs.h:288
@ PolynomialProcArray
Definition F5defs.h:286
ArrayType
Definition F5defs.h:267
@ Contiguous
Definition F5defs.h:269
@ FragmentedContiguous
Definition F5defs.h:272
@ SeparatedCompound
Definition F5defs.h:270
@ FragmentedUniformSampling
Definition F5defs.h:277
@ IndexPermutation
Definition F5defs.h:275
@ Constant
Definition F5defs.h:271
@ UniformSampling
Definition F5defs.h:276
@ DirectProduct
Definition F5defs.h:274
@ UnknownArrayType
Definition F5defs.h:268
@ FragmentedSeparatedCompound
Definition F5defs.h:273