Functions | |
F5_API void | F5close (F5Path *f) |
F5_API int | F5Fread_linear (F5Path *fpath, hsize_t *dims, hid_t fieldtype, void *base, void *delta) |
F5_API hid_t | F5Lcreate (hid_t R_id, const char *fieldname, int dimension, const hsize_t *dims, hid_t fieldtype, hid_t property_id) |
F5_API hid_t | F5LTcreate_topology (hid_t Grid_hid, const char *TopologyName, int IndexDepth, int SkeletonDimensionality, int DataspaceDimensionality, const hsize_t *refinement) |
F5_API int | F5LTset_maximal_grid_refinement (hid_t ContentsGroup_id, const char *gridname, int Dimensionality, const hsize_t *refinement) |
F5_API int | F5LTget_maximal_grid_refinement (hid_t ContentsGroup_id, const char *gridname, hsize_t *refinement) |
F5_API int | F5LTget_index_depth (hid_t Top_hid) |
F5_API hid_t | F5Lwrite (hid_t R_id, const char *fieldname, int dimension, const hsize_t *dims, hid_t fieldtype, hid_t memtype, const void *dataPtr, hid_t enum_type, hid_t property_id) |
F5_API hid_t | F5Lwrite_fraction (hid_t R_id, const char *fieldname, int dimension, const hsize_t *full_dims, const hsize_t *datasize, 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 enum_type, hid_t property_id) |
F5_API hid_t | F5LSwrite_fraction (hid_t R_id, const char *fieldname, int dimension, const hsize_t *full_dims, const hsize_t *datasize, 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 enum_type, hid_t property_id) |
F5_API hid_t | F5Lwrite1D (hid_t R_id, const char *fieldname, hsize_t nElements, hid_t fieldtype, hid_t memtype, const void *dataPtr, hid_t enum_type, hid_t property_id) |
F5_API hid_t | F5Lwrite_linear (hid_t R_id, const char *fieldname, int dimension, const hsize_t *dataspace_dims, hid_t fieldtype, const void *base, const void *delta) |
F5_API hid_t | F5Lread_linear (hid_t F_id, hsize_t *dims, hid_t fieldtype, void *base, void *delta) |
F5_API hid_t | F5Lwrite_entity (hid_t R_id, const char *fieldname, hid_t fieldtype, const void *value) |
F5_API hid_t | F5Lwrites (hid_t F_id, const char *fieldname, int dimension, const hsize_t *dims, hid_t fieldtype, hid_t memtype, const void *const *dataPtr, hid_t enum_type, hid_t property_id) |
F5_API hid_t | F5Lwrite_permutation (hid_t R_id, const char *fieldname, hsize_t size, hsize_t *permutation_indices, hsize_t nvalues, hid_t fieldtype, const void *dataPtr) |
F5_API hid_t | F5Lget_type (hid_t Field_hid, int FieldIDisGroup) |
F5_API int | F5Lget_field_dimension_and_type (hid_t Representation_hid, const char *fieldname, hsize_t dims[FIBER_MAX_RANK], hid_t *type_id) |
F5Path * | F5LTcreateV (hid_t File_id, const double *time, const char *gridname, ChartDomain_IDs *ChartDomain, ChartDomain_IDs *coord_creator(void *udata), void *udata, const char *coordinate_system, const char *TopologyName, int IndexDepth, int SkeletonDimensionality, int Dimensionality, const hsize_t *refinement) |
F5Path * | F5LTcreate (hid_t File_id, const double *time, const char *gridname, ChartDomain_IDs *ChartDomain, ChartDomain_IDs *coord_creator(), const char *coordinate_system, const char *TopologyName, int IndexDepth, int SkeletonDimensionality, int Dimensionality, const hsize_t *refinement) |
F5_API F5Path * | F5LTcreate (hid_t File_id, const double *time, const char *gridname, ChartDomain_IDs *ChartDomain, new_global_chart_f coord_creator, const char *coordinate_system, const char *TopologyName, int IndexDepth, int SkeletonDimensionality, int DataspaceDimensionality, const hsize_t *refinement) |
F5_API int F5Fread_linear | ( | F5Path * | fpath, | |
hsize_t * | dims, | |||
hid_t | fieldtype, | |||
void * | base, | |||
void * | delta | |||
) |
Try to read a field which is a linear mapping of a base and delta value. The fpath object gets the the field identifier set to the opened field (which is available to retrieve additional user-defined attributes and such).
dims The dimensions of integer coordinates.
F5_API hid_t F5Lcreate | ( | hid_t | R_id, | |
const char * | fieldname, | |||
int | dimension, | |||
const hsize_t * | dims, | |||
hid_t | fieldtype, | |||
hid_t | property_id | |||
) |
Create an HDF5 dataset for further treatment with raw HDF5 functions, e.g. to write an hyperslab instead of the full dataset at once.
property_id | An HDF5 dataset property ID. If it is negative, then a default property will be created locally via
H5Pcreate(H5P_DATASET_CREATE) . | |
dataspace_id | Pointer to an HDF5 identifier, that will be used to store a shared dataspace. It may be NULL, in which case a local dataspace is created. Until shared dataspaces are implemented in HDF5, this will make no difference in the actual HDF5 file. | |
R_id | The group ID where the field shall be inserted, preferably a representation group ID that has been created by an F5create_representation() call. | |
fieldname | The name of the field. It may be chosen arbitrarily, but must not contain slashes "/". It is furthermore recommended to avoid special characters - even if they work - and to keep the name short and concise). | |
dimension | The dimensionality of the data set. | |
dims | The extension of the data set. | |
fieldtype | An HDF5 type identifier. |
F5_API int F5Lget_field_dimension_and_type | ( | hid_t | Representation_hid, | |
const char * | fieldname, | |||
hsize_t | dims[FIBER_MAX_RANK], | |||
hid_t * | type_id | |||
) |
Retrieve dimensional and type information for a specific field.
F5_API hid_t F5Lget_type | ( | hid_t | Field_hid, | |
int | FieldIDisGroup | |||
) |
Retrieve type information for a specific field.
F5_API hid_t F5Lread_linear | ( | hid_t | F_id, | |
hsize_t * | dims, | |||
hid_t | fieldtype, | |||
void * | base, | |||
void * | delta | |||
) |
Try to read a field as if it were a linear mapping of indices to some values.
dims | The extensions of an HDF5 dataspace. |
F5_API hid_t F5LSwrite_fraction | ( | hid_t | R_id, | |
const char * | fieldname, | |||
int | dimension, | |||
const hsize_t * | full_dims, | |||
const hsize_t * | datasize, | |||
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 | enum_type, | |||
hid_t | property_id | |||
) |
Write a dataset of separate components that only cover a fraction of the entire representation's domain.
dimension | The dimension of the data set. | |
datastart | The (multidimensional) start index of the saved data set. | |
dataend | The (multidimensional) end index of the saved data set. | |
fraction_name | An optional string to name this fraction. It may be NULL to use an internal default. |
F5_API F5Path* F5LTcreate | ( | hid_t | File_id, | |
const double * | time, | |||
const char * | gridname, | |||
ChartDomain_IDs * | ChartDomain, | |||
new_global_chart_f | coord_creator, | |||
const char * | coordinate_system, | |||
const char * | TopologyName, | |||
int | IndexDepth, | |||
int | SkeletonDimensionality, | |||
int | DataspaceDimensionality, | |||
const hsize_t * | refinement | |||
) |
Low-level creation function for F5Path objects.
time | Pointer to the time instance of the current parameter space slices, or NULL if the data reside in a zero-dimensional parameter space, i.e. they are static. In a future extension, this may be a point to a multidimensional structure specifying the location in multidimensional parameter space. | |
SkeletonDimensionality | The dimensionality of the k-cells that is described by this Skeleton of a Grid. | |
DataspaceDimensionality | The dimensionality of the data that is used for the data on this Skeleton. This is best to be identical to the SkeletonDimensionality, but may differ, for instance one can store data in one-dimensional arrays over a 2D grid, or have some kind of irregular point distribution. |
F5Path* F5LTcreate | ( | hid_t | File_id, | |
const double * | time, | |||
const char * | gridname, | |||
ChartDomain_IDs * | ChartDomain, | |||
ChartDomain_IDs * | coord_creator(), | |||
const char * | coordinate_system, | |||
const char * | TopologyName, | |||
int | IndexDepth, | |||
int | SkeletonDimensionality, | |||
int | Dimensionality, | |||
const hsize_t * | refinement | |||
) |
Create a Topology of the given name with a representation in the certain coordinate system. If the ChartDomain has not been set yet, then the types in the newly created chart domain (F5Path->myChart) will contain valid types for the Points and tangential types, as they are created by the specified coord_creator(). Note that the coord_create() specifies the type of the coordinate system, while the coordinate_system parameter specifies the actual object that is of this respective type.
F5Path* F5LTcreateV | ( | hid_t | File_id, | |
const double * | time, | |||
const char * | gridname, | |||
ChartDomain_IDs * | ChartDomain, | |||
ChartDomain_IDs * | coord_creatorvoid *udata, | |||
void * | udata, | |||
const char * | coordinate_system, | |||
const char * | TopologyName, | |||
int | IndexDepth, | |||
int | SkeletonDimensionality, | |||
int | Dimensionality, | |||
const hsize_t * | refinement | |||
) |
The central F5Path constructor for write access: Creates the basic F5 structures in the file and sets up an F5Path object for subsequent use. Basically, all the information contained in an F5Path object can be created from the given parameters, however, some complexity arises when modifying some file that already has some structure. In such a case, it must re-use any found structures in a consistent way, especcially it has to use named types instead of intrinsic ones.
ChartDomain | If a chartdomain is given, i.e. it is used already or stems from another file opening, then we reuse this chart domain, otherwise a new one will be created. The ChartDomain describes all types of the fields in the respective representation group as they are transient in memory. It will become the F5Path's `myChart' member. Specifying the ChartDomain is optional: if it is not given, then the coord_creator() callback function will be used to create a new coordinate object. |
Note that F5LTcreateV() is more general in this respect than F5LTcreate() and F5LTcreateT(): Via the callback function, it allows to create an arbitrary subset of types for the chart domain, whereas F5LTcreate() always assumes that the representation domain is a coordinate system and creates the point, vector, covector and subsequent types for the tangential space. F5LTcreateT(), in contrast, does not create any tangential types (they are set to -1 in the ChartDomain), but only the point type, thus is more suitable for topological representations (cells referring to points, points to refined points, ...).
F5_API int F5LTget_index_depth | ( | hid_t | Top_hid | ) |
Get the index depth of a certain Topology ID.
F5_API int F5LTget_maximal_grid_refinement | ( | hid_t | ContentsGroup_id, | |
const char * | gridname, | |||
hsize_t * | refinement | |||
) |
Get the maximal refinement level for a certain Grid.
hsize_t MaxRefinement[ FIBER_MAX_RANK ]; int Dims; Dims = F5LTget_maximal_grid_refinement(fpath->ContentsGroup_hid, "MyGridOfInterest", MaxRefinement);
F5_API int F5LTset_maximal_grid_refinement | ( | hid_t | ContentsGroup_id, | |
const char * | gridname, | |||
int | Dimensionality, | |||
const hsize_t * | refinement | |||
) |
Update the maximal refinement level for a certain Grid.
F5_API hid_t F5Lwrite | ( | hid_t | R_id, | |
const char * | fieldname, | |||
int | dimension, | |||
const hsize_t * | dims, | |||
hid_t | fieldtype, | |||
hid_t | memtype, | |||
const void * | dataPtr, | |||
hid_t | enum_type, | |||
hid_t | property_id | |||
) |
property_id | An HDF5 dataset property ID. If it is negative, then a default property will be created locally via
H5Pcreate(H5P_DATASET_CREATE) . | |
dimension | The dimensionality of the data set. You may use F5Lwrite1D() as a convenience shortcut for one-dimensional data sets. | |
dims | The extension of the data set. |
enum_type | The Atomic Field enumeration type that is associated with the current file. Get it via F5LTmake_enum_type(fpath). |
F5_API hid_t F5Lwrite1D | ( | hid_t | R_id, | |
const char * | fieldname, | |||
hsize_t | nElements, | |||
hid_t | fieldtype, | |||
hid_t | memtype, | |||
const void * | dataPtr, | |||
hid_t | enum_type, | |||
hid_t | property_id | |||
) |
Convenience function for writing one-dimensional data. Calls F5Lwrite();
F5_API hid_t F5Lwrite_entity | ( | hid_t | R_id, | |
const char * | fieldname, | |||
hid_t | fieldtype, | |||
const void * | value | |||
) |
Write a field that is a constant for all elements.
F5_API hid_t F5Lwrite_fraction | ( | hid_t | R_id, | |
const char * | fieldname, | |||
int | dimension, | |||
const hsize_t * | full_dims, | |||
const hsize_t * | datasize, | |||
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 | enum_type, | |||
hid_t | property_id | |||
) |
Write a dataset which only covers a fraction of the entire representation's domain.
dimension | The dimension of the data set. | |
datastart | The (multidimensional) start index of the saved data set. | |
dataend | The (multidimensional) end index of the saved data set. | |
fraction_name | An optional string to name this fraction. It may be NULL to use an internal default. |
F5_API hid_t F5Lwrite_linear | ( | hid_t | R_id, | |
const char * | fieldname, | |||
int | dimension, | |||
const hsize_t * | dims, | |||
hid_t | fieldtype, | |||
const void * | base, | |||
const void * | delta | |||
) |
Write a field that is a linear map from coordinate indices to some data value.
dims | The extensions of an HDF5 dataspace. |
Write a field that is a linear map from coordinate indices to some data value.
F5_API hid_t F5Lwrite_permutation | ( | hid_t | R_id, | |
const char * | fieldname, | |||
hsize_t | size, | |||
hsize_t * | permutation_indices, | |||
hsize_t | nvalues, | |||
hid_t | fieldtype, | |||
const void * | dataPtr | |||
) |
Write a field which is accessed via some index permutation. In addition to the raw data values, also some index array needs to be specified.
R_id | An hdf5 identifier of the representation group in charge. | |
size | The number of elements in the representation group. | |
permutation_indices | A mapping from element indices to value indices. | |
nvalues | How many data values are actually here. | |
fieldtype | Hdf5 identifier of the data type. | |
dataPtr | The data |
implement
add structure function
add possibility to share permutation index datasets
F5_API hid_t F5Lwrites | ( | hid_t | R_id, | |
const char * | fieldname, | |||
int | dimension, | |||
const hsize_t * | dims, | |||
hid_t | fieldtype, | |||
hid_t | memtype, | |||
const void *const * | dataPtr, | |||
hid_t | enum_type, | |||
hid_t | property_id | |||
) |
enum_type | The Atomic Field enumeration type that is associated with the current file. Get it via F5LTmake_enum_type(fpath). |