FiberBundleHDF5  FiberHDF5 Documentation, Revision 2026
High-Performance Fiber Bundle Data Model for Scientific Visualization
Loading...
Searching...
No Matches
F5F.h
Go to the documentation of this file.
1/*
2//
3// $Id: F5F.h,v 1.42 2008/03/19 21:21:43 werner Exp $
4//
5*/
6
7#ifndef __F5F_H
8#define __F5F_H
9
10#include "F5L.h"
11#include "F5Bchart.h"
12#include "F5Path.h"
13
14#ifdef __cplusplus
15extern "C"
16{
17#endif
18
19/** flag to tell wether the field id is a group */
20F5_API int F5Fis_group(const F5Path*);
21
22/** flag to tell wether the fragment in the current field is a group
23
24Note: The requirement to call this function is likely a design error in the
25 calling code.
26 */
27F5_API int F5Ffragment_is_group(const F5Path*fpath, const char*fragment_name );
28
29F5_API int F5LTset_dataspace(F5Path*f, int rank, hsize_t*dims);
30
31F5_API int F5LTexpand_dataspace(F5Path*f, int rank, hsize_t*dims);
32
33F5_API int F5Fexpand_dataspace(F5Path*fpath, int rank, hsize_t*Dims);
34
35/**
36 In F5, types are saved to the file to store certain information about datasets.
37 The insufficiency in HDF5 is that a certain type can be saved to one file only,
38 but not to many files, like a dataset. When a type is saved to a file, it becomes
39 a "named type" - in contrast to "transient" types, which are not bound to a file.
40 Only named types may carry attributes, transient types may not contain attributes.
41
42 Type attributes are used to describe properties of a type, in particular its
43 tensorial properties, which is beyond the raw native type definition of e.g. float
44 and dimension. We cannot store this information with a transient type, but must
45 do it by our own ;-( .
46
47 Generic support would be desireable, but is not implemented right now.
48 For now, only a limited set of pre-defined low-tensorial data types is
49 hard-coded. By knowing this hard-coded type, also the tensorial type information
50 is written into the file *when saving* the data type. Admittedly, this is
51 not pretty, and a future revision will provide a more dynamically mechanism here.
52
53
54 The functionality is as follows:
55
56 Given a transient HDF5 type, return a named type that is suitable for the
57 current file. The file ID's will be filled with the named data types.
58
59 @Note The file which is contained in fpath will be changed by this operation,
60 because a new type might be created and saved into the file, so the fpath parameter
61 cannot be const.
62
63 @Note This function currently only knows aboout point, vector
64 and predefined tensor types in the ChartId. It is NOT fully generic.
65 If it cannot convert some field type into a file type, it returns
66 the transient type, i.e. we don't get a named type in this case.
67 */
68F5_API hid_t F5file_type(F5Path*fpath, hid_t fieldtype);
69
70
71/**\ingroup F5L
72 Remove a F5Path object.
73 */
74F5_API void F5close(F5Path*f);
75F5_API void F5closep(F5Path**f);
76
77/**\ingroup F5F
78 Open a field entry within an F5Path object and leave all other entries intact.
79 An previously opened field entry is closed before the new one is opened.
80
81 @return zero if the entry could not be opened, non-zero otherwise.
82
83 @note F5 does no HDF5 error management by itself. If any error messages
84 from HDF5 when trying to open a non-existing field shall be
85 emitted, the application code has to set the HDF5 error handler.
86 F5 guarantees to leave these error handlers intact, even if they
87 are locally disabled during some operations.
88 */
89F5_API int F5Fopen(F5Path*f, const char*fieldname);
90
91/**\ingroup F5F
92 */
93F5_API F5Path*F5FopenMostRecentSlice(hid_t File_id, double*t,
94 const char*gridname,
95 const char*fieldname,
96 const char*coordinate_system);
97
98/**\ingroup F5F
99 Close a field entry within an F5Path object and leave all other entries intact.
100 */
101F5_API void F5Fclose(F5Path*f);
102
103/**\ingroup F5F
104 Take an HDF5 field identifier out of control of the F5Path.
105 The path identifier is no longer pointing to a field after this operations,
106 it is just a truncated path up to the representation group.
107 It is the responsibility of the caller to close the returned
108 HDF5 identifier, which can either be a group or dataset.
109 This can be determined either by inspecting f->FieldIDisGroup
110 or by H5Gget_objinfo() .
111 Note that using this function allows to keep a field ID open for
112 later use, but undermines the transparency of fields as beeing
113 stored as either datasets or a group with multiple datasets.
114 */
115F5_API hid_t F5Fgrab(F5Path*f);
116
117
118/**\ingroup F5F
119 Get the data type of an field, given an F5 path.
120 @return An HDF5 datatype, caller must call H5Tclose().
121 */
122F5_API hid_t F5Fget_type2(F5Path*f, hid_t elink_fapl_id);
123
124F5_API hid_t F5Fget_type(F5Path*f);
125
126/**\ingroup F5F
127 Get the data space of an field, given an F5 path.
128 @return An HDF5 dataspace, caller must call H5Sclose().
129 */
130F5_API hid_t F5Tget_space(F5Path*f);
131
132/**
133 Permute a given dimensions array according to the memory ordering of the
134 current coordinate system.
135
136 @param source_dims The source dimensions.
137 @param target_dims The target dimensions array, may be identical to the source
138 dimensions array.
139 @return A pointer to the target dimensions array, if successfull, otherwise NULL.
140
141 @param fpath An F5Path object that must contain a valid coordinate system
142 description, e.g. via some F5Rcreate() operation.
143*/
145 int rank,
146 hsize_t*target_dims,
147 const hsize_t*source_dims);
148
149/**
150 Get the extent (number of elements in each dimension)
151 for a given F5 field. This function is like getting the
152 data space via F5Tget_space() and then performing
153 a F5Tpermute_dimensions() on the result.
154
155 @param dims Storage place for the extension in each
156 dimension.
157 @param maxDims The maximal number of storage available for
158 the dims array
159 @return The dimension of the current topology.
160
161 It is recommended to allocate the storage as
162 @code
163 hsize_t dims[FIBER_MAX_RANK];
164 @endcode
165 where FIBER_MAX_RANK is a predefined integer constant
166 from the F5 library which corresponds to the
167 respective HDF5 value.
168
169 @todo Add weblink here to HDF5 docu.
170 */
171F5_API int F5Tget_extent(F5Path*f, hsize_t*dims, int maxDims);
172
173/**
174 @param result pointer to integer which will contain the result
175 value on return.
176 @return non-zero when attribute cold be read, zero if not.
177 */
178F5_API int F5Tget_index_depth(F5Path*f, int*result);
179
180/** */
181F5_API int F5LTget_skeleton_dimensionality(hid_t Top_hid);
182
183/** */
184F5_API int F5Tget_refinement_level(F5Path*f, hsize_t*dims, int maxDims);
185
186
187/**\ingroup F5F
188
189Create an HDF5 dataset for further treatment with raw HDF5 functions, e.g.
190to write an hyperslab instead of the full dataset at once.
191
192 @param property_id An HDF5 dataset property ID. If it is negative,
193 then a default property will be created locally
194 via <PRE>H5Pcreate(H5P_DATASET_CREATE)</PRE>.
195
196 @param dataspace_id Pointer to an HDF5 identifier, that will be used to store
197 a shared dataspace. It may be NULL, in which case a local
198 dataspace is created. Until shared dataspaces are implemented
199 in HDF5, this will make no difference in the actual HDF5 file.
200
201 @param fpath An F5 Path object that has been created by a F5Rcreate() or related calls
202 from the F5R group.
203 Any previous field ID contained there will be closed and overwritten.
204
205 @param fieldname The name of the field. It may be chosen arbitrarily, but must not contain slashes "/".
206 It is furthermore recommended to avoid special characters - even if
207 they work - and to keep the name short and concise).
208
209 @param dimension The dimensionality of the data set.
210 @param dims The extension of the data set.
211 @param fieldtype An HDF5 type identifier.
212
213 \see F5Lcreate()
214
215 \todo Add consistency check of sustained dataspace properties
216 across multiple fields per representation.
217
218 @return zero if the entry could not be opened, non-zero otherwise.
219*/
220F5_API int F5Fcreate(F5Path*fpath, const char*fieldname, int dimension, hsize_t*dims,
221 hid_t fieldtype, hid_t property_id);
222
224{
225 /** no troubles */
227
228 /** fpath pointer is invalid */
230
231 /** inconsistent dataspace (does not match with representation group) */
232
234
235 /** F5Fwrite_fraction(): fragment starts beyond dataspace */
237
238 /** F5Fwrite_fraction(): fragment ends beyond dataspace */
240
241 /** Invalid field name */
243
244 /** Invalid fragment name */
246
247 /** Invalid data pointer, nullptr */
249
250 /** Some invalid function parameter */
252
254
255 /** @relates F5FwriteX */
257
258 /** @relates F5FwriteX */
260
261 /** @relates F5FwriteX */
263
265};
266
268
269
270/**\ingroup F5F
271 Return a string explaining the meaning of a certain
272 error code.
273 */
274F5_API const char*F5Fwhatsup(F5ErrorCode);
275
276
277/**\ingroup F5F
278
279 Write some data as a contiguous field under the given F5Path
280 location with the given name.
281
282 The dimensions of the data must match exactly the dataspace
283 of the containing Skeleton.
284 Use F5FwriteHyperDimensional() to store a dataset that is
285 higher-dimensional than the containing Skeleton.
286
287 @param fpath The F5Path pointing to the location of the Field.
288 The field ID filled in. Any previous field ID contained there
289 will be closed and overwritten.
290
291 @param property_id An HDF5 dataset property ID. If it is negative,
292 then a default property will be created locally
293 via <PRE>H5Pcreate(H5P_DATASET_CREATE)</PRE>.
294
295 @param dimension The dimensionality of the data set. You may use F5Lwrite1D() as a convenience
296 shortcut for one-dimensional data sets.
297
298 @param dims The extension of the data set.
299
300 @note Fields are always associated to certain coordinates system.
301 The field type must be consistent with its coordinate system,
302 e.g. one may not store a vector field in polar coordinates
303 in a cartesian chart. Formally, this can be done because not
304 all API functions have the ability to check for this consistency.
305 However, a field type which is not part of a certain coordinate
306 system will be treated as non-existent when reading the file
307 later.
308
309 @note If a field is a structure made by separate data arrays, e.g. a
310 vector field with components x,y,z stored as three arrays of floats,
311 then use function F5Lwrites().
312
313 \todo Implement, and add consistency check of sustained dataspace properties
314 across multiple fields per representation.
315
316 @return error code telling the success of the write:
317*/
318F5_API F5ErrorCode F5Fwrite(F5Path*fpath, const char*fieldname,
319 int dimension, hsize_t*dims,
320 hid_t fieldtype, hid_t memtype, const void * dataPtr,
321 hid_t property_id);
322
323
324/**\ingroup F5F
325
326 Write some data as a contiguous field under the given F5Path
327 location with the given name where the data dimensions are higher
328 than the underlying skeleton. This functionality is useful to
329 store data where the higher dimensions express constant, but
330 unknown, number of data elements per point in the base space.
331
332 */
333F5_API F5ErrorCode F5FwriteHyperDimensional(F5Path*fpath, const char*fieldname,
334 int rank, hsize_t*dims,
335 hid_t fieldtype, hid_t memtype, const void * dataPtr,
336 hid_t property_id);
337
338
339F5_API F5ErrorCode F5_DEPRECATED("This is an internal function. Use F5FwriteHyperDimensional() instead.",
340 F5Fwrite_flexible( F5Path*fpath, const char*fieldname,
341 int dimension, hsize_t*dims,
342 hid_t fieldtype, hid_t memtype, const void * dataPtr,
343 hid_t property_id, int do_check ));
344
345/**\ingroup F5F
346 Save a dataset according to the specifications in
347 https://support.hdfgroup.org/HDF5/doc/ADGuide/ImageSpec.html
348 Only rank 2 dimensions are allowed here. All other arguments will lead to an error.
349 Note that this specification is quite inconsistent, as an rgb data set is modeled as
350 a three-dimensional array, not a two-dimensional array of type rgb. Still, we allow
351 this format explicitely here since it is a standard.
352 */
353F5_API F5ErrorCode F5FwriteIMAGE(F5Path*fpath, const char*fieldname,
354 int dimension, hsize_t*dims,
355 hid_t fieldtype, hid_t memtype, const void * dataPtr,
356 hid_t property_id);
357
358F5_API F5ErrorCode F5Fwrite_1D(F5Path*fpath, const char*fieldname,
359 hsize_t nElements, hid_t fieldtype, hid_t memtype,
360 const void *dataPtr, hid_t property_id);
361
362/**
363 Write an array of compound data type as separated components.
364 @param dataPtr An array of pointers to the respective arrays for each component
365 @param memtype An HDF5 compound data type that specifies how the data reside
366 in memory.
367 @return 0 if the entry could not be opened, non-zero otherwise.
368*/
369F5_API int F5Fwrites(F5Path*fpath, const char*fieldname,
370 int dimension, hsize_t*dims,
371 hid_t fieldtype, hid_t memtype, const void ** dataPtr,
372 hid_t property_id);
373
374/**\ingroup F5F
375 Write a field which is defined procedurally as a polynomial function of each manifold
376 coordinate index.
377
378 @param rank Dimensionality of the base manifold
379 @param dims[rank] Extension of the base manifold
380 @param fieldtype The type of the field as it should appear in the file
381 @param memtype The type of the field as it resides in memory
382 @param dataPtr[COMPONENTS] An array of polynom coefficients for each component of fieldtype
383 @param polynom_order[COMPONENTS] The order of each component's polynom
384 @param component_map[rank] Mapping from manifold index to component
385 */
386F5_API F5ErrorCode F5FwriteX(F5Path*fpath, const char*fieldname,
387 int rank, const hsize_t dims[],
388 hid_t fieldtype, hid_t memtype,
389 const void *const dataPtr[], const int polynom_order[],
390 const int component_map[],
391 hid_t property_id);
392
393
394F5_API void F5FevalX(double*result, int Mrank, const int index[],
395 int components, const double*const polynomials[], const int polynom_order[],
396 const int component_map[]);
397
398
399/**\ingroup F5F
400 Write a field which is a linear mapping of a base and delta value.
401 @param fpath An F5Path object referring to the location where the field
402 shall be created. It must contain a valid Representation_hid.
403 Its Field_hid will contain a reference to the newly created Field
404 on return. If the F5Path object already contained a valid Field_hid,
405 then this one will be closed by this call.
406 @param rank The rank (dimensionality) of the data set.
407 @param dims The extension of the data set.
408 @param fieldtype The type of the field, being compatible to base and delta.
409 @return zero, if the entry could not be opened, non-zero if successful.
410 @todo Make this function compatible with F5FwriteX instead.
411 Need to revise this function such that base and delta may be different
412 types, for instance a point and a tangential vector.
413 Possibly provide an alternative function where the min/max is specified
414 instead.
415 */
416F5_API int F5Fwrite_linear(F5Path*fpath, const char*fieldname,
417 int rank, hsize_t*dims,
418 hid_t fieldtype, const void * base, const void*delta);
419
420
421/**\ingroup F5F
422 Write a dataset which only covers a fraction of the entire representation's domain.
423 Such datasets are called "fragmented".
424
425 @param fpath An F5 Path object that has been created by a F5Rcreate() or related calls
426 from the F5R group.
427 Any previous field ID contained there will be closed and overwritten.
428
429 @param rank The rank (dimensionality) of the data set. Maximum value 8 is set by HDF5.
430 @param full_dims The extension of the full (virtual) data set in each dimension, i.e. the
431 size of the entire field when reconstructed from all fragments covering
432 this field.
433 @param datastart The (multidimensional) start index of the saved data set.
434 Also known as the minimum integer coordinates of this fragment in
435 the coarse grid.
436 @param fragment_dims The number of elements of this fraction.
437 @param fraction_name A string to name this fraction. It may be an arbitrary
438 name, but should be consistently used among all fragmented
439 fields.
440 It may be NULL to use an internal default (this feauture is
441 not implemented yet, so please DO specify a valid name here).
442
443 @param property_id An HDF5 dataset property ID. If it is negative,
444 then a default property will be created locally
445 via <TT>H5Pcreate(H5P_DATASET_CREATE)</TT>.
446
447 @param start_border The number of overlapping elements at the lower border (also
448 known as ghost zones). It may be NULL if the fragments do no
449 overlap.
450 @param end_border The number of overlapping elements at the upper border (also
451 known as ghost zones). It may be NULL if the fragments do no
452 overlap.
453
454
455 @param fieldtype The data type of the field as it should appear in the file.
456 @param memtype The data type of the field as it exists in memory. It may be
457 negative if it is identical to the field type.
458 For instance, if an array of doubles should be written into a
459 file in single precision, specify fieldtype=H5T_NATIVE_DOUBLE
460 and memtype=H5T_NATIVE_FLOAT .
461
462 @note Subsampling can not be specified here. Subsampled data need to go into another
463 Topology group.
464
465 @return An error code telling why the function failed.
466 */
467F5_API F5ErrorCode F5Fwrite_fraction(F5Path*fpath, const char*fieldname,
468 int rank, const hsize_t*full_dims, const hsize_t*fragment_dims,
469 hid_t fieldtype, hid_t memtype, const void * dataPtr,
470 const hsize_t*datastart,
471 const hsize_t*start_border, const hsize_t*end_border,
472 const char*fraction_name, hid_t property_id);
473
474F5_API F5ErrorCode F5Fwrite_fraction_external(F5Path*fpath, const char*fieldname,
475
476 const char *target_file_name,
477 const char *target_obj_name,
478 const char *prefix,
479
480 int rank, const hsize_t*full_dims, const hsize_t*fragment_dims,
481 hid_t fieldtype, hid_t memtype, const void * dataPtr,
482 const hsize_t*datastart,
483 const hsize_t*start_border, const hsize_t*end_border,
484 const char*fraction_name, hid_t property_id);
485
486
487/**\ingroup F5F
488 Write a dataset given as a compound as separate components,
489 changing the in-memory data layout.
490*/
491F5_API F5ErrorCode F5Fwrite_fractionS(F5Path*fpath, const char*fieldname,
492 int rank, const hsize_t*full_dims, const hsize_t*fragment_dims,
493 hid_t fieldtype, hid_t memtype, const void * dataPtr,
494 const hsize_t*datastart,
495 const hsize_t*start_border, const hsize_t*end_border,
496 const char*fraction_name, hid_t property_id);
497
498
499/**\ingroup F5F
500 Write a dataset given as separate components
501 which only covers a fraction of the entire representation's domain.
502 @param dimension The dimension of the data set.
503
504 @param full_dims The extension of the full (virtual) data set in each dimension, i.e. the
505 size of the entire field when reconstructed from all fragments covering
506 this field.
507 @param datastart The (multidimensional) start index of the saved data set.
508 @param fragment_dims The number of elements of this fraction.
509 @param fraction_name An optional string to name this fraction.
510 It may be NULL to use an internal default.
511
512 @param AllowFullCoverage If non-zero, then the data set is not written as a fragment
513 in case its dimensions cover the entire data space.
514 Use this reduction option with care. This automatism
515 might lead to bad effects, especcially it eliminates the
516 capability to add fragments later. By default, leave this
517 parameter at 0.
518
519 @note Subsampling can not be specified here. Subsampled data need to go into another
520 Topology group.
521 @return true
522
523 */
524F5_API int F5FSwrite_fraction(F5Path*fpath, const char*fieldname,
525 int rank, const hsize_t*full_dims, const hsize_t*fragment_dims,
526 hid_t fieldtype, hid_t memtype, const void *const* dataPtr,
527 const hsize_t*datastart,
528 const hsize_t*start_border, const hsize_t*end_border,
529 const char*fraction_name, hid_t property_id,
530 int AllowFullCoverage);
531
532/**\ingroup F5F
533 Write a dataset given as small "linear mappings"
534 which only covers a fraction of the entire representation's domain.
535 Useful to specify local bounding boxes.
536
537 @param dimension The dimension of the data set.
538
539 @param full_dims The extension of the full (virtual) data set in each dimension, i.e. the
540 size of the entire field when reconstructed from all fragments covering
541 this field.
542 @param datastart The (multidimensional) start index of the saved data set.
543 @param fragment_dims The number of elements of this fraction.
544 @param fraction_name An optional string to name this fraction.
545 It may be NULL to use an internal default.
546 @note Subsampling can not be specified here. Subsampled data need to go into another
547 Topology group.
548 @return true
549
550 @see F5Fwrite_linear_fraction_overlap()
551 */
552F5_API int F5Fwrite_linear_fraction(F5Path*fpath, const char*fieldname,
553 int rank, const hsize_t*full_dims, const hsize_t*fragment_dims,
554 hid_t fieldtype, const void * base, const void*delta,
555 const hsize_t*datastart,
556 const char*fraction_name);
557
558/**
559 Write overlap attributes associated with linear fractions.
560 */
562 int rank,
563 const hsize_t*start_border,
564 const hsize_t*end_border,
565 const char*fraction_name);
566
567
568/**
569 Get the field enumeration type for a given field.
570 If the fieldname is zero, then the fpath object must contain a
571 valid Field_id. The F5Path object is unchanged.
572 */
573F5_API ArrayType F5Fget_field_enum(const F5Path*fpath, const char*fieldname,
574 int*major_version, int*minor_version, int*release_version);
575
576/**\ingroup F5F
577 Check if a field within an F5 path is a linear mapping of points to values.
578 @todo Implement. Similar to F5Lread_linear().
579 */
580F5_API int F5Fis_linear(F5Path*fpath, const char*fieldname);
581
582F5_API int F5Fis_fragmented(F5Path*fpath, const char*fieldname);
583F5_API int F5Fis_separatedcompound(F5Path*fpath, const char*fieldname);
584
585/**\ingroup F5L
586 Try to read a field which is a linear mapping of a base (origin) and delta value.
587 The fpath object gets the the field identifier set to the opened
588 field (which is available to retrieve additional user-defined
589 attributes and such).
590
591 @params dims The dimensions of integer coordinates.
592 @return zero, if the entry could not be opened, non-zero if successfull.
593*/
595 hsize_t*dims,
596 hid_t fieldtype, void * base, void*delta);
597
598F5_API int F5Fread_linearo(F5Path*fpath, const char*fieldname,
599 hsize_t*dims,
600 hid_t fieldtype, void * base, void*delta);
601
602/** same as F5Fread_linear, but reads a fragment of a field
603@TODO revise this function as it requires a fragment_hid, which is out of
604 synch with the remaining F5 API: Fragments must never passed as id's
605 but only as name, which may also be a null pointer to indicate
606 unfragmented fields.
607 */
609 hid_t fragment_hid,
610 hsize_t *dims,
611 hid_t fieldtype, void*base, void *delta);
612
613
614/**
615 Get a field's attribute, possibly specifying data conversion.
616 @param mem_type_id The type of the attribute as it resides in memory,
617 may be zero to use the type of the attribute in-file.
618 @param fragment_name Optional name of a fragment, null string indicates unfragmented read.
619 */
620F5_API int F5Fget_attribute_byname( F5Path*f, const char*attribute_name,
621 void*data, hsize_t N, hid_t mem_type_id,
622 const char*fragment_name);
623
624/**
625 Set a field's attribute.
626 @param fragment_name Optional name of a fragment, null string indicates unfragmented read.
627*/
628F5_API int F5Fset_attribute_byname( F5Path*f, const char*attribute_name,
629 const void*data, hsize_t N, hid_t mem_type_id,
630 const char*fragment_name);
631
632/**
633 Field attribute (recommended): The min/max of components of a dataset.
634 This two-element attribute is of the same type as a dataset,
635 but contains the respective minimal/maximal value of the
636 data's components.
637 Example: for a set of point locations distributed in space,
638 this gives the bounding box.
639 @param memtype_id HDF5 Type ID describing the min/max variables. May be zero
640 to use exactly the type of the field. Otherwise, type conversion
641 must be available to HDF5.
642
643 @note WARNING: You should never use the file type for reading, because then you
644 might get values in the wrong bitorder! Usually you want to provide a
645 type that is identically to the file type, but constructed from NATIVE
646 types!
647 @todo Write a function that converts types from file type to native type...
648 */
649F5_API int F5Fget_range( F5Path*f, const char*fragment_name, void*minmax );
650
651/**
652 Set the range of values within a dataset.
653 The given min/max values must be of the same type as in the field.
654 */
655F5_API int F5Fset_range(F5Path*f, const char*fragment_name, const void*minmax);
656
657
658#ifdef __cplusplus
659} /* extern "C" */
660#endif
661
662#endif /* __F5F_H */
663
F5ErrorCode F5Fwrite_flexible(F5Path *fpath, const char *fieldname, int rank, hsize_t *dims, hid_t fieldtype, hid_t memtype, const void *dataPtr, hid_t property_id, int do_check)
Definition F5F.c:389
F5_API F5ErrorCode F5Fwrite_fraction_external(F5Path *fpath, const char *fieldname, const char *target_file_name, const char *target_obj_name, const char *prefix, int rank, const hsize_t *full_dims, const hsize_t *fragment_dims, hid_t fieldtype, hid_t memtype, const void *dataPtr, const hsize_t *datastart, const hsize_t *start_border, const hsize_t *end_border, const char *fraction_name, hid_t property_id)
Definition F5F.c:1001
F5_API int F5Fis_group(const F5Path *)
Definition F5F.c:126
F5_API int F5Fwrite_linear_fraction_overlap(F5Path *myPath, int rank, const hsize_t *start_border, const hsize_t *end_border, const char *fraction_name)
Definition F5F.c:1383
F5_API int F5Tget_refinement_level(F5Path *f, hsize_t *dims, int maxDims)
F5_API hid_t F5Fget_type(F5Path *f)
Definition F5F.c:156
F5_API int F5Fread_linear_fragment(F5Path *fpath, hid_t fragment_hid, hsize_t *dims, hid_t fieldtype, void *base, void *delta)
Definition F5F.c:1550
F5_API int F5Tget_extent(F5Path *f, hsize_t *dims, int maxDims)
Definition F5F.c:226
enum F5ErrorCode_type F5ErrorCode
Definition F5F.h:267
F5_API int F5Fget_range(F5Path *f, const char *fragment_name, void *minmax)
Definition F5F.c:1666
F5_API int F5Ffragment_is_group(const F5Path *fpath, const char *fragment_name)
Definition F5F.c:135
F5_API int F5Fset_range(F5Path *f, const char *fragment_name, const void *minmax)
Definition F5F.c:1737
F5_API int F5Fwrites(F5Path *fpath, const char *fieldname, int dimension, hsize_t *dims, hid_t fieldtype, hid_t memtype, const void **dataPtr, hid_t property_id)
Definition F5F.c:690
F5_API int F5Fexpand_dataspace(F5Path *fpath, int rank, hsize_t *Dims)
Definition F5F.c:768
F5_API F5ErrorCode F5Fwrite_1D(F5Path *fpath, const char *fieldname, hsize_t nElements, hid_t fieldtype, hid_t memtype, const void *dataPtr, hid_t property_id)
Definition F5F.c:631
F5_API int F5LTset_dataspace(F5Path *f, int rank, hsize_t *dims)
Definition F5LT.c:43
F5_API void F5FevalX(double *result, int Mrank, const int index[], int components, const double *const polynomials[], const int polynom_order[], const int component_map[])
Definition F5F.c:1293
F5_API int F5LTexpand_dataspace(F5Path *f, int rank, hsize_t *dims)
Definition F5LT.c:120
F5_API int F5Fread_linearo(F5Path *fpath, const char *fieldname, hsize_t *dims, hid_t fieldtype, void *base, void *delta)
F5_API void F5closep(F5Path **f)
Definition F5B.c:222
F5_API ArrayType F5Fget_field_enum(const F5Path *fpath, const char *fieldname, int *major_version, int *minor_version, int *release_version)
Definition F5F.c:17
F5_API hsize_t * F5Tpermute_dimensions(F5Path *fpath, int rank, hsize_t *target_dims, const hsize_t *source_dims)
Definition F5F.c:277
F5_API int F5LTget_skeleton_dimensionality(hid_t Top_hid)
Definition F5LT.c:34
F5_API int F5Tget_index_depth(F5Path *f, int *result)
Definition F5F.c:255
F5_API int F5Fget_attribute_byname(F5Path *f, const char *attribute_name, void *data, hsize_t N, hid_t mem_type_id, const char *fragment_name)
Definition F5F.c:1593
F5ErrorCode_type
Definition F5F.h:224
@ F5ERROR_COMPONENTMAP_INVALID
Definition F5F.h:262
@ F5ERROR_INVALID_FRAGMENT_START
Definition F5F.h:236
@ F5ERROR_INVALID_FRAGMENT_END
Definition F5F.h:239
@ F5ERROR_ALREADY_EXISTS
Definition F5F.h:253
@ F5ERROR_INVALID_DATA_ADDRESS
Definition F5F.h:248
@ F5_SUCCESS
Definition F5F.h:226
@ F5ERROR_INVALID_FPATH
Definition F5F.h:229
@ F5ERROR_NONSPECIFIED
Definition F5F.h:264
@ F5ERROR_INVALID_FRAGMENTNAME
Definition F5F.h:245
@ F5ERROR_INCONSISTENT_DATASPACE
Definition F5F.h:233
@ F5ERROR_INVALID_FIELDNAME
Definition F5F.h:242
@ F5ERROR_INVALID_PARAMETERS
Definition F5F.h:251
@ F5ERROR_COMPOUND_EXPECTED
Definition F5F.h:256
@ F5ERROR_COMPONENTMAP_EXPECTED
Definition F5F.h:259
F5_API int F5Fis_fragmented(F5Path *fpath, const char *fieldname)
Definition F5F.c:1106
F5_API hid_t F5file_type(F5Path *fpath, hid_t fieldtype)
Definition F5Bchart.c:941
F5_API int F5Fis_separatedcompound(F5Path *fpath, const char *fieldname)
Definition F5F.c:1128
F5_API int F5Fset_attribute_byname(F5Path *f, const char *attribute_name, const void *data, hsize_t N, hid_t mem_type_id, const char *fragment_name)
Definition F5F.c:1680
#define F5_API
Definition F5WinDLLApi.h:11
#define F5_DEPRECATED(message, func)
Definition F5defs.h:323
ArrayType
Definition F5defs.h:267
F5_API hid_t F5Tget_space(F5Path *f)
Definition F5F.c:167
F5_API int F5Fis_linear(F5Path *fpath, const char *fieldname)
Definition F5F.c:1512
F5_API int F5Fwrite_linear(F5Path *fpath, const char *fieldname, int rank, hsize_t *dims, hid_t fieldtype, const void *base, const void *delta)
Definition F5F.c:1464
F5_API int F5Fopen(F5Path *f, const char *fieldname)
Definition F5F.c:66
F5_API F5ErrorCode F5FwriteIMAGE(F5Path *fpath, const char *fieldname, int dimension, hsize_t *dims, hid_t fieldtype, hid_t memtype, const void *dataPtr, hid_t property_id)
Definition F5F.c:487
F5_API int F5Fwrite_linear_fraction(F5Path *fpath, const char *fieldname, int rank, const hsize_t *full_dims, const hsize_t *fragment_dims, hid_t fieldtype, const void *base, const void *delta, const hsize_t *datastart, const char *fraction_name)
Definition F5F.c:1416
F5_API void F5Fclose(F5Path *f)
Definition F5F.c:92
F5_API const char * F5Fwhatsup(F5ErrorCode)
Definition F5F.c:367
F5_API F5Path * F5FopenMostRecentSlice(hid_t File_id, double *t, const char *gridname, const char *fieldname, const char *coordinate_system)
F5_API F5ErrorCode F5FwriteX(F5Path *fpath, const char *fieldname, int rank, const hsize_t dims[], hid_t fieldtype, hid_t memtype, const void *const dataPtr[], const int polynom_order[], const int component_map[], hid_t property_id)
Definition F5F.c:1312
F5_API hid_t F5Fgrab(F5Path *f)
Definition F5F.c:107
F5_API F5ErrorCode F5Fwrite_fractionS(F5Path *fpath, const char *fieldname, int rank, const hsize_t *full_dims, const hsize_t *fragment_dims, hid_t fieldtype, hid_t memtype, const void *dataPtr, const hsize_t *datastart, const hsize_t *start_border, const hsize_t *end_border, const char *fraction_name, hid_t property_id)
Definition F5F.c:913
F5_API F5ErrorCode F5Fwrite(F5Path *fpath, const char *fieldname, int dimension, hsize_t *dims, hid_t fieldtype, hid_t memtype, const void *dataPtr, hid_t property_id)
Definition F5F.c:467
F5_API F5ErrorCode F5FwriteHyperDimensional(F5Path *fpath, const char *fieldname, int rank, hsize_t *dims, hid_t fieldtype, hid_t memtype, const void *dataPtr, hid_t property_id)
Definition F5F.c:476
F5_API hid_t F5Fget_type2(F5Path *f, hid_t elink_fapl_id)
Definition F5F.c:161
F5_API int F5Fcreate(F5Path *fpath, const char *fieldname, int dimension, hsize_t *dims, hid_t fieldtype, hid_t property_id)
Definition F5F.c:328
F5_API F5ErrorCode F5Fwrite_fraction(F5Path *fpath, const char *fieldname, int rank, const hsize_t *full_dims, const hsize_t *fragment_dims, hid_t fieldtype, hid_t memtype, const void *dataPtr, const hsize_t *datastart, const hsize_t *start_border, const hsize_t *end_border, const char *fraction_name, hid_t property_id)
Definition F5F.c:778
F5_API int F5FSwrite_fraction(F5Path *fpath, const char *fieldname, int rank, const hsize_t *full_dims, const hsize_t *fragment_dims, hid_t fieldtype, hid_t memtype, const void *const *dataPtr, const hsize_t *datastart, const hsize_t *start_border, const hsize_t *end_border, const char *fraction_name, hid_t property_id, int AllowFullCoverage)
Definition F5F.c:1157
F5_API int F5Fread_linear(F5Path *fpath, hsize_t *dims, hid_t fieldtype, void *base, void *delta)
Definition F5F.c:1517
F5_API void F5close(F5Path *f)
Definition F5B.c:186